2020年6月23日火曜日

シリアルポートからの出力を加工

昔はモデムをつなぐために利用されていたシリアルポート(RS232C)は、
USB登場の頃からレガシーとなり、
最近は搭載していないPCのほうが多いのかもしれません。
すでにその役割を終え…てない!!
組み込み機器でよく使われるuartはPCで読み込む際
電圧変換などしてシリアルポートに接続するのです。
とはいえ最近はボーレートを上げ過ぎていてUSB接続の
シリアルアダプタでないと読み込むのが辛かったりするのですが。

さて、シリアルポートを扱うターミナルソフトウェアというと
WindowsではTeraterm、Linux(GUI)ではGtkTermと
個人的には考えていますが、
単に出力を取得して加工してファイルに保存したいような場合、
コマンドラインでスクリプトをちょこちょこっと作る方法があります。
Linuxでデバイスファイル"/dev/ttyUSB0"に対し、
$ stty -F /dev/ttyUSB0 speed 921600 cs8
$ cat < /dev/ttyUSB0
とかするとシリアル入力が表示されます。
catの出力をパイプで何かのコマンドに繋いでやれば
加工も好きにできます。
WindowsでもCygwin上でなら同じコマンドが使えます。
ただしシステム上で"com6"とか名付けられているデバイスは
Cygwinでは"/dev/ttyS5"(番号が1減る)と認識されるので
$ stty -F /dev/ttyS5 speed 921600 cs8
$ cat < /dev/ttyS5
な感じになります。
普通の人には関係ない話でした。

0 件のコメント:

コメントを投稿