private void BtnTest_Click(object sender, EventArgs e) { string errMsg = string.Empty; try { prnOps = new PrinterOps(); if (!CheckForPrinter(ref errMsg)) { throw new ArgumentException(errMsg); } if (!prnOps.OpenConnection()) { throw new ArgumentException(prnOps.printerError); } string alarmDescr = string.Empty; if (prnOps.IsAlarmHandling(out alarmDescr)) { errMsg = "Alarm: " + alarmDescr + " : cannot run test"; throw new Exception(errMsg); } if (string.IsNullOrEmpty(cardSlot)) { throw new Exception("No reader selected"); } scReader = new ReaderLib(); switch (cboCardType.Text) { case "MIFARE CLASSIC": case "MIFARE ULTRALIGHT": case "MIFARE DESFIRE": if (cardSlot.Contains("Elatec")) { if (!scReader.SetRFHF(virtualSlot, true)) { throw new Exception(scReader.ReaderError); } } RunTest(out errMsg); if (!scReader.SetRFHF(virtualSlot, false)) { throw new Exception(scReader.ReaderError); } if (!string.IsNullOrEmpty(errMsg)) { throw new Exception(errMsg); } break; case "PROX": case "HITAG": if (cardSlot.Contains("Elatec")) { if (!scReader.SetRFLF(virtualSlot, true)) { throw new Exception(scReader.ReaderError); } } RunTest(out errMsg); if (!scReader.SetRFLF(virtualSlot, false)) { throw new Exception(scReader.ReaderError); } if (!string.IsNullOrEmpty(errMsg)) { throw new Exception(errMsg); } break; case "AT88SC0104C": RunTest(out errMsg); if (!string.IsNullOrEmpty(errMsg)) { throw new Exception(errMsg); } break; case "SLEXX42": case "SLEXX28": RunTest(out errMsg); if (!string.IsNullOrEmpty(errMsg)) { throw new Exception(errMsg); } break; default: throw new Exception("Unknown Test"); } } catch (Exception ex) { MessageBox.Show("Test Click Error : " + ex.Message); } finally { scReader = null; if (prnOps != null) { prnOps.CloseConnection(); prnOps = null; } } }