FrmMain.cs 3.6 KB
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace RFID_PuYue_Debug
{
    public partial class FrmMain : Form
    {
        private Asa.RFID.PuYue rfid;
        private bool autoMode;

        public FrmMain()
        {
            InitializeComponent();
        }

        private void SetEnabled(bool enabled)
        {
            BtnInit.Enabled = enabled;
            BtnAutoMode.Enabled = enabled;
            BtnManual.Enabled = enabled;
            if (!autoMode)
            {
                BtnWrite.Enabled = enabled;
                BtnRead.Enabled = enabled;
            }
        }

        private void Rfid_Received(string ip, string uid, string data)
        {
            this.Invoke(new Action(() =>
            {
                TxtRead.AppendText(string.Format("[{0:HH:mm:ss.fff}] UID:{1} NO.{2}\r\n", DateTime.Now, uid, data));
            }));
        }

        private void FrmMain_Load(object sender, EventArgs e)
        {
            string[] letter = new string[26];
            for (int i = 0; i < letter.Length; i++)
                letter[i] = ((char)(65 + i)).ToString();
            CboLetter.Items.AddRange(letter);
            CboLetter.SelectedIndex = 0;
            rfid = new Asa.RFID.PuYue();
            rfid.Received += Rfid_Received;
        }

        private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (rfid.IsConn)
                rfid.Close();
        }

        private void BtnOpen_Click(object sender, EventArgs e)
        {
            if (rfid.IsConn)
                rfid.Close();
            else
            {
                rfid.IP = TxtIP.Text;
                rfid.Open();
            }

            if(rfid.IsConn)
            {
                BtnOpen.Text = "关闭";
                autoMode = rfid.GetAutoMode();
                SetEnabled(true);
                LblMode.Text = "当前模式" + (autoMode ? "自动" : "手动");
            }
            else
            {
                BtnOpen.Text = "打开";
                SetEnabled(false);
            }
        }

        private void BtnInit_Click(object sender, EventArgs e)
        {
            rfid.Init();
            MessageBox.Show("OK");
        }

        private void BtnAutoMode_Click(object sender, EventArgs e)
        {
            rfid.TriggerMode(true);
            BtnWrite.Enabled = false;
            BtnRead.Enabled = false;
            LblMode.Text = "当前模式自动";
            MessageBox.Show(BtnAutoMode.Text);
        }

        private void BtnManual_Click(object sender, EventArgs e)
        {
            rfid.TriggerMode(false);
            BtnWrite.Enabled = true;
            BtnRead.Enabled = true;
            LblMode.Text = "当前模式手动";
            MessageBox.Show(BtnManual.Text);
        }

        private void BtnWrite_Click(object sender, EventArgs e)
        {
            string id = CboLetter.Text + NudNumber.Value;
            bool rtn = rfid.WriteData(id);
            if (rtn)
            {
                LblRfid.Text = "Write:" + id;
                if (ChkAutoAdd.Checked)
                    NudNumber.Value++;
            }
            else
                LblRfid.Text = "Write Error";
        }

        private void BtnRead_Click(object sender, EventArgs e)
        {
            bool rtn = rfid.ReadData(out string id);
            if (rtn)
                LblRfid.Text = "Read:" + id;
            else
                LblRfid.Text = "Read Error";
        }



    }
}