setsync

【Tera Term マクロ言語】コマンドリファレンス

setsync 機能

[通信コマンド]

同期モードを設定します。

コマンドライン

setsync <sync flag>

機能説明

指定された <sync flag> の値から、同期モードを、同期または非同期に設定します。
<sync flag>
<sync flag> に指定可能な値は、以下の通りです。
<sync flag>指定モード
1同期通信モードに入る。
0非同期通信モードに入る。
Tera Term はホストから受信した文字をマクロへ転送し、それらの文字はマクロのバッファに保存されます。
受信文字を処理するコマンド ("wait" コマンド等) は、そのバッファから文字を取り出します。

マクロは初期状態が「非同期モード」です。
このモードでは、受信文字を処理するコマンドが長い間実行されない場合、または受信速度が速すぎる場合はバッファがあふれる可能性があります。
同期モードでは、受信したデータを歩調を合わせて処理するため、バッファは決してあふれません。
バッファがいっぱいになった場合、Tera Term はホストからの文字受信とマクロへの文字転送を停止します。バッファに再び空きができると Tera Term は文字受信と転送を再開します。
必要な時に限り同期モードに入り、必要でなくなったら非同期モードに戻るようにした方が良いでしょう。

複数行にわたる受信した文字を、一文字も失うことなく処理する、というような信頼性が要求されるマクロ処理の場合、同期モードに入る必要があります。
しかし、同期モードでは Tera Term の文字受信速度が遅くなり、また受信文字を処理するコマンドが長い間実行されない場合は、Tera Term の文字受信が停止したままになってしまいます。
一方、単純なマクロ処理(例えば自動ログイン)ならば非同期モードでもほとんど問題なく動作します。
この場合、バッファサイズは十分大きく(16Kバイト)、受信したすべての文字はバッファがあふれる前にコマンドによって処理されます。

Flow control between Tera Term and Macro

パラメータの説明

指定するパラメータは以下の通りです。
パラメータパラメータ説明
<sync flag>整数同期通信モードを指定します。

対象バージョン

全てのバージョンで利用可能です。

戻り値

戻り値はありません。

関連コマンド

種別:通信Ver機能の簡易説明
recvln一行分の文字を受信する。
flushrecvMACRO の受信バッファーの内容を消す。

使用方法

使用例

connect server
; 同期モードに入る
setsync 1
timeout = 60
waitln '+OK' '-ERR'

; 非同期モードに入る
setsync 0

end
connect '/C=1'

setsync 1

while 1
  ; Request data
  sendln  'REQ'

  ; Delay for 1 second
  pause 1

  flushrecv
endwhile

サンプル

サンプルマクロはありません。

備考

特にありません。