我不清楚如何使用Ruby编写简单的字节码数组,更何况我绝对无法理解如何使用Ruby SerialPort库。说实话,我已经成功地将ASCII发送到串口,但是其他类型的数据仍然让我困惑。
例如,编写ASCII非常简单:
我尝试使用
在Java中,使用其串行库很简单:
我该如何使用Ruby将正确的字节码输出到串行设备?
例如,编写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将正确的字节码输出到串行设备?