2016-09-15 22 views
1

Windowsアプリケーションの開発に32feet.netライブラリを使用しています。デバイスをスキャンしてペアリングした後、COMポートを取得します。私はポートを開き、COMポートにデータを送信しようとすると、私は、二種類の例外を取得していますし、彼らはセマフォタイムアウトが 1168要素が見つかりません有効期限が切れているC#.NetのBluetooth COMポートの例外

エラーコード例外

121以下に示します。 。

また、下記のリンクに記載されている回避策を試しましたが、 http://zachsaw.blogspot.in/2010/07/serialport-ioexception-workaround-in-c.html でも効果がありません。 最後に、私の疑惑はBluetoothドライバの周りを回っています。

この例外に対するアプローチを見つける方法についての洞察

よろしく、 ギブソン

答えて

0

私は犯人はボーレートた https://electronics.stackexchange.com/questions/38113/does-bluetooth-range-increase-with-lower-baud-rate

、Bluetoothの操作のためのRN-42チップを使用し、下記のリンクからいくつかのことを学ん!!!! 私は9600の標準ボーレートを使用しようとしましたが、驚くべきことに、Bluetoothデバイスの状態がWindowsアプリケーションに接続されているにもかかわらず、COMポートが切断されていたのに対して、この状態では、「要素が見つかりません」や「セマフォのタイムアウト期間が切れました」などのデータ転送がほとんど行われずに例外がスローされました。製造元が提案したボーレートを変更する方が安定しているようです。回避策:WindowsアプリケーションとBluetoothデバイスで同じボーレートに調整します。

0

私はこれに似た問題を抱えていました。私の問題は.net 4.7.1で解決されました。また、私が使用していたブルートゥースデバイス用の最新のmicrosoft bluetoothドライバを持っていることを確認する必要がありました。

バックグラウンドスレッドで例外が発生した場合、SerialPortストリームはプロセスを終了しません。これは、使用中にUSBシリアルポートを取り外すときに発生する可能性があります。この新しい動作は、Switch.System.IO.Ports.DoNotCatchSerialStreamThreadExceptions AppContextスイッチによって制御されます。このスイッチは、.NET 4.7またはそれ以降を対象とする場合、デフォルトでtruetfに設定されます。 [428461、System.dllのは、バグ]

https://github.com/Microsoft/dotnet/blob/0745983093568027ff931672d9db021e3e120b5b/releases/net471/dotnet471-changes.md

更新:実際には1に2つの問題であるように思われます。 .netのバグと、デバイスがBluetoothモジュールで元に戻ってこなかったファームウェアの問題。