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

Back to archive index
matsuo zmats****@gmail*****
2023年 2月 6日 (月) 22:55:57 JST


松尾です。

 > 何かの拍子にCTSを無視して動作するよう設定しているとか
 > ちょっとした間違いではないかな?と予想しています。
ハードフロー直ったかもしれません。

手元でフロー制御が効かなかった組み合わせで
うまくフロー制御できるようになりました。
r10586です。

https://learn.microsoft.com/ja-jp/windows/win32/api/winbase/nf-winbase-setcommstate
 > DCB 構造体の XonChar メンバーが XoffChar メンバーと等しい場合に失敗します

とあるのですが、Tera Term では、XON/XOFF フローの時以外は
両方のメンバの値は0で、いつも等しかったはずで、
ドキュメント通りならいつも失敗です。
今回 XON XOFF を設定するようにしました。
https://ja.osdn.net/projects/ttssh2/svn/view/branches/ttcomtester/teraterm/teraterm/commlib.c?view=markup&revision=10587&root=ttssh2#l207


HHD SOFTWARE の Virtual Serail Ports のドライバときは
エラーを返してきて、fOutxCtsFlow, fRtsControl などの
メンバーを設定しないようです。

FTDIのドライバはエラーはなし、
すべてのメンバが設定されているようです。

ドライバのメーカー(MSも?)は、エラーを返したとしても、
BaudRate, fParity , StopBits などのメンバの値に
チップを初期化していたと思われます。

どこまで設定して、エラーを出す/出さないかは
メーカーによってのばらつきがあって、
ハードフローが動作する/しないということが
起こっていたのかなという予想ができそうです。

それとTera Term側でCTSなどををチェックして
送信処理を止める処理を入れました。r10587です。
これでチップレベルではなく、アプリ(Tera Term)レベルで
フロー制御がかかることになります。

追試していただきたいのですが、
フローがうまく動作しないのは
私の手元しかなかったか……



ttssh2-dev メーリングリストの案内
Back to archive index