シリアルポート切り替えに付いてNo.01875
もか さん 01/01/22 18:37
 
以前にも色々と問い合わせを致しましたが、シリアルポートの切り替え
をランダムに且つ同一スクリプト上で行ないたいのですが、個別に対応して頂く事は
出来ませんか?(有料にて)

もう一つ欲を言えばTelnetも同様にスクリプトの中断無しで実現したい。

お手数ですがご検討願います。


[ ]
RE:01875 シリアルポート切り替えに付いNo.01876
秀まるお さん 01/01/23 12:20
 
> 以前にも色々と問い合わせを致しましたが、シリアルポートの切り替え
> をランダムに且つ同一スクリプト上で行ないたいのですが

 とりあえず、もかさんの所で動けばそれでいいってレベルならってことで対応しま
した。ただし、テストをしていません。(自分のマシンがcom1しか無いので)

 使い方ですが、例えばcom1につないだ状態でcom2に切り換えるには、

    reconnect "com2"

 です。同様に、com1〜com9が指定できます。

 さらに、telnet接続している最中に、

   reconnect "www.maruo.co.jp"

 などとすれば、telnet接続先ホストの切り換えも出来ます。telnet接続の切り換え
だけは手元てテストして動作確認しています。


 置いてある場所は、

 http://member.nifty.ne.jp/hidemaruo/tk.lzh

 です。この中のhideterm.exeを使ってください。(バージョン表記は古いままです
が)


[ ]
RE:01876 シリアルポート切り替えに付いNo.01877
秀まるお さん 01/01/23 12:23
 
 間違えました。(鶴亀じゃないのだ)

 http://member.nifty.ne.jp/hidemaruo/ht.lzh

 が正しいURLです。

[ ]
RE:01877 シリアルポート切り替えに付いNo.01878
秀まるお さん 01/01/23 13:18
 
 やっぱり手元でテストしたらダメでした。もう一回作り直します。


[ ]
RE:01878 シリアルポート切り替えに付いNo.01879
秀まるお さん 01/01/23 13:27
 
 今直してアップロードしなおしました。今度は大丈夫だと思います。

 手元て、com1に接続した状態で、

    message "A"
    reconnect "com1"
    message "B"

 のスクリプトがうまく動いています。


[ ]
RE:01879 シリアルポート切り替えに付いNo.01880
もか さん 01/01/23 21:37
 
> 今直してアップロードしなおしました。今度は大丈夫だと思います。
>
> 手元て、com1に接続した状態で、
>
>    message "A"
>    reconnect "com1"
>    message "B"
>
> のスクリプトがうまく動いています。
>

COM1,3,4の切り替えうまく動きました!
Telnetも同様に希望通りに動きました。

感謝感激雨あられ!

個別対応有り難うございました。
ところで有償?無償?

[ ]
RE:01880 シリアルポート切り替えに付いNo.01881
秀まるお さん 01/01/24 17:40
 
 無償です。

[ ]
RE:01881 シリアルポート切り替えに付いNo.01882
もか さん 01/01/24 18:21
 
> 無償です。

有り難うございました。
今後ともよろしくお願い致します。

本当に助かりました!

[ ]
RE:01879 シリアルポート切り替えに付いNo.01909
もか さん 01/03/01 13:00
 
> 今直してアップロードしなおしました。今度は大丈夫だと思います。
>
> 手元て、com1に接続した状態で、
>
>    message "A"
>    reconnect "com1"
>    message "B"
>
> のスクリプトがうまく動いています。
>
個別対応をして頂いたソフトなのですが、シリアル接続したまましばらく放置してお
くと”シリアルポートへの書き込みに失敗したので切断しました。”の
表示が出てしまいます。
出なくなるようには出来ませんか?
お手数かけますが、ご検討お願いします。

[ ]
RE:01909 シリアルポート切り替えに付いNo.01910
秀まるお さん 01/03/02 09:45
 
> ”シリアルポートへの書き込みに失敗したので切断しました。”

 調べてみます。少々お待ちを。

[ ]
RE:01910 シリアルポート切り替えに付いNo.01911
もか さん 01/03/02 13:39
 
>> ”シリアルポートへの書き込みに失敗したので切断しました。”
>
> 調べてみます。少々お待ちを。

これと同じ原因かもしれませんが、下記のように使用した場合2度目の切り替え後3
秒位放置しておくと元の接続COMに戻ってしまいます。

