Serial port jruby添加RXTX串行侦听器
我需要每隔500毫秒从jruby下的串行COMx或/dev/ttySx接口读取一条消息 我想做的是把它翻译成Ruby,以便重新触发听众 我正在学习jRuby,因此我开始激活串行端口,然后尝试以以下方式添加侦听器:Serial port jruby添加RXTX串行侦听器,serial-port,jruby,inner-classes,Serial Port,Jruby,Inner Classes,我需要每隔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
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
,但没有成功。长时间的谷歌搜索让我停滞不前(有些沮丧)。
欢迎任何帮助。您是否尝试从示例导入和扩展SerialReader类?我决定从头开始。我的目标是通过串行接口进行通信,通过定向卡每500毫秒发送一条消息。这使我确信我正在使用另一个库,事实上我找不到所提到的方法。根据本文,我下载了Javacomm库。现在,下一步是将它们称为desctibed。最后,我创建了一个侦听器,并正确地接收发送的172字节的消息。我写的代码只是为了防止有人想节省时间。下一步是将接收到的消息提供给主应用程序。