CDC GetRingerParms
2025-07-11
0
0
1. GetRingerParms 请求用途
GetRingerParms 用于获取设备的振铃能力和当前状态,包括启用状态和当前选择。
主机通过此请求查询设备的振铃配置信息,通常发送到联合主接口。对于多线路设备,如果每线路振铃可独立配置,则发送到代表特定线路的接口可获取该线路的振铃信息。
2. USB 控制传输格式
字段 | 值/说明 |
---|---|
bmRequestType | 0xA1 (10100001B) 方向:设备到主机,类型:类,接收者:接口 |
bRequest | 0x31 (GET_RINGER_PARMS) |
wValue | 0x0000 |
wIndex | 接口号 |
wLength | 4 |
Data | Ringer Configuration bitmap(设备返回,4字节,格式同Table 52) |
3. 返回的Ringer Configuration Bitmap格式
位 | 名称/说明 |
---|---|
D31 | 振铃存在标志<br>0:振铃不存在<br>1:振铃存在 |
D30..D16 | RESERVED(复位为0) |
D15..D8 | 振铃音量设置<br>0:振铃音量关闭<br>255:最大振铃音量 |
D7..D0 | 振铃模式类型选择<br>对应设备内部支持的振铃模式或声音效果 |
4. 典型主机端请求示例
C 结构体示例:
uint32_t ringer_config;
USB_SETUP_PACKET setup = {
.bmRequestType = 0xA1, // 设备到主机,类,接口
.bRequest = 0x31, // GET_RINGER_PARMS
.wValue = 0x0000,
.wIndex = interface_number, // 通信接口号
.wLength = 4 // 4字节配置数据
};
// 发送setup包,读取ringer_config数据
5. 设备端处理要点
- 返回当前配置的4字节Ringer Configuration bitmap。
- 确保返回的数据与当前硬件设置一致。
- 如果设备不支持振铃,D31位应返回0。
6. 常见返回示例
配置类型 | 位图值 | D31 | 音量 | 模式 | 说明 |
---|---|---|---|---|---|
振铃关闭 | 0x00000000 | 0 | 0 | 0 | 振铃不存在 |
标准振铃 | 0x80FF0001 | 1 | 255 | 1 | 标准振铃模式 |
静音振铃 | 0x80000001 | 1 | 0 | 1 | 静音模式 |
自定义模式 | 0x80800002 | 1 | 128 | 2 | 中等音量,模式2 |
7. 参考
- USB CDC PSTN 子类规范 6.3.14](https://www.usb.org/document-library/class-definitions-communication-devices-12)
- SetRingerParms 6.3.13](https://www.usb.org/document-library/class-definitions-communication-devices-12)