CDC SetAuxLineState
2025-07-10
0
0
1. SetAuxLineState 请求用途
SetAuxLineState 用于控制设备的辅助电话接口(Auxiliary Jack),将其连接或断开到POTS(普通电话交换系统)电路或编解码器(CODEC)。
主机通过此请求通知设备:
- wValue = 0:断开辅助接口
- wValue = 1:连接辅助接口
设备根据钩挂(hook)状态,完成物理连接/断开,并向主机确认状态变化。
2. USB 控制传输格式
字段 | 值/说明 |
---|---|
bmRequestType | 0x21 (00100001B) 方向:主机到设备,类型:类,接收者:接口 |
bRequest | 0x10 (SET_AUX_LINE_STATE) |
wValue | 0 = 断开,1 = 连接 |
wIndex | 接口号 |
wLength | 0 |
Data | 无 |
3. 典型主机端请求示例
C 结构体示例:
USB_SETUP_PACKET setup = {
.bmRequestType = 0x21, // 主机到设备,类,接口
.bRequest = 0x10, // SET_AUX_LINE_STATE
.wValue = 0x0001, // 1: 连接, 0: 断开
.wIndex = interface_number, // 通信接口号
.wLength = 0 // 无数据阶段
};
// 发送setup包,无data阶段
4. 设备端处理要点
- 检查 wValue(0/1),执行连接或断开操作。
- 依据钩挂状态(hook state)决定具体行为。
- 完成后通过状态阶段(Status Stage)ACK主机。
5. 参考
如需设备端处理代码、主机端调用示例、或钩挂状态管理细节,请继续提问!