serialforwarderをビルドする方法、またはそれを使用して受信したデータを別のプログラムに転送してプロセスを作成するにはどうすればよいですか?
データを解析し、Matlab、c#、または Java アプリケーションなどの別のプログラムへの入力データとして使用する方法。受信したデータを解析するために使用されたプロトコルはどれですか?
最後の質問: 基地局のモートはどれですか? 任意のモート用に作成できますか?
serialforwarderをビルドする方法、またはそれを使用して受信したデータを別のプログラムに転送してプロセスを作成するにはどうすればよいですか?
データを解析し、Matlab、c#、または Java アプリケーションなどの別のプログラムへの入力データとして使用する方法。受信したデータを解析するために使用されたプロトコルはどれですか?
最後の質問: 基地局のモートはどれですか? 任意のモート用に作成できますか?
シリアルスタックを徹底的に読む必要があります...それほど簡単ではありませんが、実行できます。
シリアルポートから直接読み取ることができます。この場合、シリアル フォワーダーは必要ありません。世話をすることはほとんどありません。
たとえば、PC のシリアル ポートに送信されているシリアル メッセージを読みたい場合 (USB センサーボードは、FTDI チップのような USB からシリアルへのコンバーターを使用しているため、シリアルのように機能します)。
C# (Java などでも同じ) では、シリアル ポートに入っているバイト ストリームを読み取ることができます。このバイト ストリームを解析して、tinyos の標準シリアル メッセージを抽出できます。
これはTEP #113で説明されていますが、いくつか問題がありますが、それらの問題を見つけてプログラムを動作させることができるはずです。
TEP 113 で述べられているように、標準のシリアル パケットは次のようなものです。
7e 40 09 00 be ef 05 7d 5d 06 01 02 03 04 05 7e
つまり、パケットは 16 進数7E
(126 または 127 だと思います) で始まり、7E
. 最後の 2 バイトはCRC
パケットのものです。したがって、C# プログラムでは、シリアル ポートに遭遇したときに読み取りを開始し、ストリーム7E
の次のポートに到達したときに読み取りを停止できます。7E
間にあるものはすべてあなたのパケットになります。
escaping
a がパケット コンテンツの一部である場合、7E
開始ディリメータと終了ディリメータと混同しないように注意する必要があります。それは別のものにエスケープされます...これは、その TEP 113 でも説明されています。
CRCを計算するためのC++コードがいくつかあったと思いますが、それをC#またはJavaコードに簡単に変換できます。
Serial.h
また、TinyOS でシリアル パケットがどのように形成されているかについての詳細が含まれているソース コードも確認してください。