問題タブ [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.

0 投票する
0 に答える
83 参照

c# - Arduino との接続を閉じると C# がハングする

いくつかの簡単なコマンドを Arduino に送信する C# プログラムを作成しています。USBシリアル仮想ポート経由。

コードが try/catch ブロックで保護されていても、プログラムがハングすることがあります。

問題を見たとき、問題はポートを閉じることにあるようです。

関数は非常に単純です。

Close 関数中の問題について読みましたが、この場合、DataReceived イベント ハンドラーが定義されていません (==null)。

何か案が?

※一部内容を加筆修正しました※

数日間のデバッグとログ分析の後、次のことがわかりました。

  • Win7Embedded Standard を実行しているデバイスで作業しています
  • アプリケーションはC#で書かれています
  • しばらくして(または、これまでのところ不明なことが原因である可能性があります)、Arduinoを接続しているポートが列挙されたポートのリストから消えました
  • プログラムは最初にログに「デバイスが切断されました」と報告し、次に「ポートCOM9が存在しません」というメッセージを報告します
  • デバイス マネージャーは、「ポート」ツリーで COM9 を報告します (!!)
  • プログラムを終了して再実行すると、「COM9 が存在しません」と報告され、ポートを一覧表示しても COM9 は表示されません

私の推測では、usbser ドライバーがめちゃくちゃになっていると思います。
これまでの唯一の解決策は、ボードをリセットすることです。
再起動せずにドライバーをリセットし、既知の状態に戻るかどうかを確認する方法はありますか? それとも、ポートを検出しない DotNet Framework ですか?