private void verifyBTN_Click(object sender, EventArgs e) { if (GutenTAGTask != GutenTAGTaskEnum.Idle) { return; } GutenTAGTask = GutenTAGTaskEnum.Verify; }
private void readBTN_Click(object sender, EventArgs e) { if (GutenTAGTask != GutenTAGTaskEnum.Idle) { return; } GutenTAGTask = GutenTAGTaskEnum.Read; }
private void writeBTN_Click(object sender, EventArgs e) { if (GutenTAGTask != GutenTAGTaskEnum.Idle) { return; } GutenTAGTask = GutenTAGTaskEnum.Write; }
private void resetOTPBTN_Click(object sender, EventArgs e) { if (MessageBox.Show("ARE YOU SURE TO RESET OTP AREA?", "RESET OTP?", MessageBoxButtons.OKCancel) != DialogResult.OK) { return; } if (GutenTAGTask != GutenTAGTaskEnum.Idle) { return; } GutenTAGTask = GutenTAGTaskEnum.ResetOTP; }
private void GutenTAGThread() { while (runGutenTAGThread) { try { if (!isOpen) { GutenTAGOpen(); if (isOpen) { writeRTB(richTextBox1, "GutenTAG Connected!\r\nSearching for TAG...\r\n"); } } if (isOpen) { switch (GutenTAGTask) { case GutenTAGTaskEnum.Idle: bool nowTagPresent = isTagPresent(); if (wasTagPresent) { if (!nowTagPresent) { writeRTB(richTextBox1, "TAG Lost!\r\n"); enableButtons(false); } } else { if (nowTagPresent) { writeRTB(richTextBox1, "TAG Found!\r\n"); writeRTB(richTextBox1, "TAG UID = 0x" + BitConverter.ToString(getTagUID()).Replace("-", "") + "\r\n"); writeRTB(richTextBox1, "TAG SYS = 0x" + BitConverter.ToString(getTagBlock(255)).Replace("-", "") + "\r\n"); enableButtons(true); } } wasTagPresent = nowTagPresent; break; case GutenTAGTaskEnum.Read: enableButtons(false); writeRTB(richTextBox1, "Reading TAG...\r\n"); for (byte i = 0; i < 128; i++) { Array.Copy(getTagBlock(i), 0, TagMemory, i * 4, 4); } writeRTB(richTextBox1, "Done!\r\n"); GutenTAGTask = GutenTAGTaskEnum.Idle; enableButtons(true); break; case GutenTAGTaskEnum.Write: enableButtons(false); writeRTB(richTextBox1, "Writing TAG...\r\n"); for (byte i = 0; i < 128; i++) { byte[] buffer = new byte[4]; Array.Copy(TagMemory, i * 4, buffer, 0, 4); writeTagBlock(i, buffer); } writeRTB(richTextBox1, "Done!\r\n"); GutenTAGTask = GutenTAGTaskEnum.Idle; enableButtons(true); break; case GutenTAGTaskEnum.Verify: enableButtons(false); writeRTB(richTextBox1, "Verifying TAG...\r\n"); for (byte i = 0; i < 128; i++) { byte[] block = getTagBlock(i); for (int j = 0; j < 4; j++) { if (TagMemory[i * 4 + j] != block[j]) { GutenTAGTask = GutenTAGTaskEnum.Idle; break; } } if (GutenTAGTask == GutenTAGTaskEnum.Idle) { break; } } if (GutenTAGTask == GutenTAGTaskEnum.Idle) { writeRTB(richTextBox1, "Verify FAIL!\r\n"); } else { writeRTB(richTextBox1, "Verify OK!\r\n"); } GutenTAGTask = GutenTAGTaskEnum.Idle; enableButtons(true); break; case GutenTAGTaskEnum.ResetOTP: enableButtons(false); writeRTB(richTextBox1, "OTP Area Reset...\r\n"); uint counter = BitConverter.ToUInt32(getTagBlock(0x06), 0); if (MessageBox.Show((counter >> 21).ToString() + " operations left. Are you sure?", "Confirm OTP Erase", MessageBoxButtons.OKCancel) == DialogResult.OK) { writeTagBlock(0x06, BitConverter.GetBytes(counter - 0x200000)); for (byte i = 0; i < 6; i++) { writeTagBlock(i, new byte[] { 0xFF, 0xFF, 0xFF, 0xFF }); } writeRTB(richTextBox1, "Done!\r\n"); } else { writeRTB(richTextBox1, "Cancelled.\r\n"); } GutenTAGTask = GutenTAGTaskEnum.Idle; enableButtons(true); break; } } } catch (Exception ex) { writeRTB(richTextBox1, "ERROR: " + ex.Message + "\r\n"); GutenTAGClose(); wasTagPresent = false; } } }