短信猫JAVA二次开发包SMSLib,org.smslib.TimeoutException: No response from device解决方案
2012-04-24 09:57
696 查看
最近在Linux环境下利用开源组件SMSLib,开发短信猫应用,经常遇到这个错误,发现网上也有很多朋友遇到过这个问题,现在将解决这个问题的方案分享给大家。
开发环境:
Linux ReadHat5.4 64位,内核:2.6.33.20 ,JDK1.6,SMSServer-3.5.2.jar
异常信息:
图1-1
解决方案:
遇到这个异常时,请检查以下二个方面:
1、是否启用轮循模式?
方式1)、在jvm中,添加-Dsmslib.serial.polling启动参数
方式2)、在JAVA代码中,在调用startService之前,显示启用轮循模式
2、创建串口网关对象时,是否设置了正确的短信猫设备生产厂商?
参数说明:
modem.com1:网关ID(即短信猫端口ID,多个短信猫时,用于标识是由哪个口发出的短信)
/dev/ttyUSB1:串口名称(USB转串口,短信猫中的所有端口自动被操作系统映射到/dev/目录下,以ttyUSB*开头的文件上,前提是系统预装有USB转串口的驱动),注:Linux下2.6.32以上内核已预装USB串口设备驱动,如果低版本的内核,未检测到USB设备,则需要自己安装驱动或升级内核。
9600:波特率,根据二次开发包中的CommTest.java测试程序,检测你的设备所支持的波特率。
Wavecom:生产厂商名称,必须设置正确,否则SMSLib在初始设备时,会报No response from Device异常,原因是SMSLib为不同的生产厂商,有相应的AT指定接口实现,见下图:
图1-2
在“图1-1“中,是因为我在创建串口网关对象是,指定了厂商名称为“HuaWei“,所以报了如图1-3所示异常:
图1-3
型号:可以不用指定,如果指定了型号,SMSLib在初始化设备的时候,会找特定型号的AT指令实现类,如果没找到有可能会出现初始化设备异常,但据我测试,如果没有找到指定厂商指定的型号的AT指令实现,会去指定厂商的通用实现接口
以上异常是基于SMSServer-3.5.2在Linux环境下开发所遇到的一些问题,和大家分享,Window上也会有相类似的问题,可参考上面的解决思路去寻找解决方案,另外短信猫二次开发包还有其它的厂商进行了底层AT指令的封装,比如:jindiJavaSms(金笛)开发包,用它时,我也遇到了类似的问题,解决方式也和上面差不多,只不过可能参数有些不同,在这里不做详细介绍,如有遇到同样问题的朋友,欢迎大家讨论!
开发环境:
Linux ReadHat5.4 64位,内核:2.6.33.20 ,JDK1.6,SMSServer-3.5.2.jar
异常信息:
图1-1
解决方案:
遇到这个异常时,请检查以下二个方面:
1、是否启用轮循模式?
方式1)、在jvm中,添加-Dsmslib.serial.polling启动参数
方式2)、在JAVA代码中,在调用startService之前,显示启用轮循模式
Service.getInstance().S.SERIAL_POLLING = true; //启用轮循模式
2、创建串口网关对象时,是否设置了正确的短信猫设备生产厂商?
SerialModemGateway gateway = new SerialModemGateway("modem.com1", "/dev/ttyUSB1", 9600, "Wavecom", "型号");
参数说明:
modem.com1:网关ID(即短信猫端口ID,多个短信猫时,用于标识是由哪个口发出的短信)
/dev/ttyUSB1:串口名称(USB转串口,短信猫中的所有端口自动被操作系统映射到/dev/目录下,以ttyUSB*开头的文件上,前提是系统预装有USB转串口的驱动),注:Linux下2.6.32以上内核已预装USB串口设备驱动,如果低版本的内核,未检测到USB设备,则需要自己安装驱动或升级内核。
9600:波特率,根据二次开发包中的CommTest.java测试程序,检测你的设备所支持的波特率。
Wavecom:生产厂商名称,必须设置正确,否则SMSLib在初始设备时,会报No response from Device异常,原因是SMSLib为不同的生产厂商,有相应的AT指定接口实现,见下图:
图1-2
在“图1-1“中,是因为我在创建串口网关对象是,指定了厂商名称为“HuaWei“,所以报了如图1-3所示异常:
图1-3
型号:可以不用指定,如果指定了型号,SMSLib在初始化设备的时候,会找特定型号的AT指令实现类,如果没找到有可能会出现初始化设备异常,但据我测试,如果没有找到指定厂商指定的型号的AT指令实现,会去指定厂商的通用实现接口
以上异常是基于SMSServer-3.5.2在Linux环境下开发所遇到的一些问题,和大家分享,Window上也会有相类似的问题,可参考上面的解决思路去寻找解决方案,另外短信猫二次开发包还有其它的厂商进行了底层AT指令的封装,比如:jindiJavaSms(金笛)开发包,用它时,我也遇到了类似的问题,解决方式也和上面差不多,只不过可能参数有些不同,在这里不做详细介绍,如有遇到同样问题的朋友,欢迎大家讨论!
相关文章推荐
- 短信猫JAVA二次开发包SMSLib,org.smslib.TimeoutException: No response from device解决方案
- 短信猫JAVA二次开发包SMSLib,org.smslib.TimeoutException: No response from device解决方案
- cas错误:org.jasig.cas.client.validation.TicketValidationException: No principal was found in the response from the CAS server.
- 关于短信org.smslib.GatewayException: Comm library exception: java.lang.reflect.InvocationTargetException
- org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted和java.util.NoSuchElementException: Timeout wa
- [置顶] spark2.2错误 java.lang.UnsupportedOperationException: No Encoder found for org.apache.spark.sql.Row解决
- java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException错误解决方案
- 短信猫不能关闭服务,端口占用,javax.comm.PortInUseException: Port currently owned by org.smslib等问题
- java.net.SocketTimeoutException: Read timed out 的解决办法 android平台 腾讯微博开发
- java.lang.IllegalArgumentException: No SqlMapClient specified 异常解决方案
- Ubuntu: org.apache.jasper.JasperException: java.lang.IllegalStateException: No output folder
- 升级Java开发工具遇到java.lang.ClassNotFoundException: org.apache.catalina.loader.DevLoader的解决
- 使用Ant运行JUnit测试用例时,报java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing的一种解决方案
- httpclient org.apache.http.NoHttpResponseException: host:端口 failed to respond 错误原因和解决方法
- Hadoop streaming: Exception in thread "main" java.io.IOException: No space left on device
- java.lang.NullPointerException: No FileItemFactory has been set 解决方案
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener错误解决方案
- No supported regular expression matcher found: java.lang.ClassNotFoundException: org.apache.tools.an
- java使用json抛出org.apache.commons.lang.exception.NestableRuntimeException解决方案
- java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException错误解决方案