開発者向けFAQ|小型無線多機能センサ(TSND121/151)

開発者向けFAQ

  1. TSND121/TSND151用プログラムの開発はどのようにすればよいですか?
  2. プログラムの開発環境は何がよいですか?
  3. シリアルポートの通信設定について教えて下さい。
  4. 「0x9A …」のような文字を送信しても何も反応しません。
  5. コマンドを送信出来たが、受信データがおかしい。壊れたデータをたくさん受信します。
  6. 受信したパラメータがおかしな値になります。
  7. 重い処理をするとデータを取りこぼします。
  8. サンプルプログラムはありませんか?

TSND121/TSND151用プログラムの開発はどのようにすればよいですか?

TSND121/TSND151を操作する際には、シリアル通信でコマンドの送受信を行います。

そしてコマンドの仕様等はTSND121コマンドインタフェース仕様書TSND151コマンドインタフェース仕様書で全て公開しておりますので、 自由にプログラムの開発を行うことが可能です。

開発者向けFAQの目次へ戻る

プログラムの開発環境は何がよいですか?

BluetoothもしくはUSBシリアルでTSND121/TSND151に接続可能であり、また、シリアル通信が可能な環境であれば問題ありません。

Windows、MacOS X、Linux等の環境で実績があります。また、開発言語にも特に制限はなく、C、VisualBasic、C#、C++、JAVA、Objective-C、Python、Perl等様々な言語が利用可能です。

開発者向けFAQの目次へ戻る

シリアルポートの通信設定について教えて下さい。

シリアルポートの設定は、以下を推奨しています。

・ボーレート:115200bps

・データビット:8bit

・パリティ:None

・ストップビット:One

・フロー制御:なし

開発者向けFAQの目次へ戻る

「0x9A …」のような文字を送信しても何も反応しません。

データの送受信はバイナリデータで行います。例えば「0x9A」は文字(テキストデータ)として送るのではなく、 16進数の"9A"をバイナリデータとして送信することを意味しています。

開発者向けFAQの目次へ戻る

コマンドを送信出来たが、受信データがおかしい。壊れたデータをたくさん受信します。

コマンドに対する反応はイベント、もしくは、レスポンスという一塊のデータ列としてセンサから送られて来ます。 そして各データ列は、ヘッダからBCCまでのデータで1つのデータ単位になっています。

しかし、受信のタイミングによっては、この1つのデータ単位が一括で受信出来ない場合があります。

 

例えば.Netの場合、シリアルデータを受信した際に"SerialPort.DataReceived"イベントが届きます。

しかし、例えばセンサから1つのレスポンスが送信された際に、PC側では1回の受信で1レンスポンスが受け取れるという保障は無く、 複数に分割された状態で受信する場合があります。

この場合、バッファに格納されているデータを全て取り出しても、正しいレスポンスを表すデータ列になりません。

複数回呼ばれる"SerialPort.DataReceived"で受信したバッファの内容を連結した際に、初めて1つのレスポンスデータになります。

その一方で、複数のレスポンスが送信された場合、これらが連結した状態で一度に受信する場合もあります。

 

このようなことを考慮し、データ受信用のFIFOのキューを作成し、受信したデータは一度このキューに格納するようにして下さい。 そしてキューの中から適時有効なデータ列を取り出して処理(*)するようにして下さい。

(*)例えばキューの先頭からヘッダを検索し、後続するCommand Codeからパラメータ長を求め、当該バイト長のBCCを計算し、合致したら有効なデータ列として処理してキューから削除。

開発者向けFAQの目次へ戻る

受信したパラメータがおかしな値になります。

複数バイトのデータは、基本的にリトルエンデアンのデータとして送受信します。

また、負の数は二の補数として表現しています。3byteのデータをエンコードする際には、特にご注意下さい。

開発者向けFAQの目次へ戻る

重い処理をするとデータを取りこぼします。

プログラムをマルチスレッド化してみて下さい。

開発者向けFAQの目次へ戻る

サンプルプログラムはありませんか?

以下のサンプルプログラムを用意しております。適宜ダウンロードして下さい。

・センサと直接バイナリ通信するVisual Basicのサンプルプログラム

VBサンプルプログラムダウンロード

・SensorServerとネットワーク経由で通信するVisual Basicのサンプルプログラム

VBサンプルプログラムダウンロード

・SensorServerとネットワーク経由で通信するC++のサンプルプログラム

C++サンプルプログラムダウンロード

・センサと直接バイナリ通信するPythonのサンプルプログラム(Python 2.7で動作確認済み)

Pythonサンプルプログラムダウンロード

開発者向けFAQの目次へ戻る

お問合せお見積もり

このページの先頭へ

お問合せ