rubyserialでレイトレのデータを受信したい
from マルチサイクル RISC-V CPU を作成したい
シリアルコンソールに出力された画像データをテキストエディタにコピペするのに疲れたので、受信したデータを画像として保存するRubyスクリプトを作成。
起動直後にレイトレが走り始めるとUARTのバッファが変な感じになっちゃうので、レイトレサーバからの合図(= スペースの送信)を待ってからレイトレを開始するようにした。
code:server.rb
# レイトレサーバ
# 自作CPUから送られてくるレイトレデータを受信する。
# 受信が終わった頃を見計らって、Ctrl+C で終了する。
#
# usage: ruby script/server.rb > contest.ppm
require 'rubyserial'
begin
serialport = Serial.new '/dev/cu.usbserial-D00084', 115200
# 自作CPUに送信開始を依頼
serialport.write " "
# UART読み込み
while true
print serialport.gets
end
rescue Interrupt
serialport.close
end
使い方
自作CPUを待機状態にして、以下の server.rb を起動。送信が終わったら Ctrl+C で終了する。
code:sh
$ ruby script/server.rb > contest.ppm
うまく動かない時は、リセットボタンを押す → server.rb を起動 を何度か繰り返す。