我正在开发一个Perl脚本,用于在蓝牙固件(通过USB连接的BT)和测试设备(通过串口连接)之间传输数据。我正在使用Perl模块Win32::SerialPort
。我可以用特殊的ASCII格式从设备获取数据(☻BlackSmiley ..♥黑心......)。当我将其转换回十六进制时,我得到了我的固件可以处理的操作码。作为回报,BT固件发回命令完成操作码。
问题从这里开始......当我尝试使用$ PortObj-> write(操作码(十六进制))写回串口时,测试设备无法识别它。我该怎么办?
答案 0 :(得分:2)
好吧我猜perl中的pack函数对我有用:) ..
@输入=(0x04,0x0e,0x04,0x01,0x03,0x0c,0×00);
$ ascii = pack(“C *”,@ input);
打印“值为$ ascii”;
$ PortObj-→写($ ASCII)||死“无法写入$ PortObj:$ ^ E \ n”;