0

:얻기 BLE 광고 패킷 (10) 나는 현재, 따라서 내가 다음 코드를 사용하여 자바 스크립트를 사용하고, 윈도우 10에서 I는 범용 Windows 응용 프로그램을 개발하고</p> <p>블루투스 LE에서 광고 패킷을 얻기 위해 노력하고 있어요

// Create and initialize a new watcher instance. 
var watcher = new Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher(); 

watcher.signalStrengthFilter.inRangeThresholdInDBm = -126; 
watcher.signalStrengthFilter.outOfRangeThresholdInDBm = -126; 

watcher.signalStrengthFilter.outOfRangeTimeout = 60000; 

watcher.signalStrengthFilter.samplingInterval = 0; 
watcher.scanningMode = 1; 

watcher.addEventListener("received", onAdvertisementReceived, false); 

이들은 대부분의 BLE ADV 패킷을받는 나의 설정입니다.

필자의 시나리오에서는 WireShark를 사용하여 Linux 머신에서 확인할 수있는 매초마다 ADV 패킷을 전송하는 BLE 트랜스 폰더가 있습니다.

이상하게도 Windows 응용 프로그램에서 이러한 ADV 패킷을 모두 가져올 수 없습니다.

나는 15-20 개의 패킷을 얻게 될 것이고 다른 패킷을 얻기 전에 30-60s의 멈춤이있을 것이다.

모든 장치 (windows-machine, linux-machine 및 ble-transponder)는 반경 1m 이내에 있습니다. 그래서 나는 리눅스 머신과 같은 윈도우 머신에서 같은 패킷을 얻어야한다고 생각하지만 그렇지 않다. 왜 그런가요? 내 설정이 잘못되었거나 ADV 패킷을 가져 오는 더 좋은 방법이 있습니까?

미리 감사드립니다.

답변

1

내 대답은 BLE Scan Interval Windows 10입니다.

기본적으로 Windows는 BLE 컨트롤러에 18.125 ms를 스캔 한 다음 100 ms 동안 절전하도록 지시합니다. 그래서 모든 패킷을 얻지 못합니다.

+0

감사합니다. Emil. 이 번호의 출처가 있습니까? – svennergr

+0

http://desowin.org/usbpcap/을 사용하여 Bluetooth 컨트롤러로 전송되는 번호를 볼 수 있습니다. – Emil

+0

감사합니다. 다른 우편에 언급 된 귀하의 방법 이외의 우회를 알고 있습니까? – svennergr