首先你的是中兴物联模块组做的设备
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。设备不存在了都不能通讯 |