我已经在Windows机器上编程了一个D-Link GSM调制解调器来发送和接收短信,为了测试,我使用了Hyperterminal。
在Windows中,连接管理器启动COMx端口,调制解调器使用一个未列出的COMx端口,我可以通过它发送短信,并通过列出的NMEA端口接收传入的短信,调用如+ CMTI:“ME”,11或RING + CLIP:XXXXXXXXXXXX
我成功地解释了这条消息并根据我在windows中的要求对其进行了编程。在linux(Fedora)中尝试相同时,我看到调制解调器初始化/ dev / ttyUSB0和/ dev / ttyUSB1作为两个新识别的设备。我使用minicom来设置设备端口并将AT命令传递给它们。
在两个设备(/ dev / ttyUSB0和/ dev / ttyUSB1)中,每当我期待新的短信时,我都没有收到未经请求的AT结果代码,如+ CMTI指示。仅供参考我根据手册和其他几种组合设置了CNMI设置。
一件奇怪的事情是,当我打电话时我能看到RING而不是+ CLIP:< callerinfo >。同样地,我没有得到++ PSBEARER:XX,Y或+ CMTI:“ME”,XX
唯一的解决方案是定期轮询UNREAD消息,这通常是一个糟糕的设计。请告诉我,如果我在配置方面做错了什么,我应该改变一些除此之外的东西吗?
答案 0 :(得分:1)
RING
是唯一可以假设的UR代码,它总是没有任何特定的配置(只是因为这是一个古老的遗物,只是它的行为......)。对于所有其他UR代码,您必须明确启用它们中的每一个,例如AT+CLIP=1
等,否则将无法启用。并且启用那些是每个串行接口,例如,在/ dev / ttyUSB0上运行AT+CLIP=1
不会在/ dev / ttyUSB1上打印+CPLIP: ...
。
因此,当你在Windows上获得连接管理器时,它必须是因为它包含在其中的init字符串。 Minicom我认为默认没有初始化字符串,或者可能只是一个非常经典的字符串,如ATS0=0 E1Q0V1
。