PI从python cod读取java数据

2024-06-18 09:59:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的python代码,可以读取作为循环运行的RFID卡 每当我把一张卡片-我可以看到它的数据。 我想在循环中运行代码—当我得到新数据(新卡)时,我会在java应用程序中看到它。你知道吗

像这样:

12点13分10秒

12点13分20秒

12:13:30

12:13:40-找到卡,数据是“大卫卡”

12点13分50秒

12:14:00-找到卡,数据是-“凯特卡”

有人能帮忙吗?或者开始教我怎么做?我是爪哇的新手

python文件是阅读.py是从这里来的 https://pimylifeup.com/raspberry-pi-rfid-rc522

谢谢你

这是显示每10秒打印一次的Java代码

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Show_Time
{
    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss");

    public static void main(String[] args)
    {
        while (true)
        {
            try{
                Date date = new Date();
                System.out.println(new Timestamp(date.getTime()));
                Thread.sleep(10000);
            }
            catch(InterruptedException ex)
            {
                Thread.currentThread().interrupt();
            }
            finally {}
        }

    }
}

Tags: 数据代码import应用程序newdatestaticjava
1条回答
网友
1楼 · 发布于 2024-06-18 09:59:46

两个程序之间有几种通信方式。例如,您可以创建一个客户机-服务器体系结构。但是,由于您是新手,我认为最快和最简单的方法是在两个应用程序之间共享一个公共文件。你知道吗

Python侧面:

with open('RFIDdata.txt', 'w') as the_file:
    the_file.write(rfid_data)

Java侧面:

public static void main(String[] args) {
    BufferedReader reader;
    try {
        reader = new BufferedReader(new FileReader(
                "RFIDdata.txt"));
        String line = reader.readLine();
        while (line != null) {

            Date date = new Date();
            System.out.println(new Timestamp(date.getTime())+" "+line);
            Thread.sleep(10000);
            // read next line
            line = reader.readLine();
        }
        reader.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

注意,在这个解决方案中,您必须手动执行这两个程序。另一个更干净但更先进的选择是使用ProcessBuilder

Python侧面:

print(rfid_data)

Java侧面:

public static void main(String[] args) {
    BufferedReader reader;
    try {
         ProcessBuilder builder = new ProcessBuilder( "python" ,"/home/pi/MFRC522-python/Read.py"); 
         builder.redirectErrorStream(true); 
         Process p = builder.start(); 
         reader = new BufferedReader (new InputStreamReader(p.getInputStream()));

        String line = reader.readLine();
        while (line != null) {

            Date date = new Date();
            System.out.println(new Timestamp(date.getTime())+" "+line);
            Thread.sleep(10000);
            // read next line
            line = reader.readLine();
        }
        reader.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

相关问题 更多 >