using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace RFID_Debug
{
    public partial class Form1 : Form
    {
        private Asa.RFID.HFReader1 read;

        public Form1()
        {
            InitializeComponent();
        }

        private string HexBuff(byte[] buff)
        {
            string s = "";
            if (buff == null) return s;

            for (int i = 0; i < buff.Length; i++)
                s += buff[i].ToString("X2") + " ";
            return s;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            read = new Asa.RFID.HFReader1("RollingLogFileAppender");
            //read.Received += Read_Received;
            read.ReceiveBuffer += Read_ReceiveBuffer;
        }

        private void Read_ReceiveBuffer(string ip, byte[] buffer)
        {
            Invoke(new Action(() => { textBox3.Text = HexBuff(buffer); }));
        }

        private void Read_Log(string ip, string log)
        {
            string s = ip + "  " + log + "\r\n";
            Invoke(new Action(() =>
            {
                textBox1.AppendText(s);
                textBox1.ScrollToCaret();
            }));
        }

        private void Read_Received(string ip, string id)
        {
            string s = ip + "  " + id + "\r\n";
            Invoke(new Action(() =>
            {
                textBox1.AppendText(s);
                textBox1.ScrollToCaret();
            }));
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (int.TryParse(textBox2.Text, out int result))
                read.Start(result);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            read.Stop();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            read.Clear("192.168.210.114");
        }
    }
}