jindi java sms for linux V3.1(JJSL) 安装说明
==============================================
jindi java sms for linux(JJSL)主要用于在linux操作系统上通过java程序控制Wavecom M1306B GSM/GPRS Modem短信设备的发送和接收。
目前主要支持wavecom全系列产品。开发测试环境为Wavecom M1306B(原装)。
JJSL最大的优点就是跨平台,更换平台只需要更换底层驱动和jindisms-3.1-RC1.jar文件,无需修改您的应用软件。为您节约大量开发及维护成本。
其次,JJSL将所有设备底层操作打包为jindisms-3.1-RC1.jar文件,应用层与底层分离,方便您利用不同的开发平台部署。
一、安装:
以root权限登录linux操作系统,在任何一个目录下展开jindiJavaSms-linux-3.1.tar.gz
# tar xvzf jindiJavaSms-linux-3.1.tar.gz
# cd jindiJavaSms-linux
设置PATH
#export PATH=/path/to/jindiJavaSms-linux/jdk/bin:$PATH
设置语言环境变量
#export LANG=zh_CN.GBK
#export LANGUAGE=zh_CN.GBK
#export LC_ALL=zh_CN.GBK
这样安装就完成了,您可以直接跳到步骤二。
JJSL所用的JDK为1.4.2版本,默认是使用自带的JDK1.4.2版本。只需要设置好PATH变量和语言环境变量即可使用。如果您使用其它版本或者其
它路径下的JDK,请按照如下步骤依次设置:
(1)
将/root/jindiJavaSms-linux/jdk/jre/lib/javax.comm.properties 文件拷贝到其它版本jdk对应目录:
javax.comm.properties的文件内容如下:
#
# Drivers loaded by the Java Communications API standard extension
# at initialization time
#
# Format:
# Each line must contain ONE driver definition only
# Each line must be of the form:
# driver=<ClassName>
# No spaces or tabs in the line.
# ClassName must implement the interface javax.comm.CommDriver
# example: driver=Win32Serial
#
#
# The hash(#) character indicates comment till end of line.
#
# Windows Serial Driver
#Driver=com.sun.comm.Win32Driver
Driver=gnu.io.RXTXCommDriver
(2)将/root/jindiJavaSms-linux/jdk/jre/lib/i386/librxtxSerial.so 拷贝到其它版本JDK对应目录。
(3)将/root/jindiJavaSms-linux/jdk/jre/lib/ext目录下面的jar文件拷贝到其它版本JDK对应目录:
-rw-r--r-- 1 root root 28043 04-23 16:13 comm.jar
-rw-r--r-- 1 root root 180792 04-23 16:13 commons-net-1.4.1.jar
-rw-r--r-- 1 root root 8896 04-23 16:13 dnsns.jar
-rw-r--r-- 1 root root 108326 04-23 16:13 jindisms-3.1-RC1.jar
-rw-r--r-- 1 root root 53248 04-23 16:13 ldapsec.jar
-rw-r--r-- 1 root root 769342 04-23 16:13 localedata.jar
-rw-r--r-- 1 root root 391834 04-23 16:13 log4j-1.2.15.jar
-rw-r--r-- 1 root root 59464 04-23 16:13 RXTXcomm.jar
-r--r--r-- 1 root root 111430 04-23 16:13 sunjce_provider.jar
二、运行
运行端口测试程序:CommTest
该程序会自动用不同的波特率依次连接检测到的串口设备,收到设备信息后会显示在屏幕上。
[root@T23 jindiJavaSms-linux]# java CommTest
Experimental: JNI_OnLoad called.
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
金笛短信设备端口连接测试...
找到串口: /dev/ttyS0
Trying at 9600... 没有发现设备!
Trying at 19200... 没有发现设备!
Trying at 57600... 没有发现设备!
Trying at 115200... 获取设备信息... 发现设备: MULTIBAND 900E 1800
[root@T23 jindiJavaSms-linux]#
运行短信发送程序:SendMessage
[root@T23 jindiJavaSms-linux]# java SendMessage
示例: 通过金笛串口短信猫发送短信.
JindiSMS v3.1 for Java.
JAVA短信开发包,用JAVA控制金笛短信猫收发短信。
网址: http://www.sendsms.cn
版本: 3.1.0-RC1
Experimental: JNI_OnLoad called.
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
GSM Modem信息:
厂家: WAVECOM MODEM
型号: MULTIBAND 900E 1800
序列号: 354056002653131
SIM IMSI: * MASKED *
信号强度: 83%
电池容量: 0%
===============================================================================
<< 发送短信 >>
-------------------------------------------------------------------------------
设备Id: jindi
编码: UCS2 (Unicode)
开始发送时间: Wed Apr 23 17:33:20 CST 2008
短信内容: 您好!欢迎使用金笛JAVA短信开发包。www.sendsms.cn
SMSC Ref No: 12
接收人: 13601019694
发送完成时间: Wed Apr 23 17:33:26 CST 2008
短信状态: SENT
有效时间 (Hours): -1
状态报告: false
Source / Destination Ports: -1 / -1
Flash SMS: false
===============================================================================
进入等待状态... - 按回车键退出.
运行短信读取程序:ReadMessages
[root@T23 jindiJavaSms-linux]# java ReadMessages
示例: 从串口短信设备读取短信.
JindiSMS v3.1 for Java.
JAVA短信开发包,用JAVA控制金笛短信猫收发短信。
网址: http://www.sendsms.cn
版本: 3.1.0-RC1
Experimental: JNI_OnLoad called.
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
GSM Modem 信息:
厂家: WAVECOM MODEM
型号: MULTIBAND 900E 1800
序列号: 354056002653131
SIM IMSI: * MASKED *
信号强度: 83%
电池容量: 0%
进入等待状态... - 按 <enter>回车键退出.
>>> 监测到设备收到新的短信: jindi : SM @ 1
===============================================================================
<< 接收到的短信 >>
-------------------------------------------------------------------------------
设备Id: jindi
编码: UCS2 (Unicode)
日期: Thu Apr 24 09:40:07 CST 2008
短信内容:
--------
您好!欢迎使用金笛JAVA短信开发包。www.sendsms.cn
发送者: +8613601019694
短信编号: 1
Multi-part Memory Index:
存储位置: SM
===============================================================================
三、常见问题:
1、RXTX fhs_lock() Error: creating lock file: /var/lock/LCK..ttyS0: File exists
产生原因:有多个进程同时使用串口,端口被占用。
解决办法:# rm /var/lock/LCK..ttyS0
2、找不到硬件设备。
产生原因(1):设备没有连接好。
解决办法:请仔细检测设备的数据线、电源、天线、SIM是否插入,观察设备指示灯是否处于闪烁状态。并通过minicom 通过AT指令测试,
确保硬件一切正常。
产生原因(2):您使用的是USB口的wavecom。在某些linux操作系统上还不支持USB-RS232的转换驱动。
解决办法:将硬件设备更换为Wavecom原装M1306B,质量稳定可靠。
产生原因(3):RXTX驱动默认只搜索以ttyS开始的设备,不搜索以ttyUSB开始的设备。
解决办法:建议将ttyUSB0 软链接到 ttyS0
3、发送失败。
产生原因(1):设备名不对。
解决办法:请修改 SendMessage.java ,ReadMessage.java 将/dev/ttyS0 改为对应设备名,并重新编译。
SerialModemGateway gateway = new SerialModemGateway("jindi", "/dev/ttyS0", 115200, "wavecom", "M1306B", srv.getLogger());
产生原因(2):波特率不对。
解决办法:请修改 SendMessage.java ,ReadMessage.java ,把115200改为实际波特率, 并重新编译。
SerialModemGateway gateway = new SerialModemGateway("jindi", "/dev/ttyS0", 115200, "wavecom", "M1306B", srv.getLogger());
产生原因(3):设备信号强度不够。请注意这个信息:
GSM Modem 信息:
厂家: WAVECOM MODEM
型号: MULTIBAND 900E 1800
序列号: 354056002653131
SIM IMSI: * MASKED *
信号强度: 83%
电池容量: 0%
如果信号强度在70%以下,请调整天线的方向、设备位置朝向。
4、发送有时候成功、有时候失败。
建议采购我公司代理的 wavecom M1306B 原装工业级产品,从硬件可靠性方面提供充足的保证,减少开发时的硬件困扰。
四、联系:
北京春笛网络信息技术服务有限公司
短信事业部:www.sendsms.cn
电话:010-82355864,82358387,82356956,82356576,82356577,82356575