CDC 通知元素通知
2025-07-11
0
0
1. Notification Element Notifications 用途
Notification Element Notifications 定义了通信接口类通知,设备使用这些通知来通知主机接口或端点事件。
这些通知通过中断端点发送,用于实时状态更新和事件报告。
2. Class-Specific Notification Codes(Table 68)
以下是翻译并以表格形式整理的内容:
bmRequestType | bNotification | wValue | wIndex | wLength | Data |
---|---|---|---|---|---|
10100001B | NETWORK_CONNECTION | 0 – 断开连接<br>1 – 已连接 | 接口号 | Zero | None |
10100001B | RESPONSE_AVAILABLE | Zero | 接口号 | Zero | None |
10100001B | AUX_JACK_HOOK_STATE | 0 – 挂机<br>1 – 摘机 | 接口号 | Zero | None |
10100001B | RING_DETECT | Zero | 接口号 | Zero | None |
10100001B | SERIAL_STATE | Zero | 接口号 | 2 | UART状态位图 |
10100001B | CALL_STATE_CHANGE | 呼叫索引和<br>呼叫状态变更值 | 接口号 | 数据长度 | 可变长度结构,包含呼叫状态变更的附加信息 |
10100001B | LINE_STATE_CHANGE | 状态值 | 接口号 | 数据长度 | 可变长度线路状态结构 |
10100001B | CONNECTION_SPEED_CHANGE | Zero | 接口号 | 8 | 连接速度变更数据结构 |
以下是 Notification Value(通知值) :
Notification(通知类型) | Value(值) | 备注 |
---|---|---|
NETWORK_CONNECTION(网络连接) | 00h | 0 – 断开连接<br>1 – 已连接 |
RESPONSE_AVAILABLE(响应可用) | 01h | |
RESERVED(保留,未来使用) | 02h-07h | |
AUX_JACK_HOOK_STATE(辅助插孔挂机状态) | 08h | 0 – 挂机<br>1 – 摘机 |
RING_DETECT(振铃检测) | 09h | |
RESERVED(保留,未来使用) | 0Ah-1Fh | |
SERIAL_STATE(串口状态) | 20h | UART 状态位图 |
RESERVED(保留,未来使用) | 21h-27h | |
CALL_STATE_CHANGE(呼叫状态变更) | 28h | 包含呼叫索引和状态变更值 |
LINE_STATE_CHANGE(线路状态变更) | 29h | 可变长度线路状态结构 |
CONNECTION_SPEED_CHANGE(连接速度变更) | 2Ah | 8 字节连接速度数据结构 |
RESERVED(保留,未来使用) | 2Bh-FFh |
3. 典型设备端通知示例
C 结构体示例:
// 网络连接通知
uint8_t network_notification[] = {
0xA1, // bmRequestType
0x00, // bNotification (NETWORK_CONNECTION)
0x01, 0x00, // wValue (Connected)
0x01, 0x00, // wIndex (Interface 1)
0x00, 0x00 // wLength (No data)
};
// 串口状态通知
uint8_t serial_notification[] = {
0xA1, // bmRequestType
0x20, // bNotification (SERIAL_STATE)
0x00, 0x00, // wValue
0x01, 0x00, // wIndex (Interface 1)
0x02, 0x00, // wLength (2 bytes)
0x01, 0x00 // Data (UART State bitmap)
};
4. 主机端处理要点
- 通过中断端点接收通知。
- 解析通知代码和值。
- 根据通知类型处理相应的状态变化。
- 某些通知可能包含附加数据需要解析。
5. 常见应用场景
场景 | 通知代码 | 说明 |
---|---|---|
网络连接 | 0x00 | 检测网络连接状态变化 |
振铃检测 | 0x09 | 检测来电振铃 |
串口状态 | 0x20 | 监控串口状态变化 |
通话状态 | 0x28 | 监控通话状态变化 |