我不清楚如何用 ruby 编写简单的字节码数组,所以我完全不知道如何使用Ruby SerialPort库,老实说,我的工作很好,但我只成功了通过串行端口发送 ASCII。
例如,写 ASCII 真的很简单:
@sp = SerialPort.new "/dev/tty.usbserial-A6004cNN", 19200
@sp.write "test"
这显然会写入test
该串行设备。这很好用,在这种情况下,我已经能够将所有预期的结果发送到微控制器(arduino)。问题是我需要编写串行设备读取的输出,如下所示:
{0x01,0x09,0x04,0x00, 'f',0xff,0xcc,0x33}
我已经尝试使用str.unpack
,但仍然无法生成所需的十六进制值输出为上述字节。
在 Java 中,使用它的串行库很简单:
byte[] cmd = { 0x01,0x09,0x04,0x00, 'f',(byte)0xff,(byte)0xcc,(byte)0x33 };
serialPort.write( cmd );
如何使用 Ruby 将正确的字节码输出到我的串行设备?