Beispiel #1
0
        private void buttonGetUid_Click(object sender, EventArgs e)
        {
            if (serialDevice < 0)
            {
                MessageBox.Show("请先打开串口");
                return;
            }
            clearOpResult();

            Byte[]   buffer    = new Byte[255];
            ushort[] addrArray = new ushort[2];

            ISO14443A_UID pUid = new ISO14443A_UID();

            pUid.uid = new Byte[hfReaderDll.HFREADER_ISO14443A_LEN_MAX_UID];

            HFREADER_OPRESULT pResult = new HFREADER_OPRESULT();

            Byte[] sendBuffer = new Byte[1024];
            Byte[] rcvBuffer  = new Byte[1024];

            if (!GetDeviceAddr(addrArray))
            {
                return;
            }

            if (GetHexInput(this.textBoxTagUid.Text, pUid.uid, this.textBoxTagUid.Text.Length / 2) <= 0)
            {
                return;
            }


            while (bOperatingSerial)
            {
                ;
            }
            bOperatingSerial = true;
            int rlt = hfReaderDll.emulNfcType2GetUID(serialDevice, addrArray[0], addrArray[1], ref pUid, ref pResult, sendBuffer, rcvBuffer);

            bOperatingSerial = false;
            if (rlt > 0)
            {
                DisplayOpResult(ref pResult);

                if (pResult.flag == 0)
                {
                    int    i = 0;
                    String s = "";
                    this.textBoxTagType.Text = pUid.type.ToString("X").PadLeft(4, '0');
                    this.textBoxTagSak.Text  = pUid.sak.ToString("X").PadLeft(2, '0');
                    for (i = 0; i < pUid.len; i++)
                    {
                        s += pUid.uid[i].ToString("X").PadLeft(2, '0');
                    }
                    this.textBoxTagUid.Text = s;
                }
            }
            DisplayRcvInf(rcvBuffer, "获取UID返回:");
            DisplaySendInf(sendBuffer, "获取UID:");
        }
Beispiel #2
0
        private void buttonSetUid_Click(object sender, EventArgs e)
        {
            if (serialDevice < 0)
            {
                MessageBox.Show("请先打开串口");
                return;
            }
            clearOpResult();

            Byte[]   buffer    = new Byte[255];
            ushort[] addrArray = new ushort[2];

            ISO14443A_UID pUid = new ISO14443A_UID();

            pUid.uid = new Byte[hfReaderDll.HFREADER_ISO14443A_LEN_MAX_UID];

            HFREADER_OPRESULT pResult = new HFREADER_OPRESULT();

            Byte[] sendBuffer = new Byte[1024];
            Byte[] rcvBuffer  = new Byte[1024];

            if (!GetDeviceAddr(addrArray))
            {
                return;
            }

            if (GetHexInput(this.textBoxTagUid.Text, pUid.uid, this.textBoxTagUid.Text.Length / 2) <= 0)
            {
                return;
            }
            pUid.len  = (uint)(this.textBoxTagUid.Text.Length / 2);
            pUid.type = Convert.ToUInt16(this.textBoxTagType.Text, 16);
            pUid.sak  = Convert.ToByte(this.textBoxTagSak.Text, 16);


            while (bOperatingSerial)
            {
                ;
            }
            bOperatingSerial = true;
            int rlt = hfReaderDll.emulNfcType2SetUID(serialDevice, addrArray[0], addrArray[1], ref pUid, ref pResult, sendBuffer, rcvBuffer);

            bOperatingSerial = false;
            if (rlt > 0)
            {
                DisplayOpResult(ref pResult);
            }
            DisplayRcvInf(rcvBuffer, "设置UID返回:");
            DisplaySendInf(sendBuffer, "设置UID:");
        }
 public static extern int emulNfcType2GetUID(int h, ushort srcAddr, ushort targetAddr, ref ISO14443A_UID pUid, ref HFREADER_OPRESULT pResult, Byte[] pTxFrame, Byte[] pRxFrame);