Bluetooth 蓝牙管理API:读取控制器信息命令,蓝牙版本,可读
BlueZ bluetooth Management API的读取控制器信息命令返回的bluetooth_版本映射到哪个人类可读版本号 例如,我的控制器返回0x08。这是蓝牙4.1、5.2、1.1还是 我找不到此文件的任何信息。在谷歌上搜索“蓝牙版本二进制到字符串”也没有发现任何有用的东西。而且,没有为“0x08”或“蓝牙版本”显示任何内容。在那个里搜索版本是毫无意义的,因为每个页眉都包含那个单词 新见解 btmon似乎知道 @管理事件:命令组件。。(0x0001)plen 283{0x0003}[hci0] 11:04:18.712443 读取控制器信息(0x0004)plen 280Bluetooth 蓝牙管理API:读取控制器信息命令,蓝牙版本,可读,bluetooth,bluetooth-lowenergy,bluez,Bluetooth,Bluetooth Lowenergy,Bluez,BlueZ bluetooth Management API的读取控制器信息命令返回的bluetooth_版本映射到哪个人类可读版本号 例如,我的控制器返回0x08。这是蓝牙4.1、5.2、1.1还是 我找不到此文件的任何信息。在谷歌上搜索“蓝牙版本二进制到字符串”也没有发现任何有用的东西。而且,没有为“0x08”或“蓝牙版本”显示任何内容。在那个里搜索版本是毫无意义的,因为每个页眉都包含那个单词 新见解 btmon似乎知道 @管理事件:命令组件。。(0x0001)plen 283{0x0003
我不知道蓝牙版本映射是否有文档记录,在哪里有文档记录 但是,这种映射可以在bluez
lib/hci.c
源文件中找到:
/* Version mapping */
static hci_map ver_map[] = {
{ "1.0b", 0x00 },
{ "1.1", 0x01 },
{ "1.2", 0x02 },
{ "2.0", 0x03 },
{ "2.1", 0x04 },
{ "3.0", 0x05 },
{ "4.0", 0x06 },
{ "4.1", 0x07 },
{ "4.2", 0x08 },
{ "5.0", 0x09 },
{ "5.1", 0x0a },
{ NULL }
};
我还在
监视器/packet.c
中找到了一个映射:
void packet_print_version(const char *label, uint8_t version,
const char *sublabel, uint16_t subversion)
{
const char *str;
switch (version) {
case 0x00:
str = "Bluetooth 1.0b";
break;
case 0x01:
str = "Bluetooth 1.1";
break;
case 0x02:
str = "Bluetooth 1.2";
break;
case 0x03:
str = "Bluetooth 2.0";
break;
case 0x04:
str = "Bluetooth 2.1";
break;
case 0x05:
str = "Bluetooth 3.0";
break;
case 0x06:
str = "Bluetooth 4.0";
break;
case 0x07:
str = "Bluetooth 4.1";
break;
case 0x08:
str = "Bluetooth 4.2";
break;
case 0x09:
str = "Bluetooth 5.0";
break;
case 0x0a:
str = "Bluetooth 5.1";
break;
default:
str = "Reserved";
break;
}
if (sublabel)
print_field("%s: %s (0x%2.2x) - %s %d (0x%4.4x)",
label, str, version,
sublabel, subversion, subversion);
else
print_field("%s: %s (0x%2.2x)", label, str, version);
}
void packet_print_version(const char *label, uint8_t version,
const char *sublabel, uint16_t subversion)
{
const char *str;
switch (version) {
case 0x00:
str = "Bluetooth 1.0b";
break;
case 0x01:
str = "Bluetooth 1.1";
break;
case 0x02:
str = "Bluetooth 1.2";
break;
case 0x03:
str = "Bluetooth 2.0";
break;
case 0x04:
str = "Bluetooth 2.1";
break;
case 0x05:
str = "Bluetooth 3.0";
break;
case 0x06:
str = "Bluetooth 4.0";
break;
case 0x07:
str = "Bluetooth 4.1";
break;
case 0x08:
str = "Bluetooth 4.2";
break;
case 0x09:
str = "Bluetooth 5.0";
break;
case 0x0a:
str = "Bluetooth 5.1";
break;
default:
str = "Reserved";
break;
}
if (sublabel)
print_field("%s: %s (0x%2.2x) - %s %d (0x%4.4x)",
label, str, version,
sublabel, subversion, subversion);
else
print_field("%s: %s (0x%2.2x)", label, str, version);
}