掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
シリアル通信エラー取得 (ID:71356)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
その辺は USB-COM デバイスのドライバーの出来によっても状況が異なったりするので A社の AA デバイスでは OK であったが B社の BB デバイスでは NG とかそういうこともありえて、 一概にこうすれば Good ということは言えないのだが・・・ そもそも、プログラムのテクニカルな話以前の仕様として、そういうさし直しを認めるとしたら ・通信中に COM デバイスを除去してしまったら、そのとき通信していたデータはどうなればいいの? さし直し後にエラー時点から再開する必要があるのか? さし直し後に最初から通信やり直してかまわないのか? ・そのデバイスを 違う USB の口にさすと COMx の番号が変わるが、どうなればいいの? ・ COM デバイスが複数個あるとき、デバイスと COMx の対応をどう調べるつもり? (特に、抜き差しして COMx 番号が変わった場合) などなどがちゃんと考察・決定済みかどうかあたりが大いに問題だと思う。 俺が USB-COM 変換器を使ったときには、仕様として 抜いたらエラー。自動復帰しない。最初からやり直す必要あり。 としておいたけど。 で、以下はテクニカルな点。 まず ClearCommError/ReadFile/WriteFile 自体の返却値を見てないのがダメ。 抜くとそういう API 呼び出し自体が全部エラーになるはず (まっとうなドライバなら) その上で PnP 時には WM_DEVICECHANGE が飛んでくるのでそれで判定するとか・・・
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.