CDC GetEthernetPowerManagementPatternFilter
2025-07-11
0
0
1. GetEthernetPowerManagementPatternFilter 请求用途
GetEthernetPowerManagementPatternFilter 用于从设备获取指定以太网电源管理模式过滤器的状态。
主机通过此请求查询特定过滤器的活动状态,如果设备为指定过滤器设置了活动模式,返回TRUE(0x0001);如果返回FALSE(0x0000),表示要么尚未为指定过滤器设置模式,要么主机软件之前设置此过滤器的尝试不成功(即无法装入)。
2. USB 控制传输格式
字段 | 值/说明 |
---|---|
bmRequestType | 0xA1 (10100001B) 方向:设备到主机,类型:类,接收者:接口 |
bRequest | 0x42 (GET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER) |
wValue | 过滤器编号 |
wIndex | 接口号 |
wLength | 2 |
Data | 模式活动布尔值(2字节) |
3. 典型主机端请求示例
C 结构体示例:
uint16_t pattern_active;
USB_SETUP_PACKET setup = {
.bmRequestType = 0xA1, // 设备到主机,类,接口
.bRequest = 0x42, // GET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER
.wValue = 0x0000, // 过滤器编号0
.wIndex = interface_number, // 通信接口号
.wLength = 2 // 2字节状态数据
};
// 发送setup包,读取pattern_active数据
4. 设备端处理要点
- 解析wValue中的过滤器编号。
- 检查指定过滤器的活动状态。
- 返回2字节的模式活动布尔值:
- 0x0001:TRUE(过滤器活动)
- 0x0000:FALSE(过滤器不活动或设置失败)
- 完成后通过状态阶段(Status Stage)ACK主机。
5. 常见应用场景
场景 | 过滤器编号 | 返回值 | 说明 |
---|---|---|---|
检查过滤器状态 | 0 | 0x0001 | 过滤器0活动 |
检查过滤器状态 | 1 | 0x0000 | 过滤器1不活动或设置失败 |
验证设置成功 | 0 | 0x0001 | 确认过滤器设置成功 |
6. 参考
- USB CDC 以太网子类规范 6.4.4](https://www.usb.org/document-library/class-definitions-communication-devices-12)
- SetEthernetPowerManagementPatternFilter 6.4.3](https://www.usb.org/document-library/class-definitions-communication-devices-12)