ログにタイムスタンプを追加する

Arduino IDEのシリアル端末にはタイムスタンプを表示する機能がある。
似たようなことをCygwinまたはLinuxでもできる。

まずは、単純にシリアルポート出力を表示するには ls /dev/ttyS? を調べて、接続ポートを cat する。
以下はCygwinでCOM3がつながっていた場合の例:

$ cat /dev/ttyS3
18.83 46.45 128.14 1014.83
18.60 47.17 88.00 1014.83

※気温、湿度、ガス濃度、気圧がタブ区切りで、Arudino Leonardo経由で BME680から受信。

時間も表示させたいときは、awkでタイムスタンプを追加する


$ cat /dev/ttyS3 | awk '{ print strftime("%Y-%m-%d %H:%M:%S"),"\t" $0; fflush(); }'
2020-03-05 23:23:42 18.88 46.42 125.19 1014.87
2020-03-05 23:23:42 87 46.44 114.21 1014.87
2020-03-05 23:23:42 18.85 46.42 114.68 1014.85
2020-03-05 23:23:45 18.83 46.40 117.00 1014.83
2020-03-05 23:23:47 18.82 46.37 119.24 1014.83


表示しながら保存したいときは、teeを使う


$ cat /dev/ttyS3 | awk '{ print strftime("%Y-%m-%d %H:%M:%S"),"\t" $0; fflush(); }' | tee data.log
2020-03-05 23:24:43 18.88 46.31 125.65 1014.886 46.45 112.46 1014.85
2020-03-05 23:24:45 18.85 46.53 112.53 1014.87
2020-03-05 23:24:48 18.84 46.52 114.92 1014.85
2020-03-05 23:24:50 18.84 46.51 116.92 1014.85

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント