マクロ連続実行No.02283
jppy さん 06/07/18 22:10
 
秀TermエボをRS232Cターミナルソフトとして使用しています。
以下の動作について教えてください
1."ABC"を送信するマクロを作成しキーに割当てる
2.シリアルポートをオープンして「1.」で割当てたキーを連続押

「A」だけ先に出てきてしまうような?

質問事項
 ・上記のような操作を行った際にどのような動きになりますか?


内部は、キー操作ごとにスレッド作ってるのかな?なんて勝手に想像してみたりして
います。

[ ]
RE:02283 マクロ連続実行No.02284
秀まるお2 さん 06/07/19 10:01
 
 "ABC"を送信するスクリプトというのは、たぶん、

    send "ABC"

 ってだけかと思いますが、これを仮にファンクションキー連打で連続実行した
場合には、送信される文字列は"ABCABCABCABC..."となるはずです。

 "A"だけ送信して"BC"が送信されないということは無いはずです。ちゃんとバ
ッファリングしてから送信されるはずなので、"B"を送信してる最中に割り込み
的に"A"を送信してしまうとかってことも無いはずです。

 ということですが、とりあえずの対処として、スクリプトを、

   send "ABC"
   timeout 1
   wait "ABC"

 って風に直せばいいんじゃないかと思います。"ABC"を送信してたしかにホス
トから"ABC"の応答があるまでwaitするって処理ですけど。(タイムアウトは1
秒程度ってことで)

[ ]
RE:02284 マクロ連続実行No.02285
jppy さん 06/07/19 13:00
 
早々の回答ありがとうございます。

send "A"
millisleep 100
send "B"
millisleep 100
send "C"

こんなマクロだとどのように動作しますでしょう?
millisleepの間に次のボタンの処理(連続で押されているため)がされる?

 "A"だけ先に出てくるかな・・・?。

お忙しいところすみませんがよろしく御願いいたします。

[ ]
RE:02285 マクロ連続実行No.02286
秀まるお2 さん 06/07/19 13:09
 
 スクリプト実行中にさらに別のスクリプト実行要求があると、そのスクリプト
は割り込み的に実行されてしまいます。割り込み実行できるタイミングとしては、
sleep系とかwait系の所ってことになるので、そうすると、例えば"A"が連続送信
された後で"BC"が遅れて送信されたりってことになりそうです。

[ ]
RE:02286 マクロ連続実行No.02287
jppy さん 06/07/19 20:37
 
動作上ありうるということで了解です。
ご回答ありがとうございました。

[ ]