查看: 3114|回复: 3

java开发短信猫

[复制链接]
发表于 2017-12-14 16:49:19 | 显示全部楼层 |阅读模式
win10 64bit +jdk64bit+myecplise+RXTX
利用USB转串口线连接好短信猫之后,在厂商提供的超级终端中利用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命令也测试成功了,不明白,请各位大佬赐教,急啊!



捕获12.PNG
发表于 2017-12-19 19:35:23 | 显示全部楼层
先确认你的是什么猫是华为的猫吗?实例化通道哪里,把Huawei改成你的猫的品牌
产品波特率确定是9600吗?波特率不对无法AT也会返回无设备错误
SIMPIN卡如果没有的话建议你也注释他了,不要。
中心号码可填不填也注释了试试。
然后ervice.getInstance().S.SERIAL_POLLING=TRUE;轮询注释掉试试,
 楼主| 发表于 2017-12-26 16:33:13 | 显示全部楼层
admin 发表于 2017-12-19 19:35
先确认你的是什么猫是华为的猫吗?实例化通道哪里,把Huawei改成你的猫的品牌
产品波特率确定是9600吗?波 ...

您好,我用AT命令查询了一下
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,从哪里获得?第二个是串口名称,第三个是波特率,第四个是品牌,
第一个参数不知道填什么.求教啊
发表于 2017-12-26 18:23:02 | 显示全部楼层
zhaoliang0723 发表于 2017-12-26 08:33
您好,我用AT命令查询了一下
ATI
Manufacturer: ZTEWelink

首先你的是中兴物联模块组做的设备
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。设备不存在了都不能通讯
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|未来时代科技 ( 粤ICP备12044031号-1

GMT+8, 2019-12-15 12:36 , Processed in 0.214422 second(s), 29 queries .

Powered by WLSD X3.1

© 2013-2014 WLSD Inc.

快速回复 返回顶部 返回列表
 
【电话】(15118131494)
【QQ】 未来时代科技01 售前咨询
【QQ】 未来时代科技02 售后技术
【旺旺】 请问有什么可以帮到您?不在线可留言.
【邮箱】
inextera@sina.com
【地址】 (深圳市龙岗坂田扬马小区)