CDC 电话铃声功能描述符
2025-07-10
0
0
电话铃声功能描述符(Telephone Ringer Functional Descriptor)用于描述设备支持的铃声音量调节级数和铃声模式数量,主机可据此实现对电话设备铃声的控制和管理。
该描述符用于描述通信类接口(SubClass为电话控制,Telephone Control)所支持的铃声能力。它只能出现在接口描述符的类特定部分。
对于多线路电话设备,每条线路通常有独立的通信类接口,通常通过联合功能描述符(Union Functional Descriptor)指定一个接口为主控接口。如果所有线路共用一个铃声,只需在主控接口的描述符中包含电话铃声功能描述符。
偏移 | 字段名 | 大小 | 值/类型 | 描述 |
---|---|---|---|---|
0 | bFunctionLength | 1 | 数值 | 此功能描述符的字节数 |
1 | bDescriptorType | 1 | 常量 | CS_INTERFACE 描述符类型 |
2 | bDescriptorSubtype | 1 | 常量 | 电话铃声功能描述符子类型 |
3 | bRingerVolSteps | 1 | 数值 | 铃声支持的音量离散步数:<br>0: 256级音量<br>1: 1级(固定音量)<br>2: 2级音量<br>3: 3级音量<br>音量范围按步数均分,0为静音,最大值255。 |
4 | bNumRingerPatterns | 1 | 数值 | 支持的铃声模式数量,1~255,0为保留 |
示例(C结构体及二进制示例)
C结构体定义
typedef struct _USB_CDC_TELEPHONE_RINGER_DESCRIPTOR {
uint8_t bFunctionLength; // 描述符长度
uint8_t bDescriptorType; // CS_INTERFACE (0x24)
uint8_t bDescriptorSubtype; // Telephone Ringer subtype (0x04)
uint8_t bRingerVolSteps; // 铃声音量步数
uint8_t bNumRingerPatterns; // 铃声模式数量
} USB_CDC_TELEPHONE_RINGER_DESCRIPTOR;
示例数据(假设支持3级音量、2种铃声模式)
字节序号 | 值(十六进制) | 含义 |
---|---|---|
0 | 0x05 | bFunctionLength = 5 |
1 | 0x24 | bDescriptorType = CS_INTERFACE |
2 | 0x04 | bDescriptorSubtype = Telephone Ringer |
3 | 0x03 | bRingerVolSteps = 3 |
4 | 0x02 | bNumRingerPatterns = 2 |
二进制示例:
05 24 04 03 02
说明
- bFunctionLength:通常为5(字节)
- bDescriptorType:固定为0x24(CS_INTERFACE)
- bDescriptorSubtype:电话铃声功能描述符为0x04
- bRingerVolSteps:音量步数,0=256级,1=1级,2=2级,3=3级
- bNumRingerPatterns:铃声模式数量,1~255