目的
今日(2024/03/31)現在で最新のTera Term 5.2にて,シリアルポートでASCIIコード0x00を1バイト送信すると通信相手は0x01を2バイト受信してしまう.
0x00の送信は,マクロで
send $00
としているだけで,特に特殊なことはしていない.バージョン4.x系の最新4.108では0x00を1バイト送信すると,受信側も正常に0x00を受信する.
名称 | 規格 | 製造会社 | 備考 |
---|---|---|---|
オペレーティングシステム | Windows 10 Pro 64ビット,22H2 | マイクロソフト | |
Tera Term | 5.2 | TeraTerm Project | 今日(2024/03/31)時点で最新の5.x系のバージョン |
Tera Term | 4.105 | TeraTerm Project | 4.x系で今まで使っていたバージョン |
Tera Term | 4.108 | TeraTerm Project | 4.x系で最新 |
結論
現状では,4.x系の最新版である4.108であれば正常(0x00を1バイト送信すると,受信側も正常に0x00を受信する)であるので,この記事の現象に困った場合は,5.x系ではなく4.x系を使用する必要がある.Tera TermプロジェクトのGitHubにはissueを発行しておいた*1:
上記issue発行より修正いただいたもので正常動作を確認した.次のバージョンである5.3より修正される見込み.
その他
業務上0x00のデータを含むシリアルポート通信を送信するマクロを作成していて,マクロでの送信データは正しいはずだがいっこうに受信機器が動作しないため,通信内容を調べたらこの現象に至った.
改訂履歴
# | 日付 | 内容 |
---|---|---|
1 | 2024/04/06 | 修正完了され,次のTera Term 5.3にて解消される見込みを追記 |