カテゴリ:電子工作
既に秋月テスタ METEX M-6000M から読み込んだ測定値を Linux のテキスト・フィルタ・パイプラインで扱えるソフトがある。Ruby で書かれている。「では、自分は C 言語で書いてみるか」と思い作ってみた。C 言語版 M-6000M(ES51986) Linux 接続ソフト(ソースコード) README として公開する。2 条項 BSD ライセンスなので気軽に扱えると思う。
C 言語で書くに当たり、次の機能を盛り込むことにした。
使用するに当たり一般ユーザーから serial port を使えるようにした方が便利だろう。次の様にして dialout グループにユーザー user_name を入れてシリアルポートのアクセス権限を付与する。 # useradd -G dialout user_name 2017.4.9 追記 useradd command の仕様が変わったため、usermod を使う様にする。操作ミスや不意な仕様変更に備えて、2 つの端末を接続して、一方を管理権限にして置き、修復できるように備えた方が良いだろう。管理権限を維持している端末は、新しくログインしてみて、sudo su 等の管理権限行使などに異常が無いか確かめるまで維持しておく。 # usermod -a -G dialout user_name ソースコードからビルドするには、次の様に make だけする。 $ make cc -O2 -Wall -Wuninitialized -Wunused-but-set-parameter -Wunused -Wmissing-parameter-type -Winit-self -Wsequence-point -DVERSION_STRING=\"1.03\" -o m-6000mtxt m-6000mtxt.c -lrt テスタで Ni-MH 電池電圧測定をしている状況で、試しに実行すると次の様になる。 $ ./m-6000mtxt /dev/ttyUSB0 /dev/ttyUSB0: Timeout. /dev/ttyUSB0: Reconfigure port. /dev/ttyUSB0: Send break. 1376762619.573732445 DC 1.263e+0 V 1376762620.473715860 DC 1.264e+0 V 1376762621.373827385 DC 1.263e+0 V 1376762622.274001973 DC 1.263e+0 V 1376762623.173702638 DC 1.264e+0 V 1376762624.073686198 DC 1.263e+0 V 1376762624.973658443 DC 1.264e+0 V 1376762625.872772287 DC 1.263e+0 V 1376762626.772722237 DC 1.263e+0 V 1376762627.672655250 DC 1.263e+0 V 1376762628.572601291 DC 1.263e+0 V ^C./m-6000mtxt: Interrupted. ./m-6000mtxt: Catch signal. Timeout で始まっているのは M-6000M が RS-232 モードで動いていないためだ。何も通信が無い状態が 7.5 秒経過し、Break を送信して測定開始となっている。 M-6000M(ES51986) の通信フォーマットは少し特殊だ。HL-340 USB-Serial adapter では全く通信出来なかった。良くある "Prolific PL2303" チップを使用した USB-Serial アダプタで通信できた。 え?M-6000M って残り在庫あとわずかなの? お気に入りの記事を「いいね!」で応援しよう
最終更新日
2017.04.09 20:30:04
コメント(0) | コメントを書く
[電子工作] カテゴリの最新記事
|
|