アプリ版:「スタンプのみでお礼する」機能のリリースについて

Teratermマクロを使って、ポートへATコマンドを送出しようとしています。
ポートが整っていないうちに、ATコマンドを送出した場合等のエラーを
キャッチしたいのですが、方法がわかりません。
サジェスチョン願います。

test.bat------------------
ttpmacro /v test.ttl
echo %ERRORLEVEL%
------------------------

test.ttl-------------------

connect '/c=4'
sendln "AT+xxxxx"
pause 1
disconnect
-------------------------

正常なら、
Teratermの画面に
ATコマンド
OK
と表示されますが、ポートが準備できていない(ポートがない)
時の画面は、「全くなし」です。
上記のTTLマクロは、問題は何もなかったかのごとくに終了となります。
多分、connect '/c=4' のところで、エラーとなっているのですが、
キャッチする方法がほしいです。

また、ペアレントへのそのエラーを伝える方法もほしいです。
上記では、echo %ERRORLEVEL% を書いていますが、0で、役に立っていません。
宜しくお願いいたします。

A 回答 (3件)

Tera Term(バージョン4.73)ヘルプを見た感じ、



> connect '/c=4' のところで、エラーとなっているのですが、キャッチする方法
戻り値を確認すればよいのでは。詳しくはTera Term ヘルプ TTL コマンドリファレンスをご覧ください。

> ペアレントへのそのエラーを伝える方法
setexitcodeとか。詳しくはTTL コマンドリファレンスをご覧ください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/05/12 09:01

No.1 です。


質問をよく把握してませんでした、すみません。
No.1 での
「 ボーレイト(というより、単に通信速度と呼ぶ方が適当か)確定の目的で
AT<cr>のみ送る、というのはちょっと外してた気がします。
connect に失敗したとすると、再度 connect が必要と思いますので、

No.1補足欄
>pause 1
の追加は方向が違うように思います。

マクロコマンドに
testlink
により、現在の接続状況が teraterm のシステム変数 result の値に反映されるそうです。
多分ですが、connect の直後で使えば、接続が成功したかくらいは判断できるかと思います。
    • good
    • 0

>connect '/c=4'


>sendln "AT+xxxxx"

の間に
AT<cr>だけ送れば済むかも。
"ok"が来るのを待てば、通信可能状態であることもわかります。

質問では、「エラーの時にわかるように」との事ですが、
ここで"ok"が帰ってこなければエラー、という判断でよろしいかと。
判定する teraterm マクロコマンドの使い方はちょっとわかりません。
今の環境では試せませんし。

もとより、相手(アナログモデムなど)は、ボーレイト未確定のまま "AT" を受けて、
"1""0"の時間幅により通信ボーレイトを判断し自己設定する、という仕組みなので、
通信を始める最初に1回は必要かと思います。
相手がビジー状態などでなく、受取るのが確実ならそれだけで通信可能となり、
問題ないと思います。(ビジーでもなければエラーは発生しない)

この回答への補足

ありがとうございます。
基本的なことがら、「相手が確実に存在することを保証」した上で、connectを実施する。

今現在、200回?に1回(本当にたまに)、エラーメッセージが返ってくる場合があり、
調査中です。それでも、全体の処理は、問題ないので、フェイントのような印象のエラーメッセージです。
多分、pauseを入れてやれば、そのメッセージは消えるのであろうと考えています。

connect '/c=4'
pause 1
sendln "AT+xxxxx"

サジェスチョンがあれば、お願いします。

補足日時:2012/05/12 09:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A