setportnoコマンドに付いてNo.01831
もか さん 00/11/03 13:07
 
setportnoコマンドに付いてなのですが、”サポートされていません”と表示されて
しまうのですが、使えないのでしょうか?
やりたい事は通信設定を変えずにCOMポートの切り替えを行ないたいのですが、conne
ctコマンドではスクリプトが終了してしまい困っています。
スクリプトを中断せずにポートの切り替えをランダムに行ないたいのです。
良い方法有りませんか?

[ ]
RE:01831 setportnoコマンドに付いてNo.01832
秀まるお さん 00/11/06 11:49
 
> スクリプトを中断せずにポートの切り替えをランダムに行ないたいのです。
> 良い方法有りませんか?

 connect文を使わずにポートだけ切り替えることは出来ないです。

 ホストプロパティ側でスクリプトを指定しておいて、うまく処理が続行されるよう
に工夫するしかないです。

 例えば、スクリプトの先頭で

    if( %port == 1 ) {
        goto ProcessPort1        ; ポート1に接続したときの処理
    elseif( %port == 2 ) {
        goto ProcessPort2        ; ポート1に接続したときの処理
    endif

    ...
    ...
;   ポート1に切り替える処理処理
    %port = 1
    connect "Host_Port1"
ProcessPort1:
    ...
    ...


 とか。


[ ]
RE:01832 setportnoコマンドに付いてNo.01833
もか さん 00/11/07 10:57
 
>> スクリプトを中断せずにポートの切り替えをランダムに行ないたいのです。
>> 良い方法有りませんか?
>
> connect文を使わずにポートだけ切り替えることは出来ないです。
>
> ホストプロパティ側でスクリプトを指定しておいて、うまく処理が続行されるよう
>に工夫するしかないです。
>
> 例えば、スクリプトの先頭で
>
>    if( %port == 1 ) {
>        goto ProcessPort1        ; ポート1に接続したときの処理
>    elseif( %port == 2 ) {
>        goto ProcessPort2        ; ポート1に接続したときの処理
>    endif
>
>    ...
>    ...
>;   ポート1に切り替える処理処理
>    %port = 1
>    connect "Host_Port1"
>ProcessPort1:
>    ...
>    ...
>
>
> とか。
>
ご回答有り難う御座いました。
上記方法で試してみましたが、やはりconnect文がくるとscript自体が終了してしま
うようです?
又、既に接続されている場合は”オンライン中はconnect文は使えません”と表示さ
れてしまいます。
無理なのかなあ?
実際にやってみたいのは、com1で予め接続されていて、そこにscriptを実行する事で
com2,com3,com1をscript実行中、任意で切り替えを行ないたいのです。

PS、
コマンドのsetportnoはどういう時にどのように使用するものですが?


[ ]
RE:01833 setportnoコマンドに付いてNo.01834
秀まるお さん 00/11/09 09:38
 
 ホストプロパティの「自動起動するスクリプト」をちゃんと指定しないとダメです。

 connect文によってスクリプトはいったん中断してしまうので、接続後にもう一度
スクリプトを起動しなおして、その後の処理をする作戦です。それを1つのスクリプ
トファイルでやろうとするならこうなるって話ですが、話を簡単にするためにスクリ
プトを1つに分けてもいいなら、例えばこうなります。

 COM1用のホストがあって、それのスクリプトがCOM1.HSCである。
 COM2用のホストがあって、それのスクリプトがCOM2.HSCである。

COM1.HSC
    message "A"
    connect "COM2用ホスト"


COM2.HSC
    message "B"

 そうすると、これは見かけ上、

   message "A"
   setportno "COM2"
   message "B"

 を実行したかのように動作します。その辺の流れをうまく利用してスクリプトを作
り替えればいいです。


[ ]
RE:01834 setportnoコマンドに付いてNo.01835
もか さん 00/11/09 17:54
 
> ホストプロパティの「自動起動するスクリプト」をちゃんと指定しないとダメです。
>
> connect文によってスクリプトはいったん中断してしまうので、接続後にもう一度
>スクリプトを起動しなおして、その後の処理をする作戦です。それを1つのスクリプ
>トファイルでやろうとするならこうなるって話ですが、話を簡単にするためにスクリ
>プトを1つに分けてもいいなら、例えばこうなります。
>
> COM1用のホストがあって、それのスクリプトがCOM1.HSCである。
> COM2用のホストがあって、それのスクリプトがCOM2.HSCである。
>
>COM1.HSC
>    message "A"
>    connect "COM2用ホスト"
>
>
>COM2.HSC
>    message "B"
>
> そうすると、これは見かけ上、
>
>   message "A"
>   setportno "COM2"
>   message "B"
>
> を実行したかのように動作します。その辺の流れをうまく利用してスクリプトを作
>り替えればいいです。
>
もう少し詳しく教えて頂けませんか?
自動起動するスクリプトにCOM1.HSCを登録すると言う事ですか?
登録してみるとメニューから接続を行なうとオンライン中はconnect文は使えません
と表示してしまいますし、上記方法が勉強不足で理解出来ません!
お手数ですがよろしくお願いします。

connect文とhangup文を使ってもスクリプトが終了しないソフト対応不可能なのでし
ょうか?
この2つが使用出来ると非常に助かります。
どうかご検討お願いします。



[ ]
RE:01835 setportnoコマンドに付いてNo.01836
秀まるお さん 00/11/13 21:36
 
> 登録してみるとメニューから接続を行なうとオンライン中はconnect文は使えません
> と表示してしまいますし、上記方法が勉強不足で理解出来ません!

 すみません。たしかにconnect文はオンライン中には使えませんでした。

 ここはafterhangup文とhangup文の組み合わせでポートを切り替えるしかなさそう
です。

 例えばcom1からcom2に切り替えるには、

    afterhangup ToCom2;
    hangup;


ToCom2:
    connect "COM2用ホスト";

 ってな具合になります。

 どないでしょ?

[ ]
RE:01836 setportnoコマンドに付いてNo.01838
もか さん 00/11/15 18:08
 
>> 登録してみるとメニューから接続を行なうとオンライン中はconnect文は使えません
>> と表示してしまいますし、上記方法が勉強不足で理解出来ません!
>
> すみません。たしかにconnect文はオンライン中には使えませんでした。
>
> ここはafterhangup文とhangup文の組み合わせでポートを切り替えるしかなさそう
>です。
>
> 例えばcom1からcom2に切り替えるには、
>
>    afterhangup ToCom2;
>    hangup;
>
>
>ToCom2:
>    connect "COM2用ホスト";
>
> ってな具合になります。
>
> どないでしょ?

上記方法でもTocom2のスクリプトでconnectされるとやはりスクリプトが終了してし
まいますよね?

やりたい事はスクリプトの中断無しでCOM1,2,3を複数回切り変えたいのです。

##例

COM1に接続

シリアルコマンド送信

COM2に接続

シリアルコマンド送信

COM3に接続

シリアルコマンド送信

COM2に接続

COM1

COM3


というように複数かつランダムに切り替えをしたいのです。

良き方法を教えて下さい。

[ ]
RE:01838 setportnoコマンドに付いてNo.01840
秀まるお さん 00/11/20 18:09
 
> 上記方法でもTocom2のスクリプトでconnectされるとやはりスクリプトが終了してし
> まいますよね?

 中断されますが、connect後にホストプロパティ側で指定したスクリプトが起動す
るので、そこに続きの処理を書いておけば、見かけ上スクリプトはずっと実行されっ
ぱなしと同じです。


[ ]