APP下载

基于C#的远程短信监控软件的设计与实现

2015-03-26童超城

电子测试 2015年21期
关键词:窗体控件串口

童超城,易 勇

(西华大学 计算机与软件工程学院,四川成都,610000)

基于C#的远程短信监控软件的设计与实现

童超城,易 勇

(西华大学 计算机与软件工程学院,四川成都,610000)

本文以VS2012为开发平台,设计并实现了基于C#的串口的远程短信监控软件,该软件配上短息模块可实现对多台远程设备中一些重要数据进行实时采集、保存、以及对设备进行控制,对于出现危险信号进行预警。打包发布后的监控软件可在一般计算机上正常工作。

短信; C# ;串口;远程监控

0 引言

如今科学技术日新月异,这个社会正由移动互联网时代逐步迈向大数据时代。大数据越来越受到人们的关注。在商业界、工业界使用远程监控软件的用户也日益增多。与其他监控软件不同的是,本监控软件与短信接收模块相连实现对多台远程设备的工作状态、重要参数等进行监控,并对相关数据进行保存。在设备出现故障时还能及时报警,通过软件操作处理部分故障,不能处理的问题再派人前去维护。监控软件解决了偏远地区人力资源不住的问题,在工业高危领域以及欠发达地区监控软件的价值不可小觑。

远程监控软件所使用的开发技术非常多, C#由于其可视化、语法简洁、简单易学、兼容性强以及强大的安全性机制等优点受到了很多软件开发者的青睐。而Visual Studio2012是一套完整的开发工具集,它提供了在设计、开发、调试和部署Web应用程序和传统的客户端应用程序时所需的工具。适用于团体或者个人开发软件。本文采用C#为开发语言,VS2012为开发平台设计和实现了对多台远程设备的监控软件。

1 软件的功能描述

监控软件以对数据的实时采集以及相应的控制为主要的设计思想。软件具有很好的人机交互界面和交互效果,操作简单快捷。整个软件具有多界面,能实现多用户登录。主界面具有扫描可用串口、波特率可选择、多路数据采集、系统工作状态显示、系统异常提醒。软件通过短信接收模块能及时地获得设备实时数据,界面的按钮操作发送指令采集设备实时数据并保存数据,还具备查看历史数据的功能。

2 软件设计步骤

(一)建立一个基于Windows窗体的应用程序项目。在解决方案资源编辑器中添加一个新的From2登录窗体。默认的From1为监控主窗体。在登录窗体中添加控件:标签、按钮和文本框控件。分别修改它们的标题为用户、密码、登录提示、输入用户名框和密码框以及登录按钮。

(二)在主窗体中添加控件:标签控件,用来显示远程设备的名称、数据、工作状态和查看历史数据。按钮控件分别用于数据采集按钮和远程控制按钮以及通信端口扫描和软件系统按钮。timer控件用于显示系统时间。comboBox控件显示端口号和波特率。

(三)对所有控件属性中的标题、背景、大小、字体等进行修改,并完成控件的布局以及软件界面的美化使其有更好的视觉效果。

(四)为界面中的各个控件添加代码并调试,实现其功能。

(五)添加在监控软件解决方案中添加新项目setup把监控软件系统的打包成.EXE文。

3 软件功能的实现程序

(一)打开Program.cs文件,把Main()函数中对应语句改成Application.Run(new Form2())。这就实现了软件启动是首先弹出登录窗体。

(二)为登录按钮添加单击事件private void Login_Click(object sender,EventArgs e){string strName=TBOX1.Text;string strPwd= TBOX2.Text;if (strName==“name”&& strPwd==“password”){label1. Text=“登录成功”;this.Hide();Form1 Main=new Form1();Main.Show();}else { TBOX1.Text=““;TBOX2.Text=““;label1.Text=“登录失败!请重新输入!”;}}。在登录窗体中实例化主界面窗体,登录成功之后才能显示软件系统主界面。

(三)为系统开关按钮添加单击事件private void button2_Click(object sender, EventArgs e){if (serialPort1. IsOpen){serialPort1.Close();button2.Text=“开启系统”;}else{try{serialPort1.PortName=comboBox1.Text;serialPort1.BaudRate=Convert.ToInt32(comboBox2.Text,10);serialPort1.Open();button2.Text=“关闭系统”;}catch {MessageBox.Show(“串口打开失败”,“错误”);}}}

(四)为通信端口按钮即串口扫描添加单击事件

