/// <summary> /// /// </summary> /// <param name="aSender"></param> /// <param name="aEventArgs"></param> public void TerminalLostEvent(object aSender, CardTerminalEventArgs aEventArgs) { Debug.WriteLine(aSender); if (base.InvokeRequired) { object[] vParms = new object[2]; vParms[0] = aSender; vParms[1] = aEventArgs; base.BeginInvoke(new CardTerminalEventHandler(TerminalLostEvent), vParms); } else { if (CardTerminalManager.Singleton.StartedUp) { DisplayText("Lost reader: " + aEventArgs.Slot.CardTerminalName); // CardTerminalManager.Singleton.Shutdown(); // update number of readers CardTerminalManager.Singleton.DelistCardTerminal(aEventArgs.Slot.CardTerminal); // remove from monitored list of readers if (CardTerminalManager.Singleton.SlotCount == 0) { this.m_aPromptLabel.Text = "Connect reader ..."; // start looking for reader insertion // done automatically by the singleton. The singleton raises a "new reader" event if it // finds a new reader. } DisplayNumberOfAvailableReaders(); } } }
/// <summary> /// /// </summary> /// <param name="aSender"></param> /// <param name="aEventArgs"></param> public void InsertedEvent(object aSender, CardTerminalEventArgs aEventArgs) { if (base.InvokeRequired) { object[] vParms = new object[2]; vParms[0] = aSender; vParms[1] = aEventArgs; base.BeginInvoke(new CardTerminalEventHandler(InsertedEvent), vParms); } else { // 01APR2011 // We catch any exceptions during card I/O. This is particularly important // for fuzzy communication conditions. Example: a contactless card that // is not in the field throughout the whole I/O might cause an error within // the unmanaged Windows API code. SmartCardAPI catches this in a general // exception. try { this.AnalyzeCard(aEventArgs.Slot); } catch { //DisplayText("last read failed"); } } }
private void terminalManager_CardRemovedEvent(object aSender, CardTerminalEventArgs aEventArgs) { if (aEventArgs.TerminalName == _currentTerminalName) { ResetData(); //SetText(labelStatus, "Wyjęto kartę"); _terminalManager.StopPolling(); } }
/// <summary> /// /// </summary> /// <param name="aSender"></param> /// <param name="aEventArgs"></param> public void RemovedEvent(object aSender, CardTerminalEventArgs aEventArgs) { Debug.WriteLine(aSender); //29MAR2011 if (base.InvokeRequired) { object[] vParms = new object[2]; vParms[0] = aSender; vParms[1] = aEventArgs; base.BeginInvoke(new CardTerminalEventHandler(RemovedEvent), vParms); } else { this.PromptAnyCard(aEventArgs.Slot.CardTerminalName); } }
/// <summary> /// We add the reader to be monitored. /// </summary> /// <param name="aSender"></param> /// <param name="aEventArgs"></param> public void TerminalFoundEvent(object aSender, CardTerminalEventArgs aEventArgs) { Debug.WriteLine(aSender); if (base.InvokeRequired) { object[] vParms = new object[2]; vParms[0] = aSender; vParms[1] = aEventArgs; base.BeginInvoke(new CardTerminalEventHandler(TerminalFoundEvent), vParms); } else { if (CardTerminalManager.Singleton.StartedUp) { DisplayNumberOfAvailableReaders(); DisplayText("Found reader: " + aEventArgs.Slot.CardTerminalName); this.m_aPromptLabel.Text = "Insert card ..."; } } }