デフォルト使用COM3 -> COM1 -> COM3 -> COM1 でしばらく放置しているとCOM3に戻
ってしまう。

お手数ですが、合わせてご確認お願い致します。


[ ]
RE:01909 シリアルポート切り替えに付いNo.01912
秀まるお さん 01/03/02 17:28
 
 僕のパソコンのCOM2を復活させて、モデムを2台つないでさっきテストしてみまし
た。しかし、うまく再現しませんでした。

 ソースコードを追ってみた所、どうも、送信がまだ完了してない段階でreconnect
を実行してしまうとエラーになるような気がするんですが、どんなもんでしょ?。

 何か送信してすぐにreconnectすると、送信中にreconnectする可能性があるので、
reconnectの前にsleep文を使ってしばらく間を置くようにしてみてほしいです。

 それでもダメならソースコードをいじってなんとかしたいと思うので、また連絡く
ださい。


[ ]
RE:01912 シリアルポート切り替えに付いNo.01913
もか さん 01/03/05 16:31
 
> 僕のパソコンのCOM2を復活させて、モデムを2台つないでさっきテストしてみまし
>た。しかし、うまく再現しませんでした。
>
> ソースコードを追ってみた所、どうも、送信がまだ完了してない段階でreconnect
>を実行してしまうとエラーになるような気がするんですが、どんなもんでしょ?。
>
> 何か送信してすぐにreconnectすると、送信中にreconnectする可能性があるので、
>reconnectの前にsleep文を使ってしばらく間を置くようにしてみてほしいです。
>
> それでもダメならソースコードをいじってなんとかしたいと思うので、また連絡く
>ださい。
>

[ ]
RE:01912 シリアルポート切り替えに付いNo.01914
もか さん 01/03/05 16:44
 
> 僕のパソコンのCOM2を復活させて、モデムを2台つないでさっきテストしてみまし
>た。しかし、うまく再現しませんでした。
>
> ソースコードを追ってみた所、どうも、送信がまだ完了してない段階でreconnect
>を実行してしまうとエラーになるような気がするんですが、どんなもんでしょ?。
>
> 何か送信してすぐにreconnectすると、送信中にreconnectする可能性があるので、
>reconnectの前にsleep文を使ってしばらく間を置くようにしてみてほしいです。
>
> それでもダメならソースコードをいじってなんとかしたいと思うので、また連絡く
>ださい。
>
sleepを入れてみましたが、ダメでした。
下記のようなスクリプトでCOM1ではxxxという文字列を待って受信したらCOM3に戻す
事をやろうとしています。
(COM1は受信のみ)

1度目のwaitはちゃんと待っていますが、2回目のwaitはしばらくすると勝手にEND
迄進んでしまいます。

## スクリプト ##

reconnect COM1
sleep 5

wait"xxx"      ;COM1でxxx受信待ち

reconnect COM3
sleep 5

,,, コマンド送出

reconnect COM1
sleep 5

wait"xxx"      ;COM1でxxx受信待ち <−−ここのWaitが効かない

reconnect COM3
sleep 5

message"END"


もう一つの問題の”シリアルポートへの書き込みに失敗したので切断しました。”表
示で通信が止まってしまう件ですが、送受信を頻繁に行なっている場合は問題ないの
ですが、COMにデバイスが無い状態や接続したまま放置(7〜8分位?)すると出ます。
お手数ですが、ご確認お願いします。

[ ]
RE:01914 シリアルポート切り替えに付いNo.01916
秀まるお さん 01/03/07 09:59
 
 説明不足な点があったようです。reconnectしてからsleepしてほしいんじゃなくて、
sleepしてからreconnectしてほしいです。

    sleep 5
    reconnect COM1

 ってな具合です。そうすれば送信が完了してから切り替わると思います。

> 送受信を頻繁に行なっている場合は問題ないの
> ですが、COMにデバイスが無い状態や接続したまま放置(7〜8分位?)すると出ます

 reconnectする先のポートにデバイスがつながってない状態でそのエラーが出るの
は仕様です。reconnectしなくても、デバイスのつながってないポートに対して何か
送信すれば、1分くらい経過してからエラーが出るはずです。

 デバイスがつながってないポートにconnectすることもreconnectすることも絶対さ
けてください。

 接続したまま放置すると出るというのも、たぶんそういうデバイスのつながってな
いポートに一度reconnectしたがために、そのポートへの書き込みがタイムアウトに
なるのを待ってエラーになっているんだと思います。


