CDC GetLineParms
2025-07-11
0
0
1. GetLineParms 请求用途
GetLineParms 用于报告线路状态,对应发送命令的接口或联合主接口。
主机通过此请求获取特定线路的详细状态信息,包括振铃配置、线路状态、通话状态等。
2. USB 控制传输格式
字段 |
值/说明 |
bmRequestType |
0xA1 (10100001B) 方向:设备到主机,类型:类,接收者:接口 |
bRequest |
0x35 (GET_LINE_PARMS) |
wValue |
0x0000 |
wIndex |
接口号 |
wLength |
Line Status Information Structure 的大小 |
Data |
Line Status Information Structure(见下表) |
偏移量 |
字段名 |
大小 |
值/说明 |
0 |
wLength |
2 |
结构体大小(字节) |
2 |
dwRingerBitmap |
4 |
该线路的振铃配置位图(格式同Table 52) |
6 |
dwLineState |
4 |
定义线路当前状态(格式同Table 56) |
10 |
dwCallState0 |
4 |
定义线路第一个通话的状态(格式同Table 57) |
… |
… |
… |
… |
6+N*4 |
dwCallStateN-1 |
4 |
定义线路第N个通话的状态 |
4. Line State Bitmap(Table 56)
位 |
名称/说明 |
D31 |
活动标志<br>0:线路上无活动<br>1:线路活动(非空闲) |
D30..D8 |
RESERVED(复位为0) |
D7..D0 |
该线路上活动通话的索引<br>如果线路上无通话,等于255 |
5. Call State Bitmap(Table 57)
位 |
名称/说明 |
D31 |
活动标志<br>0:无活动通话<br>1:通话活动(非空闲) |
D30..D16 |
RESERVED(复位为0) |
D15..D8 |
通话状态改变值(见Table 70) |
D7..D0 |
通话状态值(见Table 58) |
6. Call State Value Definitions(Table 58)
通话状态值 |
描述 |
0x00 |
通话空闲 |
0x01 |
典型拨号音 |
0x02 |
中断拨号音 |
0x03 |
拨号进行中 |
0x04 |
回铃音。通话状态附加数据D15..D8包含额外信息(见Table 70) |
0x05 |
已连接。通话状态附加数据D15..D8包含额外信息(见Table 70) |
0x06 |
来电。通话状态附加数据D15..D8包含额外信息(见Table 70) |
7. 典型主机端请求示例
C 结构体示例:
typedef struct _LINE_STATUS_INFO {
uint16_t wLength;
uint32_t dwRingerBitmap;
uint32_t dwLineState;
uint32_t dwCallState0;
// 更多通话状态...
} LINE_STATUS_INFO;
LINE_STATUS_INFO line_status;
USB_SETUP_PACKET setup = {
.bmRequestType = 0xA1, // 设备到主机,类,接口
.bRequest = 0x35, // GET_LINE_PARMS
.wValue = 0x0000,
.wIndex = interface_number, // 通信接口号
.wLength = sizeof(LINE_STATUS_INFO)
};
// 发送setup包,读取line_status数据
8. 设备端处理要点
- 返回当前线路状态的完整信息结构。
- 确保返回的数据与当前硬件状态一致。
- 根据实际通话数量调整结构体大小。
9. 参考
随手分享,手有余香