毕业论文-企业考勤系统的设计与实现.doc_第1页
毕业论文-企业考勤系统的设计与实现.doc_第2页
毕业论文-企业考勤系统的设计与实现.doc_第3页
毕业论文-企业考勤系统的设计与实现.doc_第4页
毕业论文-企业考勤系统的设计与实现.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2014届毕业生毕业设计说明书题 目: 企业考勤系统的设计与实现 院系名称: 信息科学与工程学院 y专业班级: 软件工程11级01班 a学生姓名: 学 号: 指导教师: 教师职称: 讲师 a2015年5月25日44摘 要 荀子在劝学中曾说道:假舆马者,非利足也,而致千里;假舟楫者,非能水也,而绝江河。君子生非异也,善假于物也。”21世纪,伴随着科技的发展,计算机技术也得到了提高,电脑更是进入了千家万户。聪明的君子学会利用电脑这个物来解决问题以达到性异的要求。 传统的考勤方法无法科学有效地处理大量的人事考勤信息,考勤人员处理起来需要浪费巨大的人力、物力。而且,得到的数据准确度不高,存在一些水分。所以,我们需要利用计算机来开发一个图形简单易于操作的考勤系统,来帮助我们。 考勤管理系统 关键字:物联网、智能化、仓储管理、rfid射频识别技术、传感器。 title intelligent warehouse management system based on internet of thingsabstractwith the progress of science and technology and the development of intelligence,intelligent management has become more and more essential in the modern industrial field, especially in large and medium-sized warehouse management system.the items would get mouldy due to the high or low temperature and humidity.the strength or weakness of light in warehouse would affect the storage of items.the cumbersome records for goods in and out of warehouse and real-time video monitoring warehouse.because of the above problems,if we use the original way of management,it would cost a lot of human and material resources.moreover,the management of warehouse is becoming more and more difficult.so make the daily management of warehouse into intelligent gradually becomes a very important topic.this topic,taking the above problems as the starting point and based on iot(internet of things), designs an intelligent warehouse management system.the system can not only collect the temperature,humidity,light intensity and the information of real-time monitoring in the warehouse,but also can real-time monitor the environment and information through the web.it could make corresponding processing quickly,display the results to the users timely,and storing data meantime for later contrast research. another is to automatically identify goods in and out of the of the warehouse.in view of the existing problems in warehouse management, this research is mainly to combine the iot,rfid,operation of the sensor technology and real-time video monitoring technology.it was used in the management of warehouse,and built intelligent warehouse management system in order to realize the intelligent management of the warehouse.this requires automatic recognition,wireless transmission function,real-time monitoring,and more support.and rfid, zigbee,and the technology which take the embedded video on the web server as the core just solve the problems such as automatic identification,wireless transmission,real-time monitoring and other technical problems.the design and realization of the system and the analysis about the application in warehouse management system shows that iot can improve the efficiency of warehouse management and meet the requirements of goods management,environmental monitoring and real-time monitoring.keywords: internet of things、intelligence、warehouse management、rfid、sensor.目录摘 要.iabstract.ii第一章 绪 论.11.1 研究背景11.2 研究目的和意义11.3 物联网技术未来的发展2第二章 开发工具和环境介绍.32.1 linux c简介.32.2 sqlite数据库简介.32.3 cortex-a8开发板简介.32.4 cortex-m0 开发板简介.32.5 boa服务器简介.32.6 zigbee简介32.7 rfid简介.4第三章 系统需求分析和整体设计.53.1 问题的提出53.2 设计目标53.3 系统功能描述63.4 系统性能指标63.5 系统框架设计73.5.1 系统整体框架图.73.5.2 每个子系统框架图.83.5.3 业务流程图.103.6 系统接口113.6.1 用户接口.113.6.2 硬件接口.113.7 每个子系统模块描述123.8 功能模块设计与接口设计133.8.1 采集数据端主程序133.8.2 beep报警系统133.8.3 led报警系统.143.8.4摄像头线程.15第四章 详细设计与实现.164.1 服务器主控程序端详细设计164.1.1 系统整体框架和线程间关系.164.1.2 数据描述.184.1.3 数据库操作.204.1.4 数据接收模块.224.1.5 数据处理模块.254.1.6 处理客户请求模块.274.1.7 蜂鸣器模块304.1.8 led模块.314.1.9 摄像头模块.324.2 采集数据端的详细设计.334.2.1 采集数据终端设备方案描述334.2.2 采集数据终端设备工作流程334.2.3 采集数据终端设备各模块功能描述34附录一 通信结构体.38附录二 服务器端与采集数据端通信指令.39结 论 40致 谢.41参 考 文 献.42第一章 绪 论1.1 研究背景在现代工业现场,智能化管理已经变的越来越必不可少,特别是在大中型仓库管理系统中,面临由于温湿度过高或者过低物品发生发霉变质、仓库关照过强或过弱影响物品的存放、物品的进入库记录繁琐、以及要实时视频监控仓库等问题,原有的管理方式都要耗费大量的人力、物力来管理。所以要把仓库的日常管理逐渐智能化,才能满足现在客户的需求。仓储业可以分为人工、机械、自动和智能这四个阶段的管理过程。受目前信息技术迅速发展的影响,科技技术、网络工程和智能化逐渐成为仓储管理行业的重要支柱,多种仓储管理技术结合、仓储的硬软件综合使用,逐渐减少了传统仓储管理的不利之处,促进了现代化仓储业的迅速发展。所以,要将物联网用到仓储管理中。2010年6月,我国工信部正式将物联网纳入“十二五”专题规划,规划指出,中国物联网将重点建设九大领域,其中就包括智能仓储,仓储管理的智能化发展,无论在学术研究还是企业应用中,仓储管理智能化都炙手可热。 1.2 研究目的和意义因为仓储管理在大多数行业中相当高的重要性,所以提升它的管理水平和工作效益就是显得很必要了,目前我国的仓储行业存在相当多的问题,如仓库功能很单一,不能满足客户的多种需求;仓库设备陈旧、落后,工作效率低下,仓储管理基本处于人工管理或者是半自动管理状态,产品信息识别过程效率低,实时信息获取困难、自动化程度很低、耗费大量人力和物力等很多问题。而导致这些问题发生的根本原因是仓储系统的现有架构不能满足功能需求。因此,为满足社会发展对仓储系统的要求,改变仓储系统的构架模式,解决仓储系统现有的问题是要解决的问题,本文基于物联网对仓储系统的的构架进行了研究,为系统的具体构架和实现提供了一定的指导作用。1.3 物联网技术未来的发展拥有最完整的物联系列产品,物联网技术将是推动世界很快发展的下一个重要动力。最近几年物联网已经逐渐出现在我们的生活中,在未来几年里,物联网很可能会大规模普及,将广泛运用于智能交通、政府工作、环境保护、智能消防、工业监测、老人护理、个人健康、公共安全、平安家居等多个领域,一个上万亿元规模的高科技市场就此诞生,构建了“专业性强、技术优、质量好、成本低、满足客户需求”的综合优势,持续为客户提供有竞争力的产品和服务。第二章 开发工具和环境介绍2.1 linux c简介linux中也集成了大量的c语言的头文件和函数实现,为linux下的c语言编写提供的很大的方便。它类似与unix操作系统,linux下c语言编程,常用编译器一般用gcc,编辑器常用是vim。2.2 sqlite数据库简介它提供了几个c语言函数的接口,只需要通过这些接口来操作数据库,数据库可以建立很多的表等等,它是属于文件型的数据库。所以这些表其实就是一个文件。备份这个文件就备份了整个数据库。 而且不需要数据库引擎,甚至不要安装数据库,就可以保存数据。 2.3 cortex-a8开发板简介a8处理器,是基于armv7系列的,它是比较高级的arm开发板,主要用在精确度要求比较高的地方。 2.4 cortex-m0 开发板简介 在本项目中担任采集数据终端设备,cortex-m0是现有最节能的arm处理器, 它采用了恩智浦的lpc11c14芯片,本芯片是一款32位处理器,主频可以到50mhz。无论在抗干扰能力上,或者是处理数据的速度上还是在功耗上,它都很强,它有足够的能力能够用来作为仓库管理中的数据采集端设备。2.5 boa服务器简介boa服务器支持cgi,是开源的,主要运行在linux系统下面的,是小型的嵌入式web服务器。2.6 zigbee简介zigbee是一种短距离无线通信技术。上层协议的为zigbee协议栈了,功耗很低的个域网协议。由于强大的功能,迅速广泛应用于低数据率监控的各个领域,它具有高可靠性,网络路由功能强大,低速率,低功耗,更具有恢复及冗余性能优异等特点。主要适合用于自动控制和远程控制领域。 2.7 rfid简介rfid,可以称为射频识别技术,不需要让射频卡接触特定目标,就可以读取射频卡里面的数据。第三章 系统需求分析和整体设计3.1 问题的提出随着智能化的发展,而且伴随物流业的发展,因此,越来越多的仓库管理方面的问题就暴露出来了。特别是在大中型仓库管理系统中,面临由于温湿度过高或者过低物品发生发霉变质、仓库关照过强或过弱影响物品的存放、物品的进入库记录繁琐、以及要实时视频监控仓库等问题。原有的管理方式都要耗费大量的人力、物力。通过系统的设计与实现,逐步解决以上所提到的问题。用户可以不用进入仓库,仅仅通过网页端就可以实时监控仓库的环境信息,而且通过报警的方式来提醒用户,这样既能在仓库环境遇到异常的时候,及时作出相应的反应,又能大大的减少仓储管理中的人力、物力,为客户节省开销。3.2 设计目标通过现有仓储管理所遇到的问题,设计出一个智能的数据处理的物联网设备,要实现的主要功能有:1、对仓库的信息实时采集,例如温湿度、光照、三轴加速度等等。2、观察摄像头采集到的图片。3、采集数据段采集到的数据交付给服务器数据中心端,并使用sqlite数据库进行存储,实现物联网的基本功能,即,物与物的联系的一起。4、服务器端对接到的采集数据二次处理之后,发给采集数据段指令,并做出相应的反应。5、用户通过网页监控仓库环境,6、在管理页面上设置按钮,直接修改上下限的值,更改报警条件。 7、货物的进出货的的识别,并存入数据库以便日后对比管理。3.3 系统功能描述本系统是基于a8服务器端、用户pc端、m0采集数据端(以下再出现用m0来代替)三大块组成,依托在互联网,物联网,传感器等技术的基础上编写,以实现食品物联网仓储系统,使用户更方便的管理仓库内的所有信息以及应急仓库的特殊情况。 m0终端采集环境信息,把打包并发送给a8, a8对数据第二次处理后,然后发给m0相应控制命令,m0端实时接收a8发来的命令并解析。仓库管理系统的相关信息包括如下内容了,环境信息包括有温湿度、三轴加速度、光照强度,硬件设备信息有风扇、蜂鸣器、led灯、商品刷卡信息。客户pc端通过网页登录到a8服务器上的boa服务器,远程看到仓库的管理界面,能看到m0采集数据端传到服务器的各种仓库信息、以及直接实现在网页上实时显示仓库的信息。在管理主页上可以进行功能操作:在管理页面上看到到通过摄像头看到仓库的实时环境。在管理页面上远程控制硬件设备。在管理页面上屏蔽或开启这些监控功能。在管理页面上设置终端的温湿度以及光照强度上下限。在管理页面上看到异常抓拍的照片。 3.4 系统性能指标传感器精度要求传感器的精度应该满足报警的需求。监控系统安全性要求用户通过身份验证进入管理界面。灵活性要有很好的可扩展性,能够随意的增加监控接节点数量,并将他们通过局域网联系起来。系统安全性需求防止非授权用户登录,严格限制非授权用户登录管理,防止非授权用户访问。数据保存需求由于嵌入式设备上存储空间容量有限,所以系统采集的图片信息需要转存到相应的存储设备上,比如sd卡等设备上,这样用户可以很方便查看以前事件的记录,系统应该提供相应的接口,来实现相应的数据保存功能。3.5 系统框架设计3.5.1 系统整体框架图 系统的整体框架图如下图3-1所示:图3-1:系统框架图3.5.2 每个子系统框架图1、服务器端a8端的架构图如下图3-2所示;图3-2:a8服务器端架构图2、采集数据终端采集数据端发给服务器端数据框架图如下图3-3所示;采集数据端接收服务器端发来的命令框架图如下图3-4所示;图3-3:采集数据端发送给服务器数据图图3-4:采集数据端接收服务器指令图3、用户pc模块pc工作架构图如图3-5所示;图3-5:pc工作架构图3.5.3 业务流程图1、服务器主控程序流程图主控程序业务流程图如下图3-6所示: 图3-6:主控程序业务流程图2、采集数据端主程序流程图采集数据端主程序流程图如下图3-7所示:图3-7:采集数据端业务流程图3.6 系统接口3.6.1 用户接口远程用户屏幕、菜单格式的要求,给用户一个美观、易操作的管理界面,用户通过自己的用户名和密码,可以通过管理界面实时监控仓库的环境信息,并且可以通过远程修改上下限,更改报警的条件。3.6.2 硬件接口应用软件的需求:(1)驱动程序:基于linux-2.6.3.5内核版本的驱动程序。(2)数据库类型:sqlite。(3)webserver类型: boa服务器.。(4)cgi程序:cgi。(5)系统具备较好的可扩充性,可以和各类应用软件实现无缝接口。(6)与应用软件的接口方式:通过模块化设计。监控设备硬件需求:(1)cortex-m0、cortex-a8、摄像头、zigbee、温湿度传感器、光感应器。用户端硬件要求:(1)本地用户:键盘外设,音响。(2)远程用户:一台连接内网的pc或移动设备,安装ie或火狐浏览器。(3)通信接口:仓库内各传感器通过zigbee来与前端数据中心进行硬件通信,因为zigbee功耗低,较稳定,更适合嵌入式设备。系统集成有网卡芯片,可以在局域网中对系统进行相应得设置以及监控。 3.7 每个子系统模块描述1、服务器端模块描述a8端是服务器主控程序端,是采集数据端和pc端的通信的枢纽,一部分用于网页控制,对a8进行控制,并给显示用户,另一部分负责与m0通讯,接收m0采集到的信息。所以服务器端主控程序是本系统的核心部分,主要分为三个部分,一部分为主程序部分;负责对m0和上层服务,另一部分网页和网页控制部分,用户通过web服务器,来访问a8,向主程序发命令来控制。2、采集数据终端模块描述采集数据端包括三个模块:rfid射频模块、zigbee模块、采集数据模块。最主要的是采集数据端的操作各种传感器模块,对环境信息进行采集,还有一个重要的rfid刷卡模块,通过事先写好的射频卡,通过刷卡来实现仓库的进出货物功能,刷卡之后,直接会将卡内的信息读出来,显示到用户网页端。为了项目实时性能够得到相应的提高,整个数据采集端的程序中采用多个中断,当中断发生时设置相应的标志位,主程序轮询根据相应的标志位,来执行相应的程序 系统时钟中断:实现2秒钟发送一次环境信息数据。 rfid中断:有中断来时读取刷卡数据,zigbee中断:有中断时,读数据。3、用户pc模块描述用户可以通过网页对仓库信息进行监控,以及对硬件的控制,主要通过嵌入式web服务器,也就是boa网页服务器对a8服务器端进行控制,boa服务器自带cgi程序处理功能,用户可以通过网页端,来运行事先放进服务器文件系统中的cgi程序,直接从网页与cgi程序交互可以给a8服务器主程序发消息,并且来控制a8,并通过a8中的m0线程来得到m0端采集到的环境信息的动态数据的显示。3.8 功能模块设计与接口设计3.8.1 采集数据端主程序编码内容温度传感器、湿度传感器、光照传感器。输入数据流线程温度、湿度、光照。输出数据流相关检测值。功能描述检测温度湿度和光照传感器的值。处理说明每隔2秒获取当前仓库中是温读、湿度、光照和光照强度等信息,采集数据端传递采集值并封装传给a8,a8判断数据然后返回相应的指令,比如打开蜂鸣器,led灯、或者打开风扇等等。3.8.2 beep报警系统编码内容蜂鸣器及外设音响编码。输入数据流仓库环境出现异常(着火)时,开启蜂鸣器报警设备。输出数据流蜂鸣器报警led灯亮提示代表有异常。功能描述通过s5pc100开发板蜂鸣器来模拟报警系统,完成相应的报警功能。处理说明1、驱动程序的加载编写驱动程序,插入到内核,加载驱动程序。2、创建设备节点用mkmod命令创建设备节点,根据设备号来确定。3、测试首先交叉编译测试程序,在开发板上执行主程序可执行程序,可以通过改变温度传感器的温度值或者按键来测试是否能开启报警功能。4、当你听到报警提示时,可在网页上点击关闭报警,即可可关闭蜂鸣器。3.8.3 led报警系统编码内容led驱动编码。输入数据流led对应的开关打开/关闭。输出数据流需要控制的led亮/灭。功能描述通过led灯来模拟仓库灯具,完成控制灯具开闭的功能。处理说明1、led灯驱动的注册将led驱动以模块的形式插入到linux内核之中,完成设备注册,并得到相应的主设备号。2、创建设备节点完成led驱动的注册之后,用mknod创建键盘的设备节点。3、测试在开发板上运行测试led驱动,观察能否控制led4、编写led控制线程将led控制线程以消息队列的形式来接收命令并控制led灯的亮灭。3.8.4摄像头线程编码内容摄像头编码。输入数据流led对应的开关打开/关闭。输出数据流得到的图片,保存在相应日期目录下。功能描述如果有人闯入,或其他异常现象,抓拍现场照片,并把图片保存在相应的目录中,图片格式为jpg。网络视频功能。处理说明1、获取驱动程序2、配置linux内核3、通过make menuconfig配置linux内核,让内核支持摄像头。4、编译内核通过make zimage,编译内核,并下载到开发板上运行。5、将usb摄像头接到开发板上这个时候就摄像头就能被驱动了。通过按键产生中断来检测是否可以拍照片。6、如果有火灾发生,或者有不法分子闯入(用按键来模拟红外线报警系统),那么系统程序通过system函数调用摄像头应用程序来进行捕捉照片,连续拍几张张并保存到指定位置。第四章 详细设计与实现 4.1 服务器主控程序端详细设计4.1.1 系统整体框架和线程间关系1、系统整体框架(1)通过采集数据端采集仓库的环境信息和刷卡信息。(2)采集到的数据再通过zigbee,把采集到的信息发送给服务器端;(3)主控程序的采集数据端线程来接收环境信息,并激活数息进行处理并发给采集数据端命令,用来控制采集数据终端;(4)摄像头安装到服务器上面用来采集图片,并存储到服务器下的某一个定义好的文件夹下面;(5)通过在服务器上安装boa网页服务器,从而搭建嵌入式web服务器,使用户通过网络利用自己的计算机就能机进行随时的监控;(6)在网页页面上设置控制按钮,比如说,设置最高或最低温湿度和光照值按键,关掉报警按钮。用来监控设备,并识别用户指令并进行相应动作;2、线程间关系服务器主控程序线程之间的关系框架图如下图4-1所示:图4-1:服务器主控线程之间的关系构架图服务器主控程序中用到如下线程,分别编写成不同的.c文件。main.c:主线程.pthread_msg.c:处理消息队列里请求的线程.pthread_refresh.c:更新共享内存里的实时数据.pthread_sqlite.c:数据库操作线程.pthread_transfer.c:接收采集数据端数据线程.pthread_analysis.c:采集数据端数据分析线程.pthread_uart_snd.c:采集数据端控制命令发送线程.pthread_buzzer.c:服务器蜂鸣器控制线程.pthread_led.c:服务器led模块线程.pthread_infrared.c:红外(按键模拟)监测线程.pthread_camera.c:摄像头模块控制线程.4.1.2 数据描述1、结构体描述,如表4-1所示: 表4-1:结构体描述结构体名成员类型成员名功能描述storage_goods_infounsigned chargoods_type物品类型unsigned intgoods_count物品数量storage_infounsigned charstorage_status仓库开关状态led_status仓库led状态buzzer_status仓库buzzer状态fan_status仓库风扇状态signed charx仓库采集端三轴状态yzcharsamplingtime20采集数据的时间floattemperature仓库当前温度temperaturemax仓库温度上限temperaturemin仓库温度下限humidity仓库当前湿度humiditymax仓库湿度上限humiditymin仓库湿度下限illumination仓库当前光照illuminationmax仓库光照上限illuminationmin仓库光照下限battery仓库采集端电池电压storage_goods_infogoods_infosize采集货物信息env_info_clien_addrstorage_info storage_nostorage_num所以仓库实时信息msglongtype消息队列里的消息类型2、部分全局变量描述,如表4-2所示: 表4-2:部分全局变量描述类型变量名作用pthread_cond_t cond_sqlite数据库线程被唤醒条件变量cond_analysis数据分析线程被唤醒条件变量cond_uart_cmdm0控制命令发送线程被唤醒条件变量cond_client_request处理消息队列里请求的线程被唤醒条件变量cond_infrared红外(按键模拟)监测线程被唤醒条件变量cond_buzzera8蜂鸣器控制线程被唤醒条件变量cond_leda8 led模块线程被唤醒条件变量cond_camera摄像头模块控制线程被唤醒条件变量cond_refresh更新共享内存里的实时数据被唤醒条件变量pthread_mutex_t mutex_slinklist数据库缓存互斥锁mutex_sqlite数据库线程互斥锁mutex_analysis数据分析线程互斥锁mutex_uart_cmdm0控制命令发送线程互斥锁mutex_client_request处理消息队列里请求的线程互斥锁mutex_buzzera8蜂鸣器控制线程互斥锁mutex_leda8 led模块线程互斥锁mutex_camera摄像头模块控制线程互斥锁4.1.3 数据库操作 4.1.3.1 数据库模块流程图及结构图 1、sqlite数据库流程图程序中各个任务线程开始运行之前,主控制程序已经开始运行了,数据库的pthread_sqlite线程就在其中。用于存对数据库操作的链表是由pthread_sqlite线程创建的,链表创建之后,立刻进入while循环。循环过程当中,pthread_cond_wait函数不做任何事情,进行睡眠等待,等待唤醒函数pthread_cond_signal出现唤醒信号,唤醒之后再次进入while循环,循环过程中,还要判断链表头是不是为空。如果链表头不为空,则读取第一个节点的内容,把第一个节点中的内容拿出来,把拿出来的内容作为参数传到sqlite_task函数中,数据库操作完成之后并释放节点,如此一直循环下去;如果链表头为空,则直接跳出循环,等待其他线程下一次对它唤醒,数据库操作流程图如图5-2所示: 图4-2:数据库操作流程图2、sqlite_task数据库操作结构图在pthread_sqlite线程流程图中,用到数据库操作函数sqlite_task函数。用来读完节点信息的数据库操作。对数据库的操作主要;读取sqlite_operation中的成员变量来完成的。通过sqlite_operation中的table_select_mask来判断对数据库中的哪个表进行操作是的,通过下图三个结构体成员来判断,例如,更新、查看、插入等操作。如下图4-3所示:图4-3:sqlite_task()结构图4.1.3.1 数据库表数据库表一,如表4-3所示:表4-3:仓库环境表temperaturemax温度最大值当环境温度大于最大值,需要发送报警信号temperaturemin温度最小值当环境温度小于最小值,需要发送报警信号humiditymax湿度最大值当环境湿度大于最大值,需要发送报警信号humiditymin湿度最小值当环境湿度小于最小值,需要发送报警信号illuminationmax光照强度最大值当环境光照强度大于最大值,需要发送报警信号illuminationmin光照强度最小值当环境光照强度小于最小值,需要发送报警信号username姓名仓库管理者姓名password密码进入仓库时的,需要密码验证数据库表二,如表1-4所示:表4-4:仓库温湿度表temperatureval环境温度值这个一个实时数据,1秒采集一次humidityval环境湿度值这个一个实时数据,1秒采集一次illuminationval环境光照强度值这个一个实时数据,1秒采集一次envtime采集环境温度的时间采集环境温度的时候,保存采集时间,方便管理者进行数据分析数据库表三,如表4-5所示:表4-5:仓库货物表goodsid货物编号货物编号,是货物的唯一标识goodscount货物数量仓库中所有货物的数量goodstime货物入库时间记录货物入库的时间4.1.4 数据接收模块1、功能描述用来接收采集数据端通过zigbee无线传输设备传输过来的消息,经过服务器端接收端的zigbee模块,再通过usb转串口技术,而线程负责从串口读取消息,并经过判断时候把消息再传给数据处理模块,此线程并继续从串口接收消息。2、数据描述表4-6:数据接收端数据描述类型名称功能intdev_uart_fd串口文件描述符linklistlinkhead数据缓存链表头pthread_cond_tcond_analysis数据处理模块唤醒条件变量pthread_mutex_tmutex_linklist数据缓存保护互斥锁3、流程图数据接收模块流程图如下图4-4所示: 图4-4:数据接收流程图4、详细说明serial_init来进行串口的初始化;然后该线程通过read串口进行睡眠,如果有数据传过来,就从该串口里把数据读出来,并判断数据包的head是否正确,如果head正确,那么就把数据读出来,加入数据链表缓存.读串口的详细过程如下所示:#include link_list.h#include data_global.h#define len_env 20#define len_rfid 4extern int dev_uart_fd;extern linklist linkhead;extern pthread_cond_t cond_analysis;extern pthread_mutex_t mutex_linklist;void serial_init(int fd)struct termios options;tcgetattr(fd, &options); /读取终端参数options.c_cflag |= ( clocal | cread ); /忽略调制调解器线路状态,使用接收器options.c_cflag &= csize; /清目前字符长度options.c_cflag &= crtscts; /不实用rts/cts流控制options.c_cflag |= cs8; /字符长度设置为8options.c_cflag &= cstopb; /设置1个标志位options.c_iflag |= ignpar; /允许输入奇偶校验options.c_iflag &= (icrnl | ixon); /回车不转为换行 options.c_oflag = 0;options.c_lflag = 0;cfsetispeed(&options, b115200); /设置波特率为115200cfsetospeed(&options, b115200);tcsetattr(fd,tcsanow,&options); /设置终端参数4.1.5 数据处理模块1、功能描述数据接收线程接收到数据处理之后,激活数据处理模块,用来处理接收到的信息,接收到的信息是规律规定的,所以本模块对数据解析后,激活数据库线程保存数据,激活内存刷新数据,更新实时环境信息,并判断是否正常,不正常,则要激活向采集数据端发送命令的线程,发送命令。2、数据描述表4-7:数据处理模块数据描述结构体名成员类型成员名称功能struct getenvmsgunsigned chartem2温度hum2湿度x三轴yzunsigned intill光照battery电池电压比例struct getgoodsmsgunsigned chario进出标志goodsno货物编号goodsnum货物数量类型名称功能linklistlinkhead数据缓存链表头,用来读取数据slinkhead数据库数据缓存链表头,用来插入数据类型pthread_mutex_t名称功能mutex_linklist数据缓存链表互斥锁mutex_analysis数据处理线程互斥锁mutex_global实时仓库信息数据互斥锁mutex_buzzer蜂鸣器模块互斥锁pthread_cond_tcond_analysis数据处理模块被唤醒条件变量cond_sqlite数据库模块被唤醒条件变量cond_refresh内存刷新线程被唤醒条件变量cond_buzzer蜂鸣器模块唤醒条件变量chartem_alarm_statusstorage_num各仓库温度是否超标标志位hum_alarm_statusstorage_num各仓库温度是否超标标志位ill_alarm_statusstorage_num各仓库光照是否超标标志位beep_statusstorage_numa8主蜂鸣器状态标志位intmsgid消息队列号dev_buzzer_mask蜂鸣器模块操作标志位struct env_info_clien_addrall_info_rt实时环境信息全局变量3、流程图数据处理模块流程图如下图4-5所示:图4-5:数据处理模块流程图4、详细说明在数据处理线程中,进行了以下大量的工作,例如,对接到数据的解析、激活数据库线程、设置仓库设备的标志位等等,并对数据进行检查,还对接收的数据进行异常检查,如果超过临界值,则发命令给底层数据采集端,主要功能代码见pthread_analysis.c:采集数据端数据分析线程.4.1.6 处理客户请求模块1、功能描述接收网页和其他线程检测到的异常,并发送设备控制请求的线程。2、数据描述表4-8:处理客户端请求模块数据描述结构体名称成员类型成员名称功能struct setenvinttemmax温度上限temmin温度下限hummax湿度上限hummin湿度下限illmax光感上限illmin光感下限数据类型数据名称功能unsigned chardev_led_maskled设备操作掩码dev_camera_mask摄像头设备操作掩码dev_buzzer_mask蜂鸣器设备操作掩码dev_uart_mask串口发送命令掩码pthread_cond_tcond_ledled设备被唤醒条件变量cond_camera摄像头设备被唤醒条件变量cond_buzzer蜂鸣器设备被唤醒条件变量cond_refresh内存刷新线程被唤醒条件变量cond_uart_cmd串口发送命令线程被唤醒条件变量cond_sqlite数据库线程被唤醒条件变量pthread_mutex_t数据类型pthread_mutex_tmutex_global仓库实时信息变量保护互斥锁mutex_uart_cmd串口发送命令模块互斥锁数据名称功能mutex_ledled模块互斥锁mutex_buzzer蜂鸣器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论