}
3.3    PC端软件设计
相对于Arduino端软件设计而言,PC端软件设计稍微简单些,但由于需要匹配Arduino端的Socket程序,其设计还是比较麻烦的,需要不断的调试程序,寻找bug。最终找到一个比较可行又可靠的设计方案。
PC端的程序设计核心主要由以下四大模块。
3.3.1    多窗体设计
本系统PC监控端有以下三个界面组成:
其一是用户登入界面,用户输入用户名与密码,将输入结果与数据库内的用户表做校对,正确后将进入教室用电一览表界面,否则显示一个提示信息,提示用户重新输入。该界面如图3.7所示图3.7  登入界面
其二是教室用电一览表界面,在该界面中,将依据控制临时表及传感器中的信息来显示一栋楼的教室用电情况,教室名称后的0-3的数据,分别表示教室内的日光灯、电风扇的使用状态,如下表3.2所示。当单击教室按钮后,将进入教室用电控制界面,并将教室名称传递过来。单击退出按钮后,退出系统。该界面中阈值温度的改变,仅会作用于没有进行强制控制的教室。教室用电一览表界面如下图3.8所示。
表3.2  日关灯及风扇状态编码
数据    高位    低位    日光灯状态    电风扇状态
0    0    0    关    关
1    0    1    关    开
2    1    0    开    关
3    1    1    开    开
 
图3.8  教室用电一览表
其三是教室用电控制界面,该界面是由教室用电一览表见面进入,并接受从中传递而来的教室名。进入该界面后会对传入的教室名称进行解析,获取到该教室的IP,从而达到控制该教室内用电器的功能。该界面有7个按钮组成及一个下拉列表来控制教室内的用电器。如下图3.9所示。
 
图3.9  教室控制界面
3.3.2    多线程编程
由于在UDP端口监听程序中,Receive方法将会时不时的产生阻塞,等待接收远端的数据,不利于前端界面的交互响应。故本系统需要新建一个线程,用于UDP通信中的端口监听。
在此基础上,由于UDP通信是无连接通信,通信不是非常可靠的,但其在系统资源利用率高的优势下,我仍然选择了UDP协议。同时,为了通信的可靠性,我不得另建一个是启动线程,若两端UDP端口监听端口,系统会自动发送远程监控信息包给对应Arduino控制板,从新建立如图3.10的UDP监听通信环,以防UDP监听通信失败,Arduino控制板处于监听等待,而PC端监听线程则处于无限制阻塞当中,造成系统崩溃。
同时,本系统还建立了一个断开连接线程。当用户退出本系统时,会关闭连接通信线程,启动该断开连接线程。当所有教室都断开连接后,会退出该系统。
线程创建及使用方法如下代码所示,以下代码表示新建了一个线程,该线程运行用户定义的read()方法。
//新建一个线程,启动read方法
Thread th = new Thread(new ThreadStart(read));
th.Name = "udpListener";
th.Start();
th.IsBackground = true;
3.3.3    数据库编程
本系统开发使用了一个数据库UniversityGraduationDesign,创建了一个登入用户表userTable,一个临时教室控制表controlTemp。
userTable包含了用户ID userID,用户名userName,用户密码password以及权限authority。其中用户ID及用户密码用于登入系统,权限用于设置本系统的权限,暂时为了二个级别,一个级别为最高级,可对系统做任何操作;另一个为一般浏览权限,只能查看教室用电信息,无法远程控制教室内的用电设备。
上一篇:AT89S52单片机智能小车控制系统设计+电路图
下一篇:LabVIEW飞行器模型静态参数测试台设计方法研究

Arduino的家居智能安防系统的设计+程序+电路图

AT89S52单片机教室灯光自动...

Arduino自动售货机的设计

Arduino智慧农业大棚智能管理系统设计+源代码

电力节能技术与电力新能源的讨论【2283字】

电力节能减排的形势和對策新思考【2738字】

电力电气控制阀的电压节...

浅谈传统人文精神茬大學...

高校网球场馆运营管理初探【1805字】

谷度酒庄消费者回访调查问卷表

浅谈新形势下妇产科护理...

辩护律师的作证义务和保...

拉力采集上位机软件开发任务书

《醉青春》导演作品阐述

国内外无刷直流电动机研究现状

多元化刑事简易程序构建探讨【9365字】

中国古代秘书擅权的发展和恶变