質問: "error: serial port read timed out." finally if com1 isnot nothing then com1.close() end try ------------------------------------ここまで この方法ですと、タイムアウトが発生したらポートを閉じるようですが、これを、送信したシリアルのデータを再度、送信させたいと思います。 そして、何度かリトライを掛けた後に、やっぱり駄目だったときに ポートを閉じたいと思います。 どんな方法がありますか? 参考になりそうなサイトなどがありましたら、教えていただけませんか。 以上、よろしくお願いします。
回答: 次のように考えたら如何でしょう。 (1)ポートを開く。この時に例外が発生したら終了する。 (2)以下の(3)~(5)を既定の回数繰り返す。 (3)データを送信する。 (4)データを受信する。読み込めたらループを抜ける。 (5)タイムアウトなら(3)から繰り返す。 (6)ポートを閉じる。 try com1 = my.computer.ports.openserialport("com1") com1.readtimeout = 10000 for i as integer = 1 to 5 try returnstr = con1.readline() exit for catch ex as timeoutexception returnstr = "error: serial port read timed out." catch ex as exception returnstr = ex.message exit for end try next com1.close() catch ex as exception returnstr = "error: serial port open failed." end try