一連の 16 進データを送信するようにセットアップされた Teensy があります。
これのサンプルは次のとおりです。
383137323736
ご覧のとおり、これは次のように変換されます
817276
これは、十代の側でスワイプしたカードの一部です。
私の問題は、このデータをルビーのコンソールに表示することです。これまでに試したことはすべて、空の文字列を出力するか、まったく出力しません。
配列サイズをチェックするたびに、シリアル回線を介して 16 進数で 1 セットの数字が送信されているため、正しい 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* を使用して、16 進数のセット全体を元の数字に変換しています。Ruby doc によると、unpack は、H の末尾に * を付けて、数値のセット全体を実行する必要があります。
誰でもこれで手を貸してもらえますか? 次にどこに行くべきかよくわかりません。