[ ]
RE:01916 シリアルポート切り替えに付いNo.01922
もか さん 01/03/30 14:37
 
> 説明不足な点があったようです。reconnectしてからsleepしてほしいんじゃなくて、
>sleepしてからreconnectしてほしいです。
>
>    sleep 5
>    reconnect COM1
>
> ってな具合です。そうすれば送信が完了してから切り替わると思います。

返事が遅くなりましたが、出来ました!

>
>> 送受信を頻繁に行なっている場合は問題ないの
>> ですが、COMにデバイスが無い状態や接続したまま放置(7〜8分位?)すると出
>ます
>
> reconnectする先のポートにデバイスがつながってない状態でそのエラーが出るの
>は仕様です。reconnectしなくても、デバイスのつながってないポートに対して何か
>送信すれば、1分くらい経過してからエラーが出るはずです。
>
> デバイスがつながってないポートにconnectすることもreconnectすることも絶対さ
>けてください。
>
> 接続したまま放置すると出るというのも、たぶんそういうデバイスのつながってな
>いポートに一度reconnectしたがために、そのポートへの書き込みがタイムアウトに
>なるのを待ってエラーになっているんだと思います。
>

ちょっと変わった使い方をしようとしていてCOM1には双方向の通信がされるデバイス
が接続されますが、もう一つのCOM3には片方向(秀タームから見ると受信のみ)で更
にボーレートの違う設定で文字化けするコードをWaitするいう変な事をしようとして
います。(秀タームとCOM1は38400でCOM3は9600)

reconnect COM3 <-- 9600 の受信のみ
wait"xxx"                     <--  ここの待ち時間が長いとエラーに!
reconnect COM1 <--> 38400双方向

だからエラーが出る事があるのでしょうか?

ボーレートを合わせる事が出来れば問題無いのかな?
可能でしたらオプションで "reconnect COM 3 9600"とかで可変出来ると有り難いの
ですが?
対応可能でしょうか?
それとも送受信可能なデバイスでないとダメなのでしょうか?
お手数ですが、アドバイスお願いします。



[ ]
RE:01922 シリアルポート切り替えに付いNo.01923
秀まるお2 さん 01/03/30 15:21
 
 お久しぶりです。(^^;

> ちょっと変わった使い方をしようとしていてCOM1には双方向の通信がされるデバイス
> が接続されますが、もう一つのCOM3には片方向(秀タームから見ると受信のみ)で更
> にボーレートの違う設定で文字化けするコードをWaitするいう変な事をしようとして
> います。(秀タームとCOM1は38400でCOM3は9600)

 何も送信しなければ大丈夫かもしれませんが、何か送信したならエラーが出ても仕
方ないと思います。

> 可能でしたらオプションで "reconnect COM 3 9600"とかで可変出来ると有り難いの
> ですが?

 reconnectした後で、port文を使ってボーレートを変更すればいいと思います。そ
れで直るならいいですけど、直らないなら、例えば送信でエラーが起きても無視する
ような設定を別に用意するでもしないと直らないと思います。

[ ]
RE:01923 シリアルポート切り替えに付いNo.01924
もか さん 01/03/30 19:29
 
> お久しぶりです。(^^;

こちらこそ

Port文で9600<->38400の切り替えちゃんと出来ましたので、期待する文字でのWaitが
出来ました。

変にEnterとか押していた事でエラーになっていたような気もします。

大丈夫そうなのでちょっと様子を見る事にしますね!

今後ともよろしくお願い致します。




>
>> ちょっと変わった使い方をしようとしていてCOM1には双方向の通信がされるデバイス
>> が接続されますが、もう一つのCOM3には片方向(秀タームから見ると受信のみ)で更
>> にボーレートの違う設定で文字化けするコードをWaitするいう変な事をしようとして
>> います。(秀タームとCOM1は38400でCOM3は9600)
>
> 何も送信しなければ大丈夫かもしれませんが、何か送信したならエラーが出ても仕
>方ないと思います。
>
>> 可能でしたらオプションで "reconnect COM 3 9600"とかで可変出来ると有り難いの
>> ですが?
>
> reconnectした後で、port文を使ってボーレートを変更すればいいと思います。そ
>れで直るならいいですけど、直らないなら、例えば送信でエラーが起きても無視する
>ような設定を別に用意するでもしないと直らないと思います。

[ ]