1. 程式人生 > >SMSLIB+RXTX 簡訊貓開發模組

SMSLIB+RXTX 簡訊貓開發模組

幾天的工作成果,winxp上早早就測好了,在linux 上花了不少時間。

一開始使用redhat4 64位系統,一直調不出來。後來換了centos_6_x86_64後,順利好多。

另外由於java comm v3對linux64位機器上不好用,花了不少時間。後改為rxtx,就好了。

切記,不要把java comm 的包扔到JAVA_HOME的目錄下,

因為smslib 是先查詢java comm 的包,如果不存在再去找rxtx的包,具體可以去看smslib原始碼

java comm包會影響專案的成功執行

已上傳所有的jar包和文件 以及呼叫程式碼.

簡訊貓開發模組使用了rxtx和 smslib 這兩種開原始碼

Rxtx是用於comm埠呼叫

Smslib是在rxtx的基礎上,呼叫簡訊貓,使用AT指令來進行簡訊的傳送接收等操作。

注意:

每次系統重啟或者插拔簡訊貓後,都要設定擁有者

chown dgsun /dev/ttyUSB0  (root 許可權執行,dgsun是使用者)

設定完後,使用minicom看看該使用者是否有許可權使用該埠

另外第一次使用時候要將dgsun使用者加入到 uucp組和lock組

vi /etc/group

1,配置RXTX

配置主要配置兩個檔案

一個是 Windows的dll檔案  linux下的.so 

另一個是RXTXcomm.jar

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

1.2 linux

由於使用的是centos64位系統,所以

複製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目錄下

JAVA_HOME/jre/lib/amd64

這個目錄有可能各不相同

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

如果找不到librxtxSerial.so則會報錯

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

這個時候可以寫一段程式碼來檢視java.library.path的位置

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

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

2 配置SMSLIB

將smslib目錄下的jar包加入到專案中

3 傳送簡訊

接下來就是在程式碼中使用smslib呼叫簡訊貓傳送簡訊

程式碼可見src目錄下 SmsMain.java 和 sms.properties

sms.properties配置了簡訊貓的引數。 在windows下和在linux下是不同的,

我測試的時候windows下使用的是com5埠,這個可以再裝置管理器中檢視到;

在linux下使用的是/dev/ttyUSB0,這個我是使用minicom一個一個在/dev/下找的

很奇怪,我使用的是wavecom模組的簡訊貓,在插入移動卡的時候,manufacutrer設定了wavecom ,傳送簡訊一切正常。當我換了一張聯通的gsm卡的時候,就無法發簡訊了,只有不填,呼叫預設驅動才可以發簡訊。所以該處都預設為不填。

需要發簡訊的時候只要呼叫 SmsMain的sendSms方法

static boolean sendSms(String mobile,String content)

4 附錄

Minicom使用

首先 minicom –s 對minicom 進行配置,相關配置可以再網上查詢介紹

主要是修改 Serialport setup, 修改完後save setupas dfl進行儲存。

Exit 後,如果配置簡訊貓正確的話,就可以進入到指令行了

輸入AT,回車,頁面列印OK

如果ATD133*******;就可以對該電話號碼進行撥號。 注意結尾的分號不可少。