0

このような 16 進数をリモート シリアルに送信するだけで、デバイスはそれを受け入れることができます。

送信する必要がある 2 バイトの 16 進数は次のとおりです。

181E

リモート シリアルに telnet で接続し、そのコマンドを送信できます。

telnet x.x.x.x port

181E

返事が返ってくるので大丈夫です。

Linux cでこれを行うにはどうすればよいですか?

書き込み機能を使いたい。

err = write(socket,181E,2);

または、181Eとして読み取られるように、2バイトの10進数を変数に格納するにはどうすればよいですか?

int this_is_2_bytes = 181E; // Is this correct?

err = write(socket, this_is_2_bytes, sizeof(this_is_2_bytes));
4

3 に答える 3

1

16 進数の文字列を送信する必要があります。そう、

const char cmd[] = "181E";
err = write(socket, cmd, strlen(cmd)); 
于 2013-05-10T02:49:16.320 に答える
0

いいえ、int の記述はすべてのシステムで正しくありません。2 要素のバイト配列を書き込みます。

于 2013-05-10T02:49:39.463 に答える
0

write() 関数は、2 番目の引数としてポインターを必要とします。文字配列に格納します。

于 2013-05-10T03:18:08.873 に答える