关于c#:蓝牙信号强度

关于c#:蓝牙信号强度

Bluetooth Signal Strength

有谁知道如何在C#中更好地跟踪蓝牙连接的信号强度?

我当时在考虑使用WMI查询,但无法追踪封装连接的WMI类。

我的想法是,当我将手机放在口袋里离开机器时,蓝牙信号减弱,机器锁定,我不会被打扰。


蓝牙设备中运行的链接管理器协议(LMP)负责链接的设置和配置。这全部由两个交换协议数据单元(PDU)的设备完成。RSSI的硬件和软件功能在LMP级别上提供,使您可以管理RSSI数据。它使您可以读取RSSI电平并控制TX RF输出功率(LMP功率命令)LMP以进行控制并获取状态信息。

因此,使用MS Bluetooth堆栈时,您真正要寻找的是在LMP中定义的。
MS Bluetooth Stack HCI接口已经支持以下功能,即

HCI_READHCIPARAMETERS
HCI_START硬件
HCI_STOPHARDWARE
HCI_SETCALLBACK
HCI_OPENCONNECTION
HCI_READPACKET
HCI_WRITEPACKET
HCI_CLOSECONNECTION

我想微软可以实现一个叫做HCI_Read_RSSI的函数,但是他们没有实现。

要获取RSSI数据,您将必须使用LMP来获取所需的信息。

示例psuedocode读取RSSI数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Read HCI Parameters

#include <windows.h>
#include <windev.h>
#include <bt_buffer.h>
#include <bt_hcip.h>
#include <bt_os.h>
#include <bt_debug.h>
#include <svsutil.hxx>
#include <bt_tdbg.h>

unsigned short hci_subversion, lmp_subversion, manufacturer;
unsigned char hci_version, lmp_version, lmp_features[8];

if (BthReadLocalVersion (&hci_version, &hci_subversion, &lmp_version, &lmp_subversion, &manufacturer, lmp_features) != ERROR_SUCCESS) {
            SetUnloadedState ();
            return 0;
      }
WCHAR szLine[MAX_PATH]
unsigned char *pf = lmp_features;

if ((*pf) & 0x02) {
wsprintf (szLine, L"   RSSI");
}

这仅适用于Microsoft蓝牙堆栈。这也是C ++代码。我是从页面底部的专家交流站(我知道)获得的。
http://www.experts-exchange.com/Programming/Wireless_Programming/Bluetooth/Q_21267430.html

没有适合您的特定功能。

还有一个可以帮助您的库,虽然我没有完全浏览过文档,但是听说过一些不错的东西。
http://inthehand.com/content/32feet.aspx

祝你好运!


推荐阅读

    查询linux内存命令?

    查询linux内存命令?,系统,情况,信息,工具,电脑,状态,命令,内存,发行,总量,查

    linux连接命令怎么用?

    linux连接命令怎么用?,工作,地址,系统,网络,工具,信息,服务,命令,标准,名字,L

    linux命令下载链接?

    linux命令下载链接?,软件,名称,系统,工具,网络,官网,代理,命令,平台,位置,lin

    linux查询ip命令?

    linux查询ip命令?,地址,网络,信息,设备,系统,电脑,终端,命令,中心,技术指标,l

    linux系统软链接命令?

    linux系统软链接命令?,位置,系统,链接,文件,服务,地址,标准,交通,异常,软件,

    linux查询所有命令?

    linux查询所有命令?,工作,地址,系统,命令,信息,目录,工具,基础,文件,内容,lin

    linux命令api封装?

    linux命令api封装?,地址,软件,标准,系统,入口,设备,服务,工作,通信,环境,liun

    远程命令连接linux?

    远程命令连接linux?,系统,密码,名称,图片,网络,软件,百度,地址,服务,电脑,Lin

    linux日志命令查询?

    linux日志命令查询?,系统,名称,信息,实时,电脑,对比,最新,日志,命令,环境,Lin

    linux文本查询命令?

    linux文本查询命令?,标准,命令,文件,工具,数据,信息,位置,系统,内容,文本,Lin

    linux创建硬链接命令?

    linux创建硬链接命令?,数据,系统,链接,地方,信息,文件,概念,时间,位置,工作,L

    命令查询linux包安装?

    命令查询linux包安装?,软件,地方,地址,名字,系统,名称,信息,路径,命令,文件,

    连接linux桌面命令?

    连接linux桌面命令?,系统,软件,工作,密码,电脑,信息,工具,网站,地址,名称,lin

    linux访问连接命令?

    linux访问连接命令?,系统,地址,网络,密码,服务,软件,位置,对外,处分,命令,怎

    查询linux的命令历史?

    查询linux的命令历史?,信息,系统,名称,地址,服务,命令,数据,环境,指令,用户,

    linux命令行拨号连接?

    linux命令行拨号连接?,系统,网络,软件,手机,服务,密码,地址,名称,电话号码,

    linux文件链接命令?

    linux文件链接命令?,系统,工作,地址,命令,网络,信息,工具,基础,管理,目录,lin

    linux线程查询命令?

    linux线程查询命令?,系统,第一,线程,命令,软件,名称,信息,进程,选项,方法,Lin

    linux命令左右查询?

    linux命令左右查询?,系统,信息,管理,地址,工作,命令,文件,单位,位置,数据,lin

    linux命令查看连接数?

    linux命令查看连接数?,数字,对比,网络,系统,数据,地址,状态,通讯,信息,命令,l