APP下载

中等职业学校短信通的设计与实现

2014-01-13曾艺陈衍毅

软件工程 2014年1期
关键词:PC机上位短信

曾艺 陈衍毅

1 引言(Introduction)

中等职业学校相当于高中阶段的教育,与高等院校相比,学生年龄小,自我管理能力差,因此,学校为了与学生之间的交流更加紧密,利用好手机的短信收发功能,使之成为学校与学生之间沟通的纽带已成为学校思考的问题[1]。

本文针对此种情况,提出了一种基于TC35i模块的GPRS Modem与PC机相结合的解决方案。其核心是通过在数据库管理系统中提取学生信息,然后将短信内容与学生信息相结合,利用上位机的程序将其转换为AT指令发送到GPRS Modem,通过GPRS Modem发送到学生的手机上。

2 系统设计(System design)

2.1 系统框架设计

本文设计的中职学校短信通主要由三个模块组成。第一个模块式基于TC35i的GPRS Modem,该模块主要负责发送短信。第二个模块是PC机,负责从数据库中提取学生信息以及处理相关的业务逻辑并与通过串口通讯,将短信内容与学生的基本信息相接合,转换为AT指令传给GPRS Modem。第三个模块是数据库,用以保存学生的基本信息。系统框架设计如图1所示。

图1 系统框架图

Fig.1 System frame diagram

2.2 TC35i模块

TC35i新版西门子工业GSM模块是一个支持中文短信息的工业级GSM模块,工作在EGSM900和GSM1800双频段,电源范围为直流3.3~4.8V ,电流消耗休眠状态为3.5mA,空闲状态为25mA,发射状态为300mA(平均),2.5A峰值;可传输语音和数据信号,通过接口连接器和天线连接器分别连接SIM卡读卡器和天线。SIM电压为3V/1.8V,TC35i的数据接口(CMOS电平)通过AT命令可双向传输指令和数据,可选波特率为300b/s~115kb/s,自动波特率为1.2kb/s~115kb/s。它支持Text和PDU格式的SMS,可通过AT命令或关断信号实现重启和故障恢复。对于本系统中涉及的GPRS Modem,内部已经包含了TC35i模块,工作时只需将GSM的手机卡插入到GPRS Modem中并外接一个+5V的电源即可,与PC机之间采用USB口进行通讯[2]。

2.3 C#开发的上位机程序

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言,在继承C和C++强大功能的同时去掉了一些它们的复杂特性。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大限度地开发利用计算与通讯领域[3]。因此,本系统利用C#开发了基于桌面的短信发送软件。

上位机程序主要包括四个模块。SMSLib模块用于处理GPRS Modem和上位机的通讯以及短信编码和相关指令的逻辑处理。Model模块用于描述实体类,主要描述数据表与实体类之间的映射关系[4]。DAL模块是数据处理模块,实现了上位机与数据库之间进行数据交换的功能。BLL模块是业务逻辑处理模块,用于处理程序的业务逻辑,例如,提取数据并转换数据结构等。同时负责衔接以上三个模块。

2.4 SQL Server数据库

本系统采用SQL Server 2000数据库管理系统作为数据库的载体。SQL Server 2000是Microsoft公司推出的SQL Server数据库管理系统,该版本继承了SQL Server 7.0版本的优点,同时又增加了许多更先进的功能。具有使用方便,可伸缩性好与相关软件集成程度高等优点[5]。

3 重点和难点(The emphasis and difficulties)

3.1 上位机与GPRS的通讯

因为本系统使用C#语言进开发,而原本GPRS Modem所带的开发包是由VC 6.0开发的动态链接库SMS.dll。为了能够在.net环境下使用该包,则必须通过使用C#的DllImport属性二次封装SMS.dll,进而重新建立一个SMSLib.dll。例如重新定义一个SMS连接函数。

[DllImport("sms.dll", EntryPoint = "Sms_Connection")]

public static extern uint Sms_Connection(string CopyRight, uint Com_Port, uint Com_BaudRate, out string Mobile_Type, out string CopyRightToCOM);

同时,利用Adapter模式和单例模式对原有的函数库进行了二次封装。利用Adapter模式可以使用户通过一个统一的接口去调用与发送短信相关的函数,而无须考虑指令转换的细节;单例模式使用户在调用SMSLib时可以保证在同一时刻只有一个对象被调用,防止在计算机内存中创建多个对象的情况,提高了程序的稳定性并节约了内存开销。

3.2 上位机与数据库之间的数据交换

数据库中的客户表保存的是学生资料,上位机中的程序有一个Student类与学生表对应。本文利用微软封装的Sqlhelper类对数据库中的学生表进行访问,使之能够与学生类进行对应,进而显示在程序中。学生表的字段见表1。

表1 学生表

Tab.1 Students table

除此之外,还需要与之关联的专业表、年级表、班级表,如图2所示。

图2 数据库表结构图

Fig.2 The database table structure diagram

3.3 短信发送过程中程序假死的解决办法

因为GPRS Modem的处理速度和上位机的处理速度之间的差距,使得GPRS Modem在发送短信的同时,PC机的程序将会一直等待,进而造成计算机死机的假象。为了使计算机能够在GPRS Modem发送短信的同时即不会造成死机的假象也能够观察短信发送的进度,本系统采用了异步多线程的方式进行短信发送。在用户单击“发送”按钮后,系统将开辟一个新的异步线程,用于发送短信,进度条显示发送的进度。通过该方法不仅提高了计算机的使用效率,而且更好地增强了软件的客户体验程度。

4 结论(Conclusion)

本文设计的中职院校短信通系统由三部分构成,分别是GPRS Modem、上位机模块和数据库。其中,上位机模块采用分层结构设计,各层之间的通讯透明度较高。该系统具有易操作,维护简单,易于扩展等优点。可以随时将学籍管理系统的学生信息导入到本系统,并通过该系统对学生发送短信。本系统对加强学生管理,增进师生沟通方面有一定的帮助。

除此之外,本系统是桌面应用程序,后期将扩展该为B/S模式的网页应用程序也是期待改进的方面。

参考文献(References)

[1] 杨博,裘雪红,刘春红.基于C#语言的SMS应用[J].电脑与信息 技术,2004,(3):29-32.

[2] 李冉冉.基于Oracle的短信平台的实现及应用[J].微计算机信息,2010,(27):83-85.

[3] 韩超.基于短信的客户管理系统的设计与实现[J].电脑学习,

2006,(6):11-12.

[4] 刘韵,等.基于Web服务的煤矿安全管理短信平台的设计[J].

煤矿安全,2010,(7):100-102.

[5] Brad Maiani James Still,等著.康博,译.Visual C#.NET编程经典.北京:清华大学出版社,2002.

作者简介:

曾 艺(1980-),女,硕士,讲师.研究领域:软件工程、电子商务教学.

陈衍毅(1972-),男,本科,讲师.研究领域:计算机、电子商务教学.

猜你喜欢

PC机上位短信
道歉短信
特斯拉 风云之老阿姨上位
基于PC机与单片机的多机通信技术及抗干扰方法
代发短信
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
排除OLT设备登录故障
以新思路促推现代农业上位