• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:TTPMACRO マクロ ATコマンド エラー)

TTPMACRO マクロ ATコマンド エラー

このQ&Aのポイント
  • Teratermマクロを使って、ポートへATコマンドを送出しようとしています。ポートが整っていないうちに、ATコマンドを送出した場合等のエラーをキャッチしたいのですが、方法がわかりません。
  • Teratermの画面にATコマンド OKと表示される正常な状態と、ポートが準備できていない場合のエラー画面の状態が全くない状態で終了してしまいます。特にconnect '/c=4'の部分でエラーが発生している可能性がありますが、エラーを捕捉する方法が分かりません。
  • また、エラーが発生した場合に親プロセスへエラーを伝える方法も知りたいです。現在はecho %ERRORLEVEL%というコマンドを使用していますが、常に0が返ってきており役に立っていません。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

Tera Term(バージョン4.73)ヘルプを見た感じ、 > connect '/c=4' のところで、エラーとなっているのですが、キャッチする方法 戻り値を確認すればよいのでは。詳しくはTera Term ヘルプ TTL コマンドリファレンスをご覧ください。 > ペアレントへのそのエラーを伝える方法 setexitcodeとか。詳しくはTTL コマンドリファレンスをご覧ください。

atom_28
質問者

お礼

ありがとうございます。 "setexitcode" 早速試してみます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#159916
noname#159916
回答No.3

No.1 です。 質問をよく把握してませんでした、すみません。 No.1 での 「 ボーレイト(というより、単に通信速度と呼ぶ方が適当か)確定の目的で AT<cr>のみ送る、というのはちょっと外してた気がします。 connect に失敗したとすると、再度 connect が必要と思いますので、 No.1補足欄 >pause 1 の追加は方向が違うように思います。 マクロコマンドに testlink により、現在の接続状況が teraterm のシステム変数 result の値に反映されるそうです。 多分ですが、connect の直後で使えば、接続が成功したかくらいは判断できるかと思います。

すると、全ての回答が全文表示されます。
noname#159916
noname#159916
回答No.2

>connect '/c=4' >sendln "AT+xxxxx" の間に AT<cr>だけ送れば済むかも。 "ok"が来るのを待てば、通信可能状態であることもわかります。 質問では、「エラーの時にわかるように」との事ですが、 ここで"ok"が帰ってこなければエラー、という判断でよろしいかと。 判定する teraterm マクロコマンドの使い方はちょっとわかりません。 今の環境では試せませんし。 もとより、相手(アナログモデムなど)は、ボーレイト未確定のまま "AT" を受けて、 "1""0"の時間幅により通信ボーレイトを判断し自己設定する、という仕組みなので、 通信を始める最初に1回は必要かと思います。 相手がビジー状態などでなく、受取るのが確実ならそれだけで通信可能となり、 問題ないと思います。(ビジーでもなければエラーは発生しない)

atom_28
質問者

補足

ありがとうございます。 基本的なことがら、「相手が確実に存在することを保証」した上で、connectを実施する。 今現在、200回?に1回(本当にたまに)、エラーメッセージが返ってくる場合があり、 調査中です。それでも、全体の処理は、問題ないので、フェイントのような印象のエラーメッセージです。 多分、pauseを入れてやれば、そのメッセージは消えるのであろうと考えています。 connect '/c=4' pause 1 sendln "AT+xxxxx" サジェスチョンがあれば、お願いします。

すると、全ての回答が全文表示されます。

関連するQ&A