Java HIDAPI - 异步读取

时间:2014-05-22 15:25:28

标签: java asynchronous hid hidapi

关于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>;

这可能吗?

0 个答案:

没有答案