1、rfid源代码 gunmanager物联网RFID原理与技术课程设计报告姓名: 滕玲 班级:物联1301 学号:131408119 日期:2016.1.8 目录第一部分:一、 实验目的二、 实验内容三、 基本原理四、 实验步骤五、 实验步骤教程六、 实验总结七、 附录第二部分:一、 实验概述二、 实验目的三、 实验场景及所需仪器四、 实验系统简介4.1 系统组成4.2各组成功能五、 系统功能六、 枪支管理系统的实现6.1连接读写器6.2连接读写器设备6.3枪支登记6.4枪支监控6.5枪支盘点七、 心得体会八、 附录 实验代码using System;using System.Collectio
2、ns.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.OleDb;using System.Threading;using System.Collections;using Microsoft.DirectX;using Microsoft.DirectX.DirectSound;using TagReaderLibrary;namespace GunManager p
3、ublic partial class Form1 : Form Boolean IsLogined = false; Boolean IsConnected = false; Boolean IsChecked = false; Boolean IsMonitor = false; Boolean NeedAlam = false; /Boolean NeedLoad = true; List AllDocuments, Names; Thread thrd_Monitor = null; EventWaitHandle ewh; delegate void ShowInfoDelegate
4、(String str); ShowInfoDelegate ShowInfoDel; Microsoft.DirectX.DirectSound.Device mydevice; Microsoft.DirectX.DirectSound.SecondaryBuffer ScdBuffer; Microsoft.DirectX.DirectSound.BufferDescription desc; ISO15693Reader reader = new ISO15693Reader(); public Form1() InitializeComponent(); private void S
5、howInfo(String str) lsb_Monitor.Items.Add(str); lsb_Monitor.SelectedIndex = lsb_Monitor.Items.Count - 1; lsb_Monitor.ClearSelected(); /public static IntPtr VarPtr(Object MyObject) /获得对象的指针 / / GCHandle MyGCHandle = GCHandle.Alloc(MyObject, GCHandleType.Pinned); / IntPtr ptr = MyGCHandle.AddrOfPinned
6、Object(); / MyGCHandle.Free(); / return ptr; / private void btn_Login_Click(object sender, EventArgs e) if (IsLogined) lbl_Login.Text = 您已经登录!; return; if (txt_UserName.Text.Trim() = ) lbl_Login.Text = 请填写用户名!; return; if (txt_PassWord.Text.Trim() = ) lbl_Login.Text = 请填写密码!; return; OleDbConnection
7、 conn = new OleDbConnection(); conn.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|database.mdb;Persist Security Info=True; conn.Open(); String sql = String.Format(SELECT PassWord FROM tab_User WHERE UserName=0, txt_UserName.Text.Trim(); OleDbCommand cmd = new OleDbCo
8、mmand(sql, conn); OleDbDataReader dr = cmd.ExecuteReader(); if (dr.Read() if (String)drPassWord).Trim() = txt_PassWord.Text.Trim() IsLogined = true; lbl_Login.Text = String.Format(登录成功,尊敬的用户:0,欢迎您!, txt_UserName.Text.Trim(); else lbl_Login.Text = 您的密码错误,请重新填写!; txt_PassWord.Text = ; txt_PassWord.Foc
9、us(); else lbl_Login.Text = 您的用户名不存在,请重新填写!; txt_UserName.Text = ; txt_UserName.Focus(); conn.Close(); conn = null; cmd = null; dr = null; private void btn_Logout_Click(object sender, EventArgs e) if (!IsLogined) lbl_Login.Text = 尚未登录,不能注销!; return; IsLogined = false; lbl_Login.Text = 已注销,继续使用需重新登录!
10、; private void btn_Reset_Click(object sender, EventArgs e) txt_UserName.Text = ; txt_PassWord.Text = ; private void btn_Open_Click(object sender, EventArgs e) if (IsConnected) lbl_Connect.Text = 串口已经打开,不能重复打开串口!; return; if (cmb_SerialPort.SelectedIndex 0) lbl_Connect.Text = 请选择与设备连接的串口地址!; return;
11、if (cmb_Baudrate.SelectedIndex 0) lbl_Add.Text = 读取失败,没有得到任何有效数据。; txt_Snr.Text = ; return; txt_Snr.Text = tagnumber0; /String.Format(0:X21:X22:X23:X24:X25:X26:X27:X2, data0, data1, data2, data3, data4, data5, data6, data7); lbl_Add.Text = 读取成功!; private void btn_Add_Click(object sender, EventArgs e
12、) if (!IsLogined) lbl_Add.Text = 请先登录系统!; return; if (!IsConnected) lbl_Add.Text = 请先打开串口,连接设备!; return; if (txt_Snr.Text.Trim() = ) lbl_Add.Text = 请先读取与该枪支对应的标签!; btn_Add.Focus(); return; if (txt_Name.Text.Trim() = ) lbl_Add.Text = 请填写枪支编号!; txt_Name.Focus(); return; OleDbConnection conn = new OleD
13、bConnection(); conn.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|database.mdb;Persist Security Info=True; conn.Open(); String sql = String.Format(SELECT * FROM tab_Doc WHERE TagId=0, txt_Snr.Text.Trim(); OleDbCommand cmd = new OleDbCommand(sql, conn); OleDbDataReade
14、r dr = cmd.ExecuteReader(); if (dr.Read() lbl_Add.Text = String.Format(枪支0已经使用了该标签,请更换标签后重试!, drDocName); conn.Close(); conn = null; cmd = null; dr = null; return; sql = String.Format(INSERT INTO tab_Doc (TagId, DocName) VALUES (0,1), txt_Snr.Text.Trim(), txt_Name.Text.Trim(); cmd = new OleDbCommand
15、(sql, conn); if (cmd.ExecuteNonQuery() = 1) lbl_Add.Text = 添加成功!; txt_Snr.Text = ; txt_Name.Text = ; else lbl_Add.Text = 添加失败; conn.Close(); conn = null; cmd = null; dr = null; this.tab_DocTableAdapter.Fill(this.databaseDataSet.tab_Doc); private void btn_Cancel_Click(object sender, EventArgs e) txt_
16、Snr.Text = ; txt_Name.Text = ; txt_Other.Text = ; btn_Read.Focus(); private void btn_Delete_Click(object sender, EventArgs e) private void btn_Save_Click(object sender, EventArgs e) tabDocBindingSource.EndEdit(); this.tab_DocTableAdapter.Update(this.databaseDataSet.tab_Doc); private void btn_CancelM
17、odify_Click(object sender, EventArgs e) tabDocBindingSource.CancelEdit(); this.tab_DocTableAdapter.Fill(this.databaseDataSet.tab_Doc); private void btn_Refresh_Click(object sender, EventArgs e) this.tab_DocTableAdapter.Fill(this.databaseDataSet.tab_Doc); private void btn_Check_Click(object sender, E
18、ventArgs e) IsChecked=false; lock (this) if (!IsLogined) lsb_Check.Items.Add(请先登录系统!); return; if (!IsConnected) lsb_Check.Items.Add(请先打开串口,连接设备!); return; if (IsMonitor) lsb_Check.Items.Add(正在监控中,请先结束监控后再盘点!); return; Int32 TagCount = 0; String Snrs = new String0; Int32 value = reader.Inventory(ISO
19、15693Reader.ModulateMethod.ASK, ISO15693Reader.InventoryModel.Multiple, ref TagCount, ref Snrs);/ .GetOne(ref data); /Byte value = reader.GetAllTagsNum(out TagCount, out Snrs); if (value = 0x11) lsb_Check.Items.Add(在天线厂区内没有检测到任何枪支。); return; if (value 0) lsb_Check.Items.Add(String.Format(盘点错误,错误代码为0
20、!, value); return; if (TagCount = 0) lsb_Check.Items.Add(String.Format(盘点结束,没有得到任何枪支信息!, value); return; AllDocuments = new List(); AllDocuments.AddRange(Snrs); lsb_Check.Items.Add(String.Format(检测到0个标签,具体信息如下:, AllDocuments.Count); Names = new List(); OleDbConnection conn = new OleDbConnection(); c
21、onn.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|database.mdb;Persist Security Info=True; conn.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = conn; OleDbDataReader dr; foreach (String obj in AllDocuments) cmd.CommandText = String.Format(SELECT * FRO
22、M tab_Doc WHERE TagId=0, obj); ; dr = cmd.ExecuteReader(); if (dr.Read() lsb_Check.Items.Add(String.Format(0:10| 1, obj, drDocName); Names.Add(drDocName.ToString(); else lsb_Check.Items.Add(String.Format(0:10| 空标签, obj); Names.Add(空标签); dr.Close(); IsChecked = true; private void btn_Clear1_Click(obj
23、ect sender, EventArgs e) lsb_Check.Items.Clear(); private void btn_Monitor_Click(object sender, EventArgs e) if (IsMonitor) return; if (!IsLogined) lsb_Monitor.Items.Add(请先登录系统!); return; if (!IsConnected) lsb_Monitor.Items.Add(请先打开串口,连接设备!); return; if (!IsChecked) lsb_Monitor.Items.Add(请先进行枪支盘点,以确
24、认所有监控对象!); return; IsMonitor = true; if (thrd_Monitor = null) thrd_Monitor = new Thread(new ThreadStart(ThreadMonitor); thrd_Monitor.Start(); lsb_Monitor.Items.Add(您启动了枪支监控.); private void btn_Stop_Click(object sender, EventArgs e) if (!IsMonitor) lsb_Monitor.Items.Add(尚未启动监控!); return; IsMonitor = false; ewh.Reset(); Thread thread = new Thread(new ThreadStart(ThreadReport); thread.Start(); private void btn_Clear2_Click(object sender, EventArgs e) lsb_Moni
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1