オペレーティングシステム: Ubuntu
使用するシリアルポート: USB->シリアルアダプタ (豊富な PL2303)
サンプルのシリアル ポート読み取りおよび書き込みプログラムがあります。アプリケーションの実行中に、4100バイトを送信しようとしています。これを一発で実行できるプログラムを作成します。
n = write (s_port,msg,4100);
ここで「n」値を確認していますが、4100 です。
I*ストロング テキスト*n 受信側
n = read(s_port,msg,5000);
上記の行はループしています。1 回の読み取り試行で 32 バイト以下しか取得できません。そのため、128 回を超える読み取り試行 (32+32+32 など) を実行して、完全なバイト (4100) を取得します。
送信側では全バイトを一発でプッシュできるのに、なぜ一発で受信できないのでしょうか?