Tera Term 5.2でASCIIコード0x00を1バイト送信すると通信相手は0x01を2バイト受信する

目的

今日(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

github.com

上記issue発行より修正いただいたもので正常動作を確認した.次のバージョンである5.3より修正される見込み.

その他

業務上0x00のデータを含むシリアルポート通信を送信するマクロを作成していて,マクロでの送信データは正しいはずだがいっこうに受信機器が動作しないため,通信内容を調べたらこの現象に至った.

改訂履歴

# 日付 内容
1 2024/04/06 修正完了され,次のTera Term 5.3にて解消される見込みを追記

*1:本当は自分で直してプルリク発行をしたいが,ソースコードを見てみても該当の箇所がすぐわかる技術力を持っていないので諦めた