問題タブ [windows-7-embedded]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Arduino との接続を閉じると C# がハングする
いくつかの簡単なコマンドを Arduino に送信する C# プログラムを作成しています。USBシリアル仮想ポート経由。
コードが try/catch ブロックで保護されていても、プログラムがハングすることがあります。
問題を見たとき、問題はポートを閉じることにあるようです。
関数は非常に単純です。
Close 関数中の問題について読みましたが、この場合、DataReceived イベント ハンドラーが定義されていません (==null)。
何か案が?
※一部内容を加筆修正しました※
数日間のデバッグとログ分析の後、次のことがわかりました。
- Win7Embedded Standard を実行しているデバイスで作業しています
- アプリケーションはC#で書かれています
- しばらくして(または、これまでのところ不明なことが原因である可能性があります)、Arduinoを接続しているポートが列挙されたポートのリストから消えました
- プログラムは最初にログに「デバイスが切断されました」と報告し、次に「ポートCOM9が存在しません」というメッセージを報告します
- デバイス マネージャーは、「ポート」ツリーで COM9 を報告します (!!)
- プログラムを終了して再実行すると、「COM9 が存在しません」と報告され、ポートを一覧表示しても COM9 は表示されません
私の推測では、usbser ドライバーがめちゃくちゃになっていると思います。
これまでの唯一の解決策は、ボードをリセットすることです。
再起動せずにドライバーをリセットし、既知の状態に戻るかどうかを確認する方法はありますか? それとも、ポートを検出しない DotNet Framework ですか?