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:"); }
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);