USB CDC
+ -

CDC LineStateChange通知

2025-07-11 本文链接为:http://www.usbzh.com/article/detail-1545.html ,欢迎转载,转载请附上本文链接。

LineStateChange通知用途

LineStateChange 通知标识对应于发送通知消息的接口或联合主接口的线路状态发生了变化。
当线路状态发生变化时,设备会发送此通知告知主机,某些线路状态变化可能提供额外信息,这些信息会在附加的线路状态数据结构中提供。


通知格式

字段 值/说明
bmRequestType 0xA1 (10100001B) 方向:设备到主机,类型:类,接收者:接口
bNotification 0x29 (LINE_STATE_CHANGE)
wValue 线路状态变化值(见下表)
wIndex 接口号
wLength 数据长度
Data 变长线路状态结构体

Line State Change Values(Table 71)

线路状态变化值 描述
0x0000 线路变为空闲
0x0001 线路连接到保持位置
0x0002 钩挂开关摘机
0x0003 钩挂开关挂机

典型设备端通知示例

C 结构体示例:

// 线路摘机通知
uint8_t line_off_hook_notification[] = {
    0xA1,           // bmRequestType (设备到主机,类,接口)
    0x29,           // bNotification (LINE_STATE_CHANGE)
    0x02, 0x00,     // wValue (Hook-switch off hook)
    0x01, 0x00,     // wIndex (Interface 1)
    0x00, 0x00      // wLength (No additional data)
};

// 线路挂机通知
uint8_t line_on_hook_notification[] = {
    0xA1,           // bmRequestType
    0x29,           // bNotification (LINE_STATE_CHANGE)
    0x03, 0x00,     // wValue (Hook-switch on hook)
    0x01, 0x00,     // wIndex (Interface 1)
    0x00, 0x00      // wLength (No additional data)
};

主机端处理要点

  • 通过中断端点接收通知。
  • 解析wValue中的线路状态变化值。
  • 根据状态变化处理相应的事件:
    • 0x0000:线路空闲
    • 0x0001:线路保持
    • 0x0002:摘机
    • 0x0003:挂机
  • 如果有附加数据,解析线路状态结构体。

常见应用场景

场景 状态值 说明
线路空闲 0x0000 线路未使用
线路保持 0x0001 线路处于保持状态
摘机 0x0002 检测到摘机操作
挂机 0x0003 检测到挂机操作

参考

本文链接为:http://www.usbzh.com/article/detail-1545.html ,欢迎转载,转载请附上本文链接。

0 篇笔记 写笔记

CDC LineStateChange通知
LineStateChange通知用途LineStateChange 通知标识对应于发送通知消息的接口或联合主接口的线路状态发生了变化。当线路状态发生变化时,设备会发送此通知告知主机,某些线路状态变化可能提供额外信息,这些信息会在附加的线路状态数据结构中提供。通知格式字段值/说明......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!