RFID读写---RFID读卡

 代码为上课练习使用的RFID读卡器使用!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO.Ports;
using System.Collections;
using System.Runtime.InteropServices;
using ISO15693DLL;/*引用命名空间!*/
namespace RFID读写
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
           ISO15693DLL.ISO15693Reader reader = new ISO15693DLL.ISO15693Reader();/*创建实例*/

        int a = 0;/*定义一个变量用于后方判断读取成功提示信息框的数量。*/
        public MainWindow()
        {
            InitializeComponent();
            MessageBox.Show("欢迎使用本读卡器 V0.0.1 Beta\n当前仅支持ISO15693卡片读取\nMade by Cjw", "Cjw提示", MessageBoxButton.OK, MessageBoxImage.Information);
        }
        


        private void RB_ck_Click(object sender, RoutedEventArgs e)
        {
            if(RB_ck.IsChecked==true)/*判断串口单选框是否被选定,如果被选定则将按钮内容修改*/
            {
                Button_Open.Content = ("打开串口");
                Button_Close.Content = ("关闭串口");
            }
        }

        private void RB_USB_Checked(object sender, RoutedEventArgs e)/*判断USB单选框是否被选择,如果被选择,则按钮内容修改。*/
        {
            if (RB_USB.IsChecked == true)
            {
                  Button_Open.Content = ("打开USB口");
                  Button_Close.Content = ("关闭USB口");
            }
        }
   
        private void Button_Open_Click(object sender, RoutedEventArgs e)
        {
            /*判断,如果当前选定为串口,因为我没有写串口,所以,报错!*/
            if(Button_Open.Content.ToString()=="打开串口")
            {
                MessageBox.Show("当前暂时不支持串口功能!","Cjw提示",MessageBoxButton.OK,MessageBoxImage.Error);
            }
            else
                /*打开的是USB口,如果返回0x00则为成功,否则失败*/
                if(reader.OpenHIDDevice()==0x00)
                {
                    MessageBox.Show("打开USB口成功","Cjw提示",MessageBoxButton.OK,MessageBoxImage.Information);
                Button_Open.Content = "USB口已打开";
                Button_Open.IsEnabled = false;
                Button_Close.IsEnabled = true;
                Button_Read.IsEnabled = true;
                }
                else
                    MessageBox.Show("打开USB口失败\n请检查数据线是否连接好", "Cjw提示", MessageBoxButton.OK, MessageBoxImage.Error);
        }

        private void Button_Read_Click(object sender, RoutedEventArgs e)
        {   /*定义一个变量用于存放返回卡片的数量*/
            Int32 TagCount=0;
                /*定义一个字符串*/
            String[] TagNumber = new String[1];
            if (reader.Inventory(ModulateMethod.ASK, InventoryModel.Single, ref TagCount, ref TagNumber)==0x00)
            {
                Card_Numberbox.Text=TagNumber[0];
                if (a == 3)
                    Mess.Visibility = Visibility.Visible;
               
                
                 if (Mess.IsChecked==false)
                    MessageBox.Show("读取成功!", "Cjw提示", MessageBoxButton.OK, MessageBoxImage.Information);
                CardId.Items.Add(DateTime.Now.ToLongTimeString().ToString()+"  "+TagNumber[0]);
                a++;
            }
            else
            {
                MessageBox.Show("读取失败!\n请检查卡片是否放稳或卡片协议是否为ISO15693", "Cjw提示", MessageBoxButton.OK, MessageBoxImage.Error);
                Card_Numberbox.Text = ("读取失败!请检查卡片是否放稳!");
            }
        }

        private void Button_Close_Click(object sender, RoutedEventArgs e)
        {
            if(Button_Close.Content.ToString()=="关闭USB口")
             if (reader.CloseHIDDevice()==0x00) /*同理,调用关闭USB口方法,*/
                {
                    MessageBox.Show("关闭USB口成功", "Cjw提示", MessageBoxButton.OK, MessageBoxImage.Information);
                    Button_Open.Content = "打开USB口";
                    Button_Open.IsEnabled = true;
                    Button_Close.IsEnabled = false;
                    Button_Read.IsEnabled = false;
                }
                else
                    MessageBox.Show("关闭USB口失败", "Cjw提示", MessageBoxButton.OK, MessageBoxImage.Error);

        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Clipboard.SetDataObject(Card_Numberbox.Text);
            MessageBox.Show("已成功复制到剪贴板!", "Cjw提示", MessageBoxButton.OK, MessageBoxImage.Information);
        }

    }

}

 

  • 5
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值