松尾です。 テストしていただきありがとうございます。 > たぶんずっといじってないところなので、もし問題があるなら > 2.3 のころから問題があったのではないか、という気がします。 > それゆえに「本当だろうか」と思いつつも、確実に検証できると機器と > 知識がないので手をつけられずにいました。 以前からあった問題だとしたらインパクトが大きそうですが、 twitterなどでフローがおかしいとみかけたりしないですし、 リポーターの方の環境の問題なのかなとも思います。 まずは、RTS-CTSの接続チェックが簡単にできるようにしました。 受信側'r'でRTSの0/1を切り替えて、 送信側'l'でCTSの状態を見れるようにしました。 r10532です。接続されているか(制御できているか)を 見ていただけないでしょうか。 私の環境(Virtual Serial Port)では 受信側をRTS=HS(RTS/CTSハードフロー)にした状態で、 アプリからRTSラインの変更(EscapeCommFunction())ができるようです。 一応 --rts on で起動するのがよさそうです。 もしかするとoffで起動するほうが良いかもしれません。 エラーコードが返ってくる(0x87)となると何か動作がおかしい (返すエラーコードがおかしい?)感じですね。 エラーコードの説明がその場で出るように修正しました。 シリアルの初期化周りで気になるのがタイムアウト値です。 https://learn.microsoft.com/ja-jp/windows/win32/api/winbase/ns-winbase-commtimeouts Tera Term は MAXDWORDという値をセットしているようです。 関係ないですよねぇ・・。 それと、私の環境で、送受両方を --rts hs で起動して 32768 bytesの送受テストをすると どこかでdropして受信の最後が 0xffにならないことがあります。 残念です。