FrmMain.cs 4.1 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.IPuYue 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;
            Frm_moduleselect frm_Moduleselect = new Frm_moduleselect();
            frm_Moduleselect.ShowDialog();
            if (frm_Moduleselect.Module == Asa.RFID.ModuleEnum.FR540SP)
                rfid = new Asa.RFID.PuYue_FR540SP();
            else
                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)
        {
            var format = textBox_start.Text;
            var nf = format.TrimEnd('0');
            var num = format.Substring(nf.Length);

            string id = nf + NudNumber.Value.ToString(num);
            bool rtn = rfid.WriteData(Encoding.ASCII.GetBytes(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,20);
            if (rtn)
                LblRfid.Text = "Read:" + id;
            else
                LblRfid.Text = "Read Error";
        }



    }
}