我需要每 500 毫秒从 jruby 下的串行 COMx 或 /dev/ttySx 接口读取一条消息。
我想要做的是将这个例子翻译成 Ruby,以便重新触发监听器。
我正在学习 jRuby,所以我开始激活串口,然后我尝试以这种方式添加侦听器:
java_import('gnu.io.RXTXPort') { 'JSerialPort' }
begin
sp=JSerialPort.new('COM6')
sp.setSerialPortParams(38400,8,1,0)
rescue
puts @error_message="myerror #{$!}"
ensure
sp.close
end
它似乎工作。接下来是添加侦听器,在上面的示例中在这一行进行了描述
serialPort.addEventListener(new SerialReader(in));
这在描述addListener 方法的地方进行了描述。
我尝试了很多方法来调用这些addListener
方法,但我没有设法通过 jRuby 调用这样的内部方法。
我试过sp::RXTXPort::addEventListener
没有运气。长时间的研究谷歌搜索让我停滞不前(有些沮丧)。欢迎任何帮助。