我有一个设置为发送一组十六进制数据的 Teensy。
一个示例如下:
383137323736
如您所见,这转化为
817276
这是我在青少年一侧刷过的卡片的一部分。
我现在的问题是让这些数据以 ruby 显示在我的控制台上。到目前为止我尝试过的任何东西都会输出一个空字符串或什么都没有。
每当我检查数组大小时,它都会返回 1,这是正确的,因为一组数字是通过我的串行线路通过十六进制发送的。
我到目前为止的红宝石代码如下:
require 'serialport'
require 'rubygems'
sp=SerialPort.new "/dev/ttyAMA0", 9600
puts "HELLO"
while 1
if sp.gets
ar1 = []
ar1 = sp.read.unpack('H*')
puts ar1.length
end
end
sp.close
所以我使用 unpack 函数和 H* 将整组十六进制数字转换回它们的原始数字。根据 Ruby doc,unpack 应该遍历整个数字集,并在 H.
有人可以帮忙吗?不太确定下一步该去哪里。