蓝牙 - 设备类型设置: Class of Device

蓝牙设备在搜索和连接时会显示与其类型匹配的图标,这基于设备的COD(ClassofDevice)信息。COD包含主要服务类、主要设备类、次要设备类以及固定值,用于识别设备类型如键盘、手柄等。在蓝牙产品开发中,通过设置COD可定制显示图标。对于BLE设备,使用的是Appearance信息。文章还详细列举了各类设备类型的COD编码。

在电脑或手机上,搜寻和连接蓝牙设备时,不同的蓝牙设备显示的图标是不同的,比如搜到或连接上的设备是一个蓝牙键盘,显示的就会是键盘图标,如果搜索到的设备是一个手柄,显示的就是一个手柄图标。

显示的图标是根据搜到或连接上的设备类型信息而显示的,这个信息就是COD(class of device)信息。这个信息是在Discovery过程中搜索周围的蓝牙设备时,搜索方从被搜到的设备那里得到的。然后依据COD来判断设备类型,决定显示什么样的图标。

在进行蓝牙产品开发时,通过设置这个信息,就可以显示跟你的产品相匹配的图标。注意这个COD信息主要使用在BR/EDR经典蓝牙上。对于BLE,一般使用的的是广播数据中有两个字节的appearance,而不是三个字节的COD信息。

具体的Class of Device信息介绍如下。

COD信息由四部分组成:

- A Major Service Classes bitfield // 主要服务类型

- A Major Device Class enumerated value // 主要设备类型

- The Minor Device Classes // 次要设备类型

- A fixed value of 0b00 in the two least significant bits // 固定的最低两位bit的值为0

主要设备类型不同,次要设备类型值的含义也不同。

COD信息的结构定义如下:

Major Service Classes

Last Modified: 2022-05-25

Bit 

Class of Device Major Service Class

13

Limited Discoverable Mode

14

LE audio

15

Reserved for future use

16

Positioning (Location identification)

17

Networking (LAN, Ad hoc, ...)

18

Rendering (Printing, Speakers, ...)

19

Capturing (Scanner, Microphone, ...)

20

Object Transfer (vInbox, vFolder, ...)

21

Audio (Speaker, Microphone, Headset service, ...)

22

Telephony (Cordless telephony, Modem, Headset service, ...)

23

Information (WEBserver, WAPserver, ...)

这个是每个位表示一种类型。

Major Device Classes

12

11

10

9

8

Major Device Class

0

0

0

0

0

Miscellaneous

0

0

0

0

1

Computer (desktop, notebook, PDA, organizer, ...)

0

0

0

1

0

Phone (cellular, cordless, pay phone, modem, ...)

0

0

0

1

1

LAN/Network Access point

0

0

1

0

0

Audio/Video (headset, speaker, stereo, video display, VCR, ...)

0

0

1

0

1

Peripheral (mouse, joystick, keyboard, ...)

0

0

1

1

0

Imaging (printer, scanner, camera, display, ...)

0

0

1

1

1

Wearable

0

1

0

0

0

Toy

0

1

0

0

1

Health

1

1

1

1

1

Uncategorized: device code not specified

Minor Device Class field – Computer Major Class

如果主要设备类型是电脑,次要设备类型信息如下:

7

6

5

4

3

2

Minor Device Class

0

0

0

0

0

0

Uncategorized, code for device not assigned

0

0

0

0

0

1

Desktop workstation

0

0

0

0

1

0

Serverclass computer

0

0

0

0

1

1

Laptop

0

0

0

1

0

0

Handheld PC/PDA (clamshell)

0

0

0

1

0

1

Palmsize PC/PDA

09-22 10:52:27.698 1000 1732 1736 E subsystem_ramdump: devcore_dump: devcoredump device added devcd1 09-22 10:52:27.699 1000 1732 15379 I subsystem_ramdump: in file_path1: /sys/class/devcoredump/devcd1/failing_device/device/of_node/name. 09-22 10:52:27.699 1000 1732 15379 I subsystem_ramdump: in file_path2: /sys/class/devcoredump/devcd1/failing_device/of_node/name. 09-22 10:52:27.699 1000 1732 15379 I subsystem_ramdump: in file_path3: /sys/class/devcoredump/devcd1/failing_device. 09-22 10:52:27.700 1000 1732 15379 E subsystem_ramdump: found device name in /sys/class/devcoredump/devcd1/failing_device 09-22 10:52:27.700 1000 1732 15379 I subsystem_ramdump: open /sys/class/devcoredump/devcd1/data with fd: 5 09-22 10:52:27.704 1000 1732 15379 I subsystem_ramdump: dev_name = icnss_wcss_msa0 09-22 10:52:27.704 1000 1732 15379 E subsystem_ramdump: icnss_wcss_msa0 09-22 10:52:27.705 1000 1732 15379 E subsystem_ramdump: write successful for close_ramdump for devcd1 /sys/class/devcoredump/devcd1/failing_device/of_node/name 09-22 10:52:27.705 1000 1732 15379 E subsystem_ramdump: write successful for close_ramdump for devcd1 09-22 10:52:27.742 1000 1732 1736 E subsystem_ramdump: devcore_dump: devcoredump device added devcd2 09-22 10:52:27.742 1000 1732 15380 I subsystem_ramdump: in file_path1: /sys/class/devcoredump/devcd2/failing_device/device/of_node/name. 09-22 10:52:27.742 1000 1732 15380 I subsystem_ramdump: in file_path2: /sys/class/devcoredump/devcd2/failing_device/of_node/name. 09-22 10:52:27.742 1000 1732 15380 I subsystem_ramdump: in file_path3: /sys/class/devcoredump/devcd2/failing_device. 09-22 10:52:27.743 1000 1732 15380 E subsystem_ramdump: found device name in /sys/class/devcoredump/devcd2/failing_device 09-22 10:52:27.743 1000 1732 15380 I subsystem_ramdump: open /sys/class/devcoredump/devcd2/data with fd: 5 09-22 10:52:27.743 1000 1732 15380 I subsystem_ramdump: dev_name = remoteproc-wpss-md 09-22 10:52:27.751 1000 1732 15380 E subsystem_ramdump: Directory /data/vendor/bsplog/wlan/ssr_dump/2025-09-22-10:52:27 does not exist, ret:-1, error:2 09-22 10:52:27.751 1000 1732 15380 I subsystem_ramdump: Attemping to create /data/vendor/bsplog/wlan/ssr_dump/2025-09-22-10:52:27 09-22 10:52:27.751 1000 1732 15380 I subsystem_ramdump: folder_path: /data/vendor/bsplog/wlan/ssr_dump/2025-09-22-10:52:27. 09-22 10:52:27.751 1000 1732 15380 I subsystem_ramdump: file_path2: /data/vendor/bsplog/wlan/ssr_dump/2025-09-22-10:52:27/ramdump_wpss_2025-09-22_10-52-27. 09-22 10:52:27.751 1000 1732 15380 I subsystem_ramdump: dump_name_buf: ramdump_wpss. 09-22 10:52:27.751 1000 1732 15380 I subsystem_ramdump: data_fd: 5
最新发布
09-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值