Java通过串口控制GSM模块实现短信电话功能

需积分: 50 43 下载量 127 浏览量 更新于2024-09-14 1 收藏 28KB TXT 举报
"Java通过串口控制GSM模块进行短信发送、电话拨打以及删除等操作的代码实现" 在Java编程中,可以利用Java通信API(javax.comm)来控制GSM模块执行各种功能,如发送短信、拨打电话等。这个程序的核心是通过串口与GSM模块建立通信连接,从而发送指令并接收响应。 首先,我们需要导入必要的库,如`javax.comm`包中的类,这些类用于处理串口通信。在提供的代码中,可以看到导入了`CommPortIdentifier`、`SerialPort`、`SerialPortEventListener`等关键类,它们分别用于识别可用的串口、创建串口实例和监听串口事件。 在`SMSOwnSender`类中,实现了`SerialPortEventListener`接口,意味着它能够监听串口事件,如数据接收。`SMSOwnSender`类还继承自`JFrame`,表明这是一个图形用户界面(GUI)应用,包含了按钮、文本框等组件,用于用户交互。 在代码中,`totalPanel`、`jScrollPane`、`jTextArea`等变量定义了GUI的布局和组件。例如,`totalPanel`是主面板,`jTextArea`用于显示串口接收到的信息,`jTextField`用于输入手机号码或短信内容。 核心功能的实现通常包含以下步骤: 1. **初始化串口**:使用`CommPortIdentifier`获取可用的串口,并根据指定的波特率、数据位、停止位、校验位创建`SerialPort`实例。 2. **打开串口**:调用`SerialPort`的`open()`方法打开串口,并设置输入输出流。 3. **设置串口参数**:例如,设置波特率、数据位、停止位和校验位。 4. **添加事件监听器**:实现`SerialPortEventListener`接口,注册监听器以处理串口数据的接收。 5. **发送命令**:通过串口的`OutputStream`发送控制GSM模块的AT命令,如发送短信的`AT+CMGF`、`AT+CMGS`命令,拨打电话的`ATD`命令等。 6. **接收响应**:在`serialEvent(SerialPortEvent)`方法中处理接收到的数据,可能包括模块的确认信息、短信发送状态报告等。 7. **关闭串口**:在不再需要串口通信时,记得调用`SerialPort`的`close()`方法关闭串口。 为了实现上述功能,代码中定义了多个按钮的动作监听器,如发送短信的按钮、拨打电话的按钮等。当用户触发这些按钮时,对应的`ActionListener`会执行相应的串口通信操作。 请注意,由于javax.comm库在Java 1.6之后被弃用,现代项目可能会使用替代库,如RXTX或Apache RIO。此外,由于硬件和GSM模块的差异,实际的AT命令和响应处理可能需要根据具体的模块文档进行调整。 这个Java程序展示了如何通过串口控制GSM模块进行基本的通讯功能,为开发基于GSM模块的物联网应用提供了一个基础框架。在实际应用中,还需要考虑错误处理、网络连接稳定性、安全性等因素。
2010-01-28 上传
课程说明 1 课程介绍 1 课程目标 1 相关资料 1 第1章 七号信令系统概述 2 1.1 七号信令的概念和特点 2 1.1.1 基本术语 2 1.1.2 信令传送方式 3 1.2 七号信令系统的功能级结构 4 1.2.1 功能级结构原理 4 1.2.2 七号信令系统的功能级结构 4 1.3 GSM系统中的接口和协议 6 第2章 消息传递部分(MTP) 8 2.1 MTP功能级结构 8 2.1.1 信令数据链路级 8 2.1.2 信令链路功能级 8 2.1.3 信令网功能级 9 2.2 MTP信令消息格式 11 第3章 信令连接控制部分(SCCP) 14 3.1 SCCP概述 14 3.1.1 为什么需要SCCP 14 3.1.2 SCCP的应用特点 14 3.2 SCCP业务功能 15 3.2.1 无连接业务 15 3.2.2 面向连接业务 16 3.3 SCCP消息格式 17 3.3.1 SCCP消息结构 17 3.3.2 SCCP消息类型 18 3.3.3 SCCP消息参数 19 第4章 基站子系统应用部分(BSSAP) 23 4.1 BSSAP整体结构 23 4.2 BSSAP的分配功能 24 4.3 直接转移应用部分DTAP 24 4.4 BSS移动应用部分BSSMAP 25 4.5 BSSAP消息举例 25 4.5.1 BSSMAP消息举例 25 4.5.2 DTAP消息举例 26 第5章 A接口消息详解 27 5.1 概述 27 5.2 连接建立消息 28 5.2.1 位置更新消息( Location updating Request ) 28 5.2.2 CM业务请求消息( CM Service Request ) 31 5.2.3 连接确认消息(Connect Confirm ) 32 5.3 正常有连接消息 33 5.3.1 鉴权请求消息(AUTHENTICATION REQUEST ) 33 5.3.2 鉴权响应消息(AUTHENTICATION RESPONSE ) 35 5.3.3 加密命令消息(CIPHER MODE COMMAND ) 35 5.3.4 加密结束消息(CIPHER MODE COMPLETE ) 36 5.3.5 位置更新接收消息(LOCATION UPDATING ACCEPT ) 37 5.3.6 CM业务接收消息(CM SERVICE ACCEPT ) 38 5.3.7 SETUP消息(SETUP ) 38 5.3.8 呼叫进行消息( CALL PROCEEDING ) 39 5.3.9 指配请求消息(ASSIGNMENT REQUEST ) 40 5.3.10 指配结束消息(ASSIGNMENT COMPLETE ) 41 5.3.11 振铃消息(ALERTING ) 42 5.3.12 通话建立消息(CONNECT ) 43 5.3.13 连接确认消息(CONNECT ACKNOWLEDGE ) 43 5.3.14 挂机消息(DISCONNECT) 44 5.3.15 释放消息(RELEASE) 45 5.3.16 释放结束消息(RELEASE COMPLETE ) 45 5.3.17 清除命令( CLEAR COMMANG ) 46 5.3.18 清除结束(CLEAR COMPLETE) 47 5.4 无连接消息 47 5.4.1 复位电路(RESET CIRCUIT) 47 5.4.2 阻塞电路(BLOCK CIRCUIT) 49 5.4.3 解闭电路 ( UNBLOCK CIRCUIT ) 50 5.4.4 复位消息( RESET ) 51 5.4.5 未安装电路(unequipped circuit) 51 第6章 A-bis接口信令分析 53 6.1 A-bis接口主叫阶段信令分析 53 6.2 A-bis接口被叫阶段信令分析 54 6.3 A-bis接口拆线阶段信令分析 55 附录一 DTAP消息 58 附录二 BSSMAP消息 60