java开发GSM MODEM No response from device.
分享
win10 64bit +jdk64bit+myecplise+RXTX
利用USB转串口线连接好GSM MODEM之后,在厂商提供的超级终端中利用AT命令测试成功,可以发送短息,但是在代码中却出错了,发短信的代码如下图:报错如下:
org.smslib.TimeoutException: No response from device.
at org.smslib.modem.AModemDriver$CharQueue.get(AModemDriver.java:535)
at org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:338)
at org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:313)
at org.smslib.modem.athandler.ATHandler.getSimStatus(ATHandler.java:145)
at org.smslib.modem.AModemDriver.connect(AModemDriver.java:132)
at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:189)
at org.smslib.Service$1Starter.run(Service.java:277)
然后百度了测试串口连接设备的代码,结果显示没有找到设备,
Searching for devices...
Found port: COM3
Trying at 9600... no device found
Trying at 14400... no device found
Trying at 19200... no device found
Trying at 28800... no device found
Trying at 33600... no device found
Trying at 38400... no device found
Trying at 56000... no device found
Trying at 57600... no device found
Trying at 115200... no device found
Test complete.
可以我明明已经连接上短信猫了,而且AT命令也测试成功了,不明白,请各位大佬赐教,急啊!
短信设备二次开发
2022-04-08
3
0
利用USB转串口线连接好GSM MODEM之后,在厂商提供的超级终端中利用AT命令测试成功,可以发送短息,但是在代码中却出错了,发短信的代码如下图:报错如下:
org.smslib.TimeoutException: No response from device.
at org.smslib.modem.AModemDriver$CharQueue.get(AModemDriver.java:535)
at org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:338)
at org.smslib.modem.AModemDriver.getResponse(AModemDriver.java:313)
at org.smslib.modem.athandler.ATHandler.getSimStatus(ATHandler.java:145)
at org.smslib.modem.AModemDriver.connect(AModemDriver.java:132)
at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:189)
at org.smslib.Service$1Starter.run(Service.java:277)
然后百度了测试串口连接设备的代码,结果显示没有找到设备,
Searching for devices...
Found port: COM3
Trying at 9600... no device found
Trying at 14400... no device found
Trying at 19200... no device found
Trying at 28800... no device found
Trying at 33600... no device found
Trying at 38400... no device found
Trying at 56000... no device found
Trying at 57600... no device found
Trying at 115200... no device found
Test complete.
可以我明明已经连接上短信猫了,而且AT命令也测试成功了,不明白,请各位大佬赐教,急啊!
回帖 ( 3 )
smslib没有封装这个品牌及型号完全匹配的指令集,但你可以用标准指令进行发送和接收短信,一般模块的发送和接收指令及初始化指令大同小异通用的。
从你的ATI指令有对应值返回,证明你已经清楚你设备的端口号和波特率没错无了
SerialModemGateway gateway = new SerialModemGateway("随意字符没特殊要求中文都可以","COM4",115200,"",null);这样试试
刚你也联系我们客服了,客服那边也跟你说了
No response from device.,
错误提示是端口不正确,这个原因有很多的
1、端口配置数据的确错了导致
2、串口被其他程序占用了
3、某个指令你的猫返回的值不符合程序导致捕获超时返回
4、其他
可以排除1,2导致的,剩下3问题。估计是这个错指令at+cpos=0导致你的设备超时报错,可以在源码里面找到这个类ATHander.java注释掉他这个指令的不运行后重新封装调用来解决,或者是这个AT+CPIN?这个指令可能性不大如果是这个的话证明你的设备不支持你的卡,这个指令有前置因素才能成立的。
最后一个需要排除的是你的猫是否要启用轮循模式?
方式1)、在jvm中,添加-Dsmslib.serial.polling启动参数
方式2)、在JAVA代码中,在调用startService之前,显示启用轮循模式
Service.getInstance().S.SERIAL_POLLING = true; //启用轮循模式
要启用轮循的猫如果没启用,那么程序只能给串口输出而无法获取串口的输入数据导致,超时错误,第一个指令都没返回那当然程序就会说No response from device。设备不存在了都不能通讯
最后确认下你的设备是否支持标准的AT指令发送短信。配置官网官已经是不设置品牌指令了,默认标准还是不行那就是设备不支持标准的需要用原厂家的自己修改或者写一个了,这个smslib不支持你的猫的模块指令,所以跑不通
ATI
Manufacturer: ZTEWelink
Model: ME3630
Revision: ME3630C1CV1.0B06
IMEI: 861164036720524
把品牌改为ZTEWelink,还是报No response from device.,
您说的实例化通道是什么意思?第一次用到短信猫,网上的资料也有限,小白一个,
SerialModemGateway gateway = new SerialModemGateway("modem.com1","COM4",115200,"wavecom","");
这句代码的第一个参数是网关ID,从哪里获得?第二个是串口名称,第三个是波特率,第四个是品牌,
第一个参数不知道填什么.求教啊
产品波特率确定是9600吗?波特率不对无法AT也会返回无设备错误
SIMPIN卡如果没有的话建议你也注释他了,不要。
中心号码可填不填也注释了试试。
然后ervice.getInstance().S.SERIAL_POLLING=TRUE;轮询注释掉试试,