[ttssh2-dev 544] Re: ticket #45271 / Serial Hard Flow

アーカイブの一覧に戻る
matsuo zmats****@gmail*****
2023年 1月 23日 (月) 00:56:14 JST


松尾です。

テストしていただきありがとうございます。

 > たぶんずっといじってないところなので、もし問題があるなら
 > 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にならないことがあります。
残念です。



ttssh2-dev メーリングリストの案内
アーカイブの一覧に戻る