TeraTermマクロで、シリアルポートで読み取った値を別のプログラムに橋渡ししたかったのだが…

TeraTermのマクロを使って、シリアルポートからデータを受信して、それを他のプログラム(RubyとかJavaで作ったモノ)に渡そうとしてみました。
…が、TeraTermのマクロって、よく出来てはいるのですが…
他プログラムとの連携機能はほぼ提供されておらず、
やりたいことが素直にはできないことがわかりました…。

シリアルポートを叩きたいだけであれば、TeraTermを噛ませる必要はないのですが、今回は ZModelプロトコル等を使いたい関係で、ちょっと頑張ってみることにしました。

結果的にうまくいった方法は、TeraTermマクロで、結果をファイルに出力し、Javaプログラムではその出力されたファイルを継続的に読むことでデータ転送を実現するという方法です。

これは、TeraTermのマクロ。シリアルポートを叩いて、受信したデータを正規表現でバラして、csvファイルに書きだすという処理です。

ちなみに、実験に使うデータですが、Androidの「Bluetooth SPP Test」というアプリを使い、COMポート経由(Bluetooth経由)で、ジャイロセンサーの値を送ってみました。

こちらが、色々処理をしたいJava側です。ひたすらファイルを読み続けて、更新されたら次を読む、といった処理です。

今やろうとしていることは、そんなに転送されるデータ量が多くないので、この方法が使えそうですが…
もうちょっと良い方法があれば試したいですね。

Spread the love
  •  
  •  
  •  
  •  

TeraTermマクロで、シリアルポートで読み取った値を別のプログラムに橋渡ししたかったのだが…」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です