关于this问题的后续问题,我现在已经取得了一定程度的成功(LED开启和关闭,万岁!),我现在有另一个问题。
除了写入设备外,我还需要从设备中读取数据。 我宁愿不让一个线程坐在那里每隔50 MS查询一次设备(考虑到使用这个设备的设置,这可能是让这个工作没有任何Java等效的.Net事件的唯一方法)。
有没有办法设置一个Java“事件”(松散地使用的术语),当有等待从设备读取的字节时将触发该事件?
我现在要写给设备的是一个终端接口,它接受字符串并通过写一个字节数组(或终止)来响应它们:
BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
byte[] bBuffer = new byte[6];
String cmd = BR.readLine();
while (true){
switch(cmd){
case "ON":
dev.write(ON);
Thread.sleep(READ_UPDATE_DELAY_MS);
dev.read(bBuffer);
break;
case "OFF":
dev.write(OFF);
Thread.sleep(READ_UPDATE_DELAY_MS);
dev.read(bBuffer);
break;
case "EXIT":
System.exit(0);
}
cmd = BR.readLine();
}
我所希望的是:
dev.InputReceived = <some input handling function>;
这可能吗?