您无法通过外部手段检测到这一点.通常的做法是为特定的调制解调器制造商和型号设置udev规则.或者您可以按顺序连接到每个tty并通过AT命令验证它是什么类型的端口.
对于udev规则,您可以遵循以下过程:
1)检测调制解调器vid和pid
2)基于vid / pid在/ dev / serial / by-id中创建符号链接
例如,具有vid = 1199和pid 683c的Sierra Wireless MC8795V调制解调器.我知道端口3始终是AT命令通道.因此,您可以在末尾创建一个使用-AT后固定的符号链接.
在通过AT命令检测的情况下,最好和更常见的方法是执行AT命令以查看tty是否响应.如果您的调制解调器配置为不回显,则应该回显或回复.
例如:
AT
AT
OK
如果您收到回复,则表示您找到了AT控制端口或PPP端口.要检查这一点,只需执行ATI命令即可.如果响应包含APP1,APP2,APP3,则您点击PPP端口.否则你找到了你的AT控制端口.
例如AT控制端口:
ATI
Manufacturer: Sierra Wireless,Incorporated
Model: MC8795V
Revision: K2_0_7_46AP C:/WS/FW/K2_0_7_46AP/MSM6290/SRC 2010/10/27 22:15:30
IMEI: XXXXXXXXXXXXXXX
IMEI SV: 20
FSN: D9A2160146410
3GPP Release 6
+GCAP: +CGSM,+DS,+ES
OK
例如PPP端口:
ATI
Sierra Wireless,Incorporated
MC8795V
APP1
OK
但是有一个警告的话.在Sierra Wireless模块的情况下,他们清楚地显示哪个端口是哪个.对于其他制造商,您需要检查USB接口指南,看看是否可以通过ATI采用这种方法.