SearchAndAddSerialToComboBox(SerialPortMyPort,ComboBoxMyBox) {string[] MyString= new string[10];string Buffer; MyBox.Items.Clear(); int count= 0; for (int i=1;i<7;i++){try{Buffer=“com”+i.ToString();comboBox1.Text=“COM3”;MyPort.PortName=Buffer;MyString[count]=Buffer; MyBox.Items.Add(Buffer);MyPort.Close();count++;}catch{count--;}}MyBox. Text=MyString[0];}

(五)为数据采集按钮添加单击事件p o r t_D a t a R e c e i v e d(o b j e c t s e n d e r,SerialDataReceivedEventArgs e){try{byte DataReceived;string XX =“11”; DataReceived = (byte)serialPort1. ReadByte();string str=Convert.ToString(DataReceived,2);if (XX == str.Substring(0,2)){ date1= str.Substring(4,1);date2= str.Substring(5,1);}else{ MessageBox. Show(“数据错误”);}串口接收短信模块发来的数据需要强制类型转换,将int类型数据转换为byte类型的DataReceived,再将DataReceived转换成二进制数,通过if语句判断数据头是否正确。如果不正确系统就会弹出数据错误提示框。所以不必考虑是否会丢失数据。在本文中,短信模块传输的数据为110***,后三位为远程设备数据。

(六)为控制按钮添加单击事件WriteByteToSerialPort(byte data){ byte[] Buffer=new byte[]{data};if (serialPort1. IsOpen) {try{serialPort1.Write(Buffer,0,1); }catch{ MessageBox.Show(“串口数据发送出错”); }}}。

同理,其他控制按钮只需添加函数WriteByteToSerialPort(byte data)和相应的data命令即可。

(七)数据保存,首先判断数据要保存的文件是否存在,如果不存在则直接使用FileStream fs = new FileStream(“文件路径”, FileMode.Create, FileAccess.Write)创建文件。StreamWriter S W= File.AppendText(“文件路径”);S W.Write(“要写入的数据”)写入数据。

(八)为数据查看按钮添加单击事件label1_Click(object sender, EventArgs e){try {System.Diagnostics.Process. Start(“E:\数据.txt”);} catch (System.Exception ex) {MessageBox.Show(ex.ToString());}}。

(九)为串口添加事件处理程序:serialPort1. DataReceived=new SerialDataReceivedEventHandler(po rt_DataReceived),该条代码保证了串口能够工作;添加系统时间DateTime.Now.ToString(“yyyy-MM-dd HH:mm:ss”),一方面用在软件保存数据是写入数据的时间。另一方面,方便用户;系统预警SoundPlayer s= new System.Media. SoundPlayer(@”D:音乐1.wav”);s.Play();把上面的代码添加到采集到的危险数据处即可。在本文中如果采集到的数据超出标准数据,软件系统就会发出报警声,提示远程设备出现异常情况。

4 研究展望

本文通过C#设计监控软件,具有很好的人机交互效果,操作简单可靠。通过短信模块随时采集数据和控制远程设备,在软件上实现数据的分割解码、保存、查看。此外,研究还可以在此基础上加入数据库的设计、网页设计以及服务器,向系统级的监控软件迈进。

[1] 李言 李伟明 李贺《C#项目开发全程实录》 清华大学出版社2012年6月

[2] Andrew Troelsen 著 朱晔 译《C#与.NET4高级程序设计》人民邮电出版社 2011年4月

[3] 扶松柏 著《深入体验C#项目开发》清华大学出版社 2011年7月

[4] 马骏 编《C#程序设计及应用教程》人民邮电出版社2014年1月1日

The design and implementation of remote SMS monitoring software based on C#

Tong Chaocheng,Yi Yong
(College of computer and software engineering, Xihua University,Chengdu,Sichuan,610000)

This paper takes VS2012 as the development platform,designs and implements the remote SMS monitoring software based on C#.The software is equipped with the short message module to realize the realtime collection,storage and control of some important data in many remote devices.After the package is released, the monitoring software can work on the general computer.

SMS;C#;serial port;remote monitoring

猜你喜欢

窗体控件串口
浅谈AB PLC串口跟RFID传感器的通讯应用
基于.net的用户定义验证控件的应用分析
试谈Access 2007数据库在林业档案管理中的应用
关于.net控件数组的探讨
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式
巧设WPS窗体控件让表格填写更规范
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
WinCE.net下图形用户界面的开发