(未完成記事) Mac で USB ケーブルでのシリアル通信でコマンドを投げて測器からデータを取得する (1) Screen コマンドを使う方法
いろんなサイトを参考にしながら割と苦労しましたが、できるようになったので、とりあえず、今開いている web ブラウザのタブをひとつひとつチェックしながら書き留めておきます。
(2020 年 4 月 7 日 微修正)
Mac で Screen コマンドを使ってシリアル通信でコマンドを投げる
1: (screen コマンドは Mac には元々入っている。多分。iTerm やターミナルで使えるはず)
2: $ls /dev/tty.* でシリアル通信相手だと思われるデバイスを探す。たとえば、/dev/tty.usbserial-ABC4FG7 などが見つかる。
3: $screen /dev/tty.usbserial-ABC4FG7 9600 などのようにコマンド入力する。最後の数字はボーレート 。ボーレート は測器などの説明書におそらく書いてある。
4: (今回の私の例) 測器のマニュアルに書いてある Query (コマンドの書式?) が例えば、
"$<listenerID>,DATA?*<checksum><cr><lf>"
なら、上記の screen 入力で現れた何もない画面に
$01,DATA?*//
と打って Return を押す(今回は listnerID が "01", checksum は "//" だった1) 。Mac の Return は <cr> だけだそうなので、<lf> として Ctrl+j を入力する。
これで、出力が応答として出てきました。
5: screen を終了させるときは、"Ctrl+a を押して k を押す" もしくは "Ctrl+a を押して Ctrl+¥ を押す" ことで、"Really kill this window [y/n]" と表示されるので、(はい (y) なので) y を押す。
参考にさせていただいたサイト:
MacでScreenコマンドでシリアルコンソール接続 - Disce gaudere. 楽しむ事を学べ。
Macでシリアル通信するscreenコマンドのメモ 阿呆の社~Painting a reminding.
screen コマンドでシリアル通信 for Mac & Linux - Qiita
ここまでできればかなり展望が開けます!
-
測器のマニュアルを頑張って読むと出てきた。ちなみに checksum は本当はちゃんとした数字を算出しないといけないのだけど、簡易的には “//” で代用できるそうな↩