9

私はロボット自動化プロジェクトに取り組んでおり、障害にぶつかりました。ロボットを制御するには、telnetを介してワイヤレスでロボットに接続し、tcp/ipプロトコルを介してコマンドを送信する必要があります。(例:「Mabc」コマンドは、左輪の速度(a)、右の車輪の速度(b)、および時間(c)に基づいて前方に移動します)。私がやろうとしているのは、Cプログラムでいくつかの計算を行い、計算値に基づいてロボットにメッセージを送信することです。

Cプログラムでtcp/ipプロトコルを介してコマンドを送信するにはどうすればよいですか?

ありがとう!

エリック

4

5 に答える 5

17

ソケットを探しています。これは、C でのソケット プログラミングの包括的なガイドです。Telnet も明確に定義されたプロトコルですが、このロボットが telnet を使用するかどうかはわかりません (これはプロトコルの余分な処理オーバーヘッドであり、あまり利点がありません)。ロボット制御プログラム)。Telnet はRFC 854で詳しく説明されています

于 2008-10-14T21:16:12.820 に答える
7

Expectを使用すると、外部プログラムと対話できますが、expect の C ポートについては知りません。それ以外の場合は、C で telnet ライブラリを見つけるか、ソケット プログラミングを使用して独自のライブラリを作成します。

于 2008-10-14T21:25:30.243 に答える
4

libcurlを使用します:http://curl.haxx.se/libcurl/。それはあなたが望むことをし、あなたが本当に扱いたくないすべてのtelnetgooを処理します。

于 2008-10-14T23:13:27.827 に答える
2

Expectはまさにこれを行うように設計されています-インタラクティブなプログラムと会話をします。これはTclで記述されており、さまざまなコマンドでTclインタープリターを拡張します。Tclは非常に簡単に拡張できます。それは、goという言葉からすぐに埋め込まれたスクリプト言語になるように設計されました。メインのCAPIは、argvスタイルの構造を使用してパラメーターをTclコマンドに渡し、非常に使いやすいです。C APIの最良のガイドは、Ousterhoutのオリジナルの本であり、最初の組み込みTclインタープリターを起動して実行するのに2時間のラボセッションが必要でした。

ボーナスとして、組み込みのTclインターペレッターも入手できます。これを使用して、アプリケーションにスクリプト機能を追加できます。気が向いたら、かなりの部分をTclに実装できるので、全体的な時間を節約できるでしょう。

于 2008-10-14T23:12:49.573 に答える
1

私はそのようになります:

  • ヒアドキュメントとして記述されたtelnetインタラクションを含むいくつかの単純なシェルスクリプトを記述します。
  • ホームディレクトリの.telnetrcファイルを使用して、Telnetセッションの側面を制御します(例:crmod)。
  • システムコールを使用してスクリプトを呼び出す。

このように、ロボットとの相互作用を変更するための所要時間は、プログラムを常に再コンパイルする必要がありません。

ところで、これは楽しそうですね。

HTH。

乾杯、

ロブ

于 2008-10-14T22:58:34.453 に答える