CDC GetOperationParms
2025-07-11
0
0
1. GetOperationParms 请求用途
GetOperationParms 用于获取设备的当前操作模式。
主机通过此请求查询设备当前的工作模式,返回的操作模式值描述了设备的当前操作状态,如Table 53中指定的模式。
2. USB 控制传输格式
字段 | 值/说明 |
---|---|
bmRequestType | 0xA1 (10100001B) 方向:设备到主机,类型:类,接收者:接口 |
bRequest | 0x33 (GET_OPERATION_PARMS) |
wValue | 0x0000 |
wIndex | 接口号 |
wLength | 2 |
Data | 操作模式(2字节,格式同Table 53) |
3. 返回的操作模式值
操作模式 | 返回值 | 描述 |
---|---|---|
Simple Mode | 0 | 通信设备以独立方式运行,不向主机发送状态信息,仅接受SetOperationMode命令。设备能够独立操作。 |
Standalone Mode | 1 | 通信设备以独立方式运行,但向主机发送完整状态信息,并接受主机的任何命令。 |
Host Centric Mode | 2 | 通信设备完全由计算机控制,没有主机控制不会执行任何通信功能。 |
4. 典型主机端请求示例
C 结构体示例:
uint16_t operation_mode;
USB_SETUP_PACKET setup = {
.bmRequestType = 0xA1, // 设备到主机,类,接口
.bRequest = 0x33, // GET_OPERATION_PARMS
.wValue = 0x0000,
.wIndex = interface_number, // 通信接口号
.wLength = 2 // 2字节操作模式数据
};
// 发送setup包,读取operation_mode数据
5. 设备端处理要点
- 返回当前配置的2字节操作模式值。
- 确保返回的数据与当前设备状态一致。
- 如果设备不支持某些模式,返回默认值或最近设置的值。
6. 常见返回示例
配置类型 | 返回值 | 说明 |
---|---|---|
独立模式 | 0x0000 | Simple Mode |
监控模式 | 0x0001 | Standalone Mode |
受控模式 | 0x0002 | Host Centric Mode |
7. 参考
- USB CDC PSTN 子类规范 6.3.16](https://www.usb.org/document-library/class-definitions-communication-devices-12)
- SetOperationParms 6.3.15](https://www.usb.org/document-library/class-definitions-communication-devices-12)