首页 > 解决方案 > 在 Visual C++ Win 10 中查找蓝牙 RSSI 值

问题描述

我对这些东西做了很多研究,但无法得到明确的答案。我找到了蓝牙设备的名称以及 NAP 和 SAP 地址,WSALookupServiceNext(...) 但无法访问 RSSI 值。是否有特定的功能或其他东西可以用来查找 RSSI 值?

PS:BthReadRSSI函数需要在互联网上找不到的额外库。

https://docs.microsoft.com/en-us/previous-versions/windows/embedded/ee495452(v=winembedded.80)#requirements

while (WSALookupServiceNext(hLookup, LUP_RETURN_NAME | LUP_RETURN_ADDR, &dwSize, pwsaResults) == 0)
{
    btAddr = ((SOCKADDR_BTH *)pwsaResults->lpcsaBuffer->RemoteAddr.lpSockaddr)->btAddr;

    // Verify the returned name

    bHaveName = (pwsaResults->lpszServiceInstanceName) && *(pwsaResults->lpszServiceInstanceName);
}

标签: c++visual-studiobluetoothwindows-10rssi

解决方案


要在 Win 10 上获取 RSSI 值,您必须使用 WinRT API。此外,您的设备必须以某种方式连接。

使用WinRT转红RSSI的原生C++代码太长,这里就不放了。

简单的方法是使用第三方库。例如蓝牙框架。或者,如果您想通过 Skype (mike.petrichenko) 与我联系。我不能保证我会给你现成的解决方案,但我可以引导你走向正确的方向,这样你就可以获得自己的代码。


推荐阅读