《RFID课程设计报告枪支管理系统.pdf》由会员分享,可在线阅读,更多相关《RFID课程设计报告枪支管理系统.pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 1 RFID 课程设计报告 名 称 枪支管理系统 专业班级 学 号 姓 名 指导教师 2014.7 2 一、系统功能 1、系统功能总体描述 1.1 枪支管理系统的系统功能概述 枪支管理系统的系统功能概述:系统包括常规模块、枪支登记模块和枪支监控模块。这里的常规模块了为用户提供登陆、验证、注销等以及在串口连接时的打开、关闭串口的一些服务。枪支登记模块为用户提供了查看枪支、添加枪支、取消添加、读取枪支标签等的各种服务;在枪支监控模块中系统有为用户提供了盘点文档,监控文档的服务。下边将对各个模块的功能、组成、实现原理等进行详细的描述和叙述。2、系统功能模块图 开始 界面初始化 常规 枪支登记 枪支
2、监控 设备连接 用户登录 打开串口 关闭串口 注销 重填 登录 取消添加 查看机械 添加枪支 监控文档 盘点文档 读取标签 3 3、系统流程图 否 是 否 是 是 否 是 是 否 否 否 是 填写登陆信息 标签读取 选择串口号 查看枪械 添加成功 是否已登陆 保存 盘点 是否在监控中 监控成功 串口是否打开成功 是否读取标签 添加枪支编号 读取成功 标签是否已经存在 实施监控 盘点成功 是否已盘点 结束 开始 4 二、系统各主要功能模块 (一)、模块功能描述 1、常规模块:这个模块的主要功能是为用户提供登陆和设备连接。此模块包含设备连接模块与用户登录模块。1、设备连接模块:这个子模块的主要功能
3、是为用户提供不同的串口号,并且选择合适的串口号连接设备。这里有选择并打开串口与关闭串口的操作。2、用户登录模块:这个子模块的主要功能是为用户提供了登陆信息的验证、用户注销和信息重填的服务。2、枪支登记模块 这个模块的主要功能是,为用户提供了枪支的添加,以及枪支序号、编号和枪支描述的功能,当然还提供了查看枪械详细信息的服务。这个模块中包含了读取标签、添加枪支、取消添加、查看枪械等操作模块。当设备连接成功之后,我们就可以对枪支的登记进行操作。1、读取标签,这个子模块主要是为用户提供添加枪支与取消添加的服务。2、添加枪支,它的功能是添加标签号、强制编号与枪械的描述。3、枪支监控模块 这个模块为用户提
4、供了枪支文档的盘点与监控的服务。这个模块中包含盘点文档、监控文档两个主要的模块。在没有登陆下就进行操作的同时。通过sb_Check.Items.Add 返回未登录的信息。1、盘点文档,这是枪支监控的子模块,主要是为用户提供枪支文档的盘点、以及文档的清空服务。2、监控文档,这个子模块的主要为用户提供完档的监控,以及监控的停止与监控文档的清空的服务。(二)、模块功能实现流程 5 模块功能实现的流程:系统分为三个大的用户登录模块、枪支登记模块和枪支监控模块。如果要对枪支登记模块和枪支监控模块进行相关的操作的话,那么用户必须是在已登录状态并且已经选择了合适的串口号。那么具体的模块实现流程就是用户首先是
5、要登陆系统,在选择正确的串口号,并且看到提示已经是打开成功了。接下来枪支登记和枪支监控模块是选择状况,在实现方面就是一个待用户选择的语句,因为只要是登陆了打开了串口,后边对两个模块都可以操作。总之就是说登陆之后打开串口,选择操作(包括枪支添加和枪支监控)。(三)、模块中主要功能函数说明 1、常规模块中涉及的主要函数说明:serialport=new SerialPort(portName);serialport.BaudRate=115200;serialport.DataBits=8;打开串口,参数portName为串口号,如COM1;串口采用默认设置:波特率 115200;数据位 8;停止
6、位 1;奇偶校验无。serialport.Open();if(serialport.IsOpen)return AllDone;则串口打开成功,若return SerialPortErr;则串口打开失败。ArrayList arraylist=new ArrayList();取出数据帧;FrameData=new Byte1024;校验取出的数据帧,若结果为是则连接设备成功;反之则连接不成功。privatevoidbtn_Login_Click(objectsender,ventArgs e)来判断,用户是否填写了用户名与密码,并且检验是否正确填写用户名和密码。private void btn
7、_Logout_Click(object sender,EventArgs e)函数判断是否已是登录状态,若是则实现注销操作。若不是,会返回请先登录的 2、登记模块涉及的函数 l_Add.Text 语句,返回在没有没有读取枪支信息就进行操作的提示 请先读取与该枪支对应的标签!;btn_Add.Focus();函数进行枪支信息的读取识别;txt_Name.Focus();函数接受枪支编号的填写。sql=String.Format(INSERT INTO 6 tab_DocTagId,DocName)VALUES(0,1),txt_Snr.Text.Trim(),txt_Name.Text.Tri
8、m();cmd=new OleDbCommand(sql,conn);对枪支的编号与相应的描述添加到数据库中,并保存在数据库中。3、枪支监控模块涉及的函数 Byte value=reader.GetAll(ref TagCount,ref Snrs);对函数返回值的判断,来返回对枪支盘点信息的反馈;lsb_Check.Items.Add(String.Format(检测到0个标签,具体信息如下:,AllDocuments.Count);Names=newArrayList();的语句来返回检测到的相关枪支信息。hrd_Monitor=new Thread(new ThreadStart(Thr
9、eadMonitor);thrd_Monitor.Start()代码的调用运行可以实现对枪支的自动监控。lsb_Monitor.Items.Add(您启动了枪支监控.);函数来返回给用户操作成功的信息。Byte value=reader.GetAll(ref TagCount,ref Snrs);对函数返回的值的判断来确定返回信息是操作成功还是操作失败!然后若是监控结束会通过 lsb_Monitor.Invoke(ShowInfoDel,String.Format(您结束了枪支监控!);返回结束监控的相关信息。三、调试记录及小结 1、系统运行界面及结果 7 串口打开失败 枪支添加模块 提示先登
10、录 8 枪支监控模块 9 提示先登录 2、调试中遇到的问题及解决 这次的调试确实遇到很大的问题,主要就是代码的理解,这是c#代码,理解上确实困难非常大,因为我们之前并没有接触到这种长长的一 c#编写的代码,虽然我学过 C,C+但是由于并不精通,对于复杂的代码还尤为吃力,更何况是见都没见过的代码。这次是用的软件 Microsoft Visual Studio 2012 打开的,软件的效果相当不错,虽然在安装的时候遇到很多问题,比如说安装目录出错,系统又缺少个什么东东啦。打开作业的代码时都提示了好多错误,不过感到庆幸的是,只要点击“是”,软件就会自动把代码出现的问题解决了。代码阅读方面就是模块之间
11、的先后顺序在代码上是怎样实现的,这个我看了好几遍,还去查百度,问同学。这样慢慢的就解决了是先登录还是先打开串口的问题,以及后边的在未登录状态下去操作枪支添加和枪支监控会发生什么,包括它是调用那些函数来判断是否在登陆状态下并且返回一定的消息给用户。3、调试小结 调试并没有遇到太大的困难,就是软件的版本太高,所以打开程序时海得同意下载一些插件。还有就是在看程序不懂时,我利用了一步一步的运行查看到 10 运行的顺序和出来的结果,当然由于我学到的技术并不完美,所以只敢看看每步运行情况和运行结果,不敢去大改代码。当然鉴于对 C#的基本认识,我也只能很轻微的改改看某些函数的功能,完了之后再把它改回来。四、
12、课程设计总结 这次的短学期程序设计课程是我获益良多,主要表现在技术方面和感悟方面。在技术上来说是我懂得了,在某些方面来说C#语言编写的系统界面分布和视觉效果是远比 C 语言写的界面要清楚的清晰。C#语言虽然很难懂,但它确实能给人想要的效果。这点有点像 Java 语言,就从语法的运用和函数调用和 Java 是如出一辙的,只是在运用的领域有所差异罢了。这些天以来呢,确实我学到的更多的不是课程设计上边的,虽然说学到的技术不可与学到的某些道理同日而语!就拿这次的流程图与模块功能图来说吧,第一次我画了,不对,改;第二次画了,不好,再改;第三次画了,不标准,还得改;每次,我都做得很认真。可就是不满意,这就是遗忘的问题,大一刚学到 C 语言的流程图时,画的很好,后来没用了,就慢慢的遗忘了。所以说,知识需要巩固,老掉牙的道理,却很难坚持!我决定在以后的生活中要坚持这些不变的真理。