`
徜徉の小溪
  • 浏览: 443207 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

rxtx串口通信实现smslib短信接口

阅读更多

短信 猫开发模块使用了rxtx smslib 这两种开源代码

 

Rxtx是用于comm端口调用

Smslib是在rxtx的基础上,调用短信_猫,使用AT指令来进行短信的发送接收等操作。

 

注意:

每次系统重启或者插拔短信_猫后,都要设置拥有者

chown dgsun /dev/ttyUSB0   (root 权限运行,dgsun是用户)

 

设置完后,使用minicom 看看该用户是否有权限使用该端口

 

1,配置RXTX

配置主要配置两个文件

一个是 Windowsdll文件<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:79.5pt; height:36.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image001.wmz" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->  linux下的.so  <!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" style='width:90.75pt;height:36.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image003.wmz" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

另一个是 <!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75" style='width:68.25pt;height:36.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image005.wmz" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

1.1 windows

rxtx-2.2pre2-bins\win32目录下的 rxtxSerial.dll

rxtxSerial.dll复制到 JAVA_HOME\bin目录下

RXTXcomm.jar复制到 JAVA_HOME\jre\lib\ext目录下

 

如果使用myeclipse开发则需要修改myeclipse使用的jdk

Myeclipse自带一个jdk,要改为JAVA_HOME下的jdk

<!--[if gte vml 1]><v:shape id="_x0000_i1028" type="#_x0000_t75" style='width:234pt;height:180.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image007.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

 

1.2 linux

由于使用的是centos 64位系统,所以

复制rxtx-2.2pre2-bins\x86_64-unknown-linux-gnu目录下的librxtxSerial.so

librxtxSerial.so复制到 JAVA_HOME/jre/lib/amd64

RXTXcomm.jar复制到 JAVA_HOME/jre/lib/ext目录下

 

这个目录有可能各不相同

http://blog.csdn.net/iamfafa/article/details/6340057

如果找不到librxtxSerial.so则会报错

java.lang.UnsatisfiedLinkError: no XXX in java.library.path

 

这个时候可以写一段代码来查看java.library.path的位置

System.out.println( System.getProperty("java.library.path"));

在打印出的位置中加入librxtxSerial.so即可

 

2 配置SMSLIB

smslib目录下的jar包加入到项目中

<!--[if gte vml 1]><v:shape id="_x0000_i1029" type="#_x0000_t75" style='width:117.75pt;height:69.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

3 发送短信

接下来就是在代码中使用smslib调用短信 猫发送短信

代码可见src目录下 SmsMain.java sms.properties

sms.properties配置了短信 猫的参数。 windows下和在linux下是不同的,

我测试的时候windows下使用的是com5端口,这个可以再设备管理器中查看到;

linux下使用的是 /dev/ttyUSB0,这个我是使用minicom一个一个在/dev/下找的

<!--[if gte vml 1]><v:shape id="_x0000_i1030" type="#_x0000_t75" style='width:189pt;height:132.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image011.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

 

<!--[if gte vml 1]><v:shape id="_x0000_i1031" type="#_x0000_t75" style='width:304.5pt;height:141.75pt'> <v:imagedata src="file:///C:\Users\chenmj\AppData\Local\Temp\msohtmlclip1\01\clip_image013.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

很奇怪,我使用的是wavecom模块的短信 猫,在插入移动卡的时候,manufacutrer设置了wavecom ,发送短信一切正常。当我换了一张联通的gsm卡的时候,就无法发短信了,只有不填,调用默认驱动才可以发短信。所以该处都默认为不填。

 

需要发短信的时候只要调用 SmsMainsendSms方法

static boolean sendSms(String mobile, String content)

 

 

4 附录

Minicom使用

首先 minicom –s minicom 进行配置,相关配置可以再网上查找介绍

主要是修改 Serial port setup, 修改完后save setup as dfl进行保存。

Exit 后,如果配置短信 猫正确的话,就可以进入到 指令行了

输入AT,回车,页面打印OK

如果ATD133*******; 就可以对该电话号码进行拨号。 注意结尾的分号不可少。

 

 

 

分享到:
评论

相关推荐

    Java 利用RXTX串口工具使用短信猫

    网上很多资料都是使用的smslib的jar包来发送短信,但是这种方式只支持32的jdk,而我的系统使用的是linux的64位环境,所以最后采用了用RXTX串口通讯工具直接向短信猫发送AT指令的方式实现。 1. smslib.jar收发短信 ...

    java开源包1

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包3

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java开源包4

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java开源包11

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包2

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包6

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包5

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包10

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包8

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包7

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包9

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包101

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    Java资源包01

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

Global site tag (gtag.js) - Google Analytics