• Showing Page History #122244

Show page source of serial #122416

Tera Term でシリアルポートに関するバグレポートが多くあり、根強く更新されているものもある

本当にバグがあるのか、デバイスドライバやケーブルや対向装置のせいで動かすことが不可能な指定をして「動かない」と言っているのかわからない

 * #27448 !TerraTerm Crash
 * #32320 COM flow with control : missing data in log file
 * #39187 Hardware Flow Control
 * #39369 CH340Gでフロー制御効かない件への対応
 * #42103 HW Flow Control not working
 * #45271 Hardware Flow Control Does not work in Teraterm
 * forum_message:82938 RTS & CTS handshaking not working in Teraterm

=== 動かないというのではないが、気になるticket
 * #36094 XON/XOFF hardcoded limits too high

= シリアルに関する資料っぽい情報
 * #31573 シリアル接続 低速通信レート時
   * 「ドライバで対応している転送速度」というものがある。Tera Term では好きに速度を指定できるが、対応している速度でないと正しく動かない。
 * #10945 シリアル通信時のフロー制御不具合
   * BSOD が起きるのはたいていソフトのせいではなくドライバのせい
   * USB-Serail 変換チップのメーカー
      * FTDI
      * Prolific

= 手持ちの動作確認に使える機器
 * PC1(COMあり)
   * Windows 8.1
   * チップ: GD75232?
 * PC2 !ThinkPad X61 + ウルトラベース X6(COMあり)
   * Windows XP
   * チップ: PC87392?
 * PC3(COMあり)
   * Windows XP
   * チップ: MAX3243?
 * PC4(COMなし)
   * Windows 10
 * PC5(COMなし)
   * Windows 11
 * PC6 DELL !OptiPlex 790(COMあり)
   * Windows 10
 * PC7 DELL !OptiPlex 7010(COMあり)
   * Windows XP
 * PC8 !ThinkPad X200s (COMなし)
   * Windows 7
 * PC9 !ThinkPad X201 (COMなし)
   * Windows 10
 * PC10 HP Pavilion dv6000(COMなし)
   * Windows Vista
 * USB-Serial 変換器 [https://www.buffalo.jp/product/detail/bsusrc0605bs.html バッファロー BSUSRC06]
   * チップ: FT232BM
 * USB-Serial 変換器 [https://www.ratocsystems.com/products/rs232c/232cusb/usb60f/ ラトックシステム REX-USB60F]
   * チップ: FT232BL
   * [https://www.ratocsystems.com/pdffile/convert/usb60f.pdf マニュアル] によると「フロー制御なし」「RTS/CTS」「DTR/DSR」「XON/XOFF」に対応
 * シリアルケーブル(ストレート)
   * 9ピンすべて結線
   * 他ピンへの結線なし
   * テスターで確認
 * シリアルリバースアダプタ / [https://www.elecom.co.jp/products/AD-R9.html ELECOM AD-R9] D-Sub9ピンメス - D-Sub9ピンオス
   * 2-3, 3-2, 4-6, 5-5, 6-4, 7-8, 8-7, SHELL-SHELL 結線
   * 1 と 9 は結線なし
 * シリアルケーブル(クロス) / [https://www.sanwa.co.jp/product/syohin?code=KR-ECLK2 サンワサプライ KR-ECLK2]
   * 2-3, 3-2, 4-6, 5-5, 6-4, 7-8, 8-7, フレーム-フレーム 結線
   * 1 と 9 は結線なし

= #45271 テスト
 * 送信側は {{{ttcomtester --device com1 --rts hs --verbose}}} と起動する
 * 受信側は {{{ttcomtester --device com1 --rts on --verbose}}} と起動する
 * 送信と受信を入れ変えるときは引数を変えて ttcomtester を起動し直す

|| テスト                   ||     ||                  ||                           ||
|| テスト1 (ttssh2-dev 545) || PC1 || PC4 + BSUSRC06   || ストレートケーブル+変換器 ||
|| テスト2 (ttssh2-dev 550) || PC1 || PC4 + REX-USB60F || ストレートケーブル+変換器 ||
|| テスト3 (ttssh2-dev 550) || PC1 || PC3              || ストレートケーブル+変換器 ||
|| テスト4 (ttssh2-dev 550) || PC3 || PC4 + REX-USB60F || ストレートケーブル+変換器 ||
|| テスト5                  || PC1 || PC6              || クロスケーブル            ||
|| テスト6                  || PC6 || PC3              || クロスケーブル            ||
|| テスト7                  || PC6 || PC4 + REX-USB60F || クロスケーブル            ||

== Tera Term 本体への修正
 * https://osdn.net/projects/ttssh2/svn/view?view=revision&root=ttssh2&revision=10601
 * https://osdn.net/projects/ttssh2/svn/view?view=revision&root=ttssh2&revision=10594
 * https://osdn.net/projects/ttssh2/svn/view?view=revision&root=ttssh2&revision=10593
 * https://osdn.net/projects/ttssh2/svn/view?view=revision&root=ttssh2&revision=10587
 * https://osdn.net/projects/ttssh2/svn/view?view=revision&root=ttssh2&revision=10586

== rev10551
https://osdn.net/projects/ttssh2/scm/svn/commits/10551

||         || send mode →      || s (big data) →     || send mode ←        || s (big data) ←       ||
|| テスト5 || 1:OK 0:OK 0->1:NG || 1:16bytes 1<->0:N/A || 1:OK 0:OK  0->1:NG  || 1:14bytes   1<->0:N/A ||
|| テスト7 || 1:OK 0:OK 0->1:NG || 1:14bytes 1<->0:N/A || 1:OK 0:※1 0->1:※2 || 1:4096bytes 1<->0:OK  ||

※1 3文字まで送信側 "send xx, 1 byte", 4文字目から送信側 "send xx, 0 byte"

※2 r で 1 にすると3文字だけ表示される

 * s (big data) の送信がうまくいかない
 * send mode の 0->1 復旧で、0の間に押したキーのデータが表示されない
   * PC3 からの送信時に 3 文字だけ効いている

== rev10557
https://osdn.net/projects/ttssh2/scm/svn/commits/10557

||         || send mode →         || s (big data) →     || send mode ←         || s (big data) ← ||
|| テスト5 || 1:※1 0:※2 0->1:※3 || 1:OK 1<->0:OK       || 1:※4 0:※2 0->1:※3 || 1:OK 1<->0:OK   ||
|| テスト7 || 1:※4 0:※2 0->1:※3 || 1:OK 1<->0:OK       || 1:※1 0:※5 0->1:※6 || 1:OK 1<->0:OK   ||

※1 基本的に大丈夫だ("send size 1 (finish)" と表示される)が、連続して打っていると "writing.." と表示されるときがある。その時のキーは受信側に表示されない。

※2 0 にした1文字目は送信側に何も表示されない。2文字目から送信側に "writing.." と表示される。

※3 r で 1 にしても 0 の間のデータは表示されない。その後(1の状態で)送信しても送信側 "writing.." となり受信側に表示されない(l で見ると CTS は ON になっているのに)。送信側の close / open で復旧する。

※4 最初は大丈夫だが、しばらく打っていると "write() error 4317,0x10dd 識別操作子が無効です。" と表示され、その後キーを受け付けなくなる。アプリを落とすしかない。PC6 固有の問題?

※5 0 にした3文字目まで送信側に "send size 1 (finish)" と表示される。4文字目は送信側に何も表示されない。5文字目から送信側に "writing.." と表示される。

※6 r で 1 にすると 3 文字だけ表示される。その後(1の状態で)送信しても送信側 "writing.." となり受信側に表示されない(l で見ると CTS は ON になっているのに)。送信側の close / open で復旧する。

 * s (big data) の送信がうまくいくようになった
 * s (big data) の送信時には r でのコントロールが効いている
 * send mode の 0->1 復旧で、0の間に押したキーのデータが表示されない
   * PC3 からの送信時に 3 文字だけ効くが、そのほかはだめ

== rev10562
https://osdn.net/projects/ttssh2/scm/svn/commits/10562

||         || send mode →       || s (big data) → || send mode ←       || s (big data) ← ||
|| テスト5 || 1:OK 0:OK 0->1:※1 || 1:OK 1<->0:OK   || 1:OK 0:OK 0->1:※1 || 1:OK 1<->0:OK   ||
|| テスト7 || 1:OK 0:OK 0->1:※1 || 1:OK 1<->0:OK   || 1:OK 0:OK 0->1:※1 || 1:OK 1<->0:OK   ||

※1 受信側が0の間に送信側で押したキーの結果は、受信側を1に復旧しても表示されない

 * send mode で送れるようになりました。
{{{
連続して打って詰まった?ときの動作はこうなりました。受信側に、取りこぼされずに表示されています。
send 31, sent 0 byte pending
send size 1 (finish)
send 32, sent 0 byte pending
send size 1 (finish)
send 33, sent 0 byte pending
send size 1 (finish)
send 34, sent 1 byte
send 32, sent 0 byte pending
send size 1 (finish)
send 33, sent 0 byte pending
send size 1 (finish)
send 31, sent 0 byte pending
send size 1 (finish)
}}}


== rev10601
https://osdn.net/projects/ttssh2/scm/svn/commits/10601

=== test1, Tera Term <-> Tera Term
 * 送信側
   * Send File でバイナリでファイルを送信する
 * 受信側
   * バイナリログをとる
 * 設定
   * 115200bps , 8bit , none , 1bit , RTS/CTS , delay0,0
 * 結果
   * PC1 -> PC6 OK
   * PC1 <- PC6 OK

= commits

branches/ttcomtester
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10522 r10522]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10530 r10530]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10531 r10531]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10532 r10532]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10533 r10533]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10547 r10547]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10551 r10551]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10557 r10557]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10558 r10558]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10561 r10561]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10562 r10562]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10586 r10586]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10587 r10587]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10588 r10588]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10593 r10593]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10594 r10594]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10601 r10601]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10602 r10602]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10609 r10609]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10610 r10610]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10620 r10620]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10621 r10621]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10622 r10622]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10631 r10631]
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10632 r10632]

trunk
 * [https://osdn.net/projects/ttssh2/scm/svn/commits/10605 r10605]
   * [https://osdn.net/projects/ttssh2/scm/svn/commits/10601 r10601] の一部のみマージ