0

シリアルポートとイーサネットを備えたコントローラーがあります。イベントと、このイベントに関連付けられたデータを、コントローラのシリアル ポートまたはイーサネット ポートを介してイベント ディレクトリから取得したいと考えています。指定したイベントを取得するためのパケット形式 (リクエスト パケット データ) があります。シリアルポート経由でリクエストを送信してデータを取得する方法を誰か教えてもらえますか? 私は初心者で、プログラミングにそれほど精通していません。

4

3 に答える 3

1

組み込みプラットフォームで何らかのプログラムを実行し、シリアル ポートをリッスンして要求に応答する必要があります。この種のプログラムは通常、「デーモン」と呼ばれます (「デーモン」と同じように発音されます。「シーザー」が「海の星」と韻を踏むように)。

デーモンが既にある場合は、デーモンが使用する形式を把握する必要があります。私はあなたが何を持っているのか分からないので、推測することさえできません.

独自のデーモンを作成する場合は、ある種のプロトコルを選択する必要があります。個人的には、シリアル プロトコルの JSON 形式が気に入っています。sscanf()より良いライブラリが利用できない場合は、C ライブラリからを使用するだけでデータを抽出できるほど単純です。もちろん、 sprintf().

http://json.org/

于 2012-06-22T03:10:05.167 に答える
0

コントローラーは、すべてのデータ交換プロトコルをサポートする必要があります。この情報はドキュメントにあります。MODBUS または MODBUS TCP をサポートしている可能性があります。この場合、modbus と互換性のある任意のソフトウェアを使用できます。

于 2012-06-22T04:21:27.207 に答える
0

必要なのは、POSIX オペレーティング システム用のシリアル プログラミング ガイドです。何らかの理由で Wi​​ndows にバインドされている場合は、Cygwin をインストールすることで POSIX を取得できます。termiosやのようなマニュアルページに慣れることを期待してfcntlください。最初にシリアルポートパラメータをデバイスで動作するように設定する必要があるためです.ただし、それらはある程度標準の8-N-1になる可能性があります. 次に、ポートのファイル記述子へのバイトの読み取りと書き込みの問題です。低レベルopen()の 、close()read()、およびを使用している可能性が高く、これらは( 、、 )write()より下のレベルであり、新しいプログラマとして慣れている可能性が高くなります。stdioprintffopenstdout

最近のコンピュータには RS232 シリアル ポートがないことが多いため、必要な場合は安価な USB アダプタを見つけることができます。私の経験では、USB アダプターが必ずしも補助信号 (RTS、CTS など) の一部を実装しているとは限らないことに注意してください。

また、特定のニーズや状況に合わせてライブラリを調べてください。

より有用な回答を得るには、コントローラーを指定する必要があります。

于 2012-06-22T01:30:40.683 に答える