Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用或存储串行数据并从其他Java类进行访问_Java_Serial Port_Rxtx - Fatal编程技术网

使用或存储串行数据并从其他Java类进行访问

使用或存储串行数据并从其他Java类进行访问,java,serial-port,rxtx,Java,Serial Port,Rxtx,您好,我是串行编程新手。我正在尝试将串行数据从一个类返回到另一个类,这是我的代码(使用RXTX库) 读取和打印该类中的数据是成功的,但是从该类中访问值将返回null…任何帮助都将不胜感激..谢谢 阅读和打印本课程中的数据是成功的,但是 从中访问值将返回null 根据您的代码,我看到您正在遵循以下示例:(如果您没有,那么您应该看一看)。正如其标题所说,它是一种通过串行端口进行读/写的基于事件的方式 话虽如此,我强烈怀疑你正试图这样做: XXX serialPortListener = new XX

您好,我是串行编程新手。我正在尝试将串行数据从一个类返回到另一个类,这是我的代码(使用RXTX库)

读取和打印该类中的数据是成功的,但是从该类中访问值将返回null…任何帮助都将不胜感激..谢谢

阅读和打印本课程中的数据是成功的,但是 从中访问值将返回null

根据您的代码,我看到您正在遵循以下示例:(如果您没有,那么您应该看一看)。正如其标题所说,它是一种通过串行端口进行读/写的基于事件的方式

话虽如此,我强烈怀疑你正试图这样做:

XXX serialPortListener = new XXX();
int light = serialPortListener.send();
int lightStatus = serialPortListener.sendst();
很可能是
send()
sendst()
返回
null
0
,因为调用这些方法时还没有发生
SerialPortEvent
。因此,如果您在一个事件驱动的场景中工作,那么将其保留在这个框架中是有意义的。怎样例如,实施:

1) 使
XXX
类从
Observable
扩展并执行以下小更改:

public class XXX extends Observable implements SerialPortEventListener {

    int[] val = new int[2];

    public synchronized void serialEvent(SerialPortEvent oEvent) {
        String storeId;
        String status; 
        if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
            try {
                // all your code here
                setChanged();
                notifyObservers();
            } catch (Exception e) {
                System.err.println(e.toString());
            }
        }  
    }

    ...
}
2) 另一个类必须实现
Observer
接口:

public class MyObserver implements Observer {

    @Override
    public void update(Observable o, Object arg) {
        if(o instanceof XXX){
            XXX observable = (XXX) o;
            System.out.println("Light: " + observable.send());
            System.out.println("Light status: " + observable.sendst());
        }
    }
}
3) 将
MyObserver
对象附加到
XXX
实例:

XXX serialPortListener = new XXX();
serialPortListener.addObserver(new MyObserver());
就这样。每次处理
SerialPortEvent
时,都会通知观察者,并成功读取值

XXX serialPortListener = new XXX();
serialPortListener.addObserver(new MyObserver());