public bool ProcessEvent() { ProcessGPIOEvents ev = m_EventQueue.Dequeue(); return(false); }
public ProcessGPIOEvents(ProcessGPIOEvents right) { m_Ident = right.m_Ident; m_GPIOInputs = new List <GPIOObjectProcess>(right.m_GPIOInputs); m_GPIOOutputs = new List <GPIOObjectProcess>(right.m_GPIOOutputs); m_AccessRights = right.m_AccessRights; m_GPIOEnvironmentConnector = right.m_GPIOEnvironmentConnector; m_InputState = right.m_InputState; m_FlankTicks = right.m_FlankTicks; }
/* * public IList<ConfigProcessItem> ProcessItems * { * get * { * return m_ProcessItems; * } * * * } */ public bool createProcessEvents(IList <ProcessGPIOEvents> processGPIOEvents) { processGPIOEvents.Clear(); ProcessGPIOEvents processGPIOEvent; var map = new Dictionary <string, ProcessGPIOEvents>(); foreach (GPIOEnvironmentConnector con in m_GPIOEnvironmentConnectors.EnvironmentConnectors) { var m_InOutBanks = con.ActiveGPIOInOutBanks.InOutBanks; for (int i = 0; i < m_InOutBanks.Count; i++) { GPIOOBank bank = m_InOutBanks[i]; foreach (GPIOObjects OutPuts in bank.GPIOBanks) { foreach (GPIOObject GPIOObj in OutPuts.GPIOs) { if (GPIOObj.IsEnabled && GPIOObj.IsEventEnabled) { string eventName = GPIOObj.EventName; eventName = Regex.Replace(eventName, @"\s", "");//remove with spaces string eventKey; GPIOObject.GPIOTyp type = GPIOObj.GPIOtyp; string[] array = eventName.Split("."); if (array.Length > 1) { eventKey = array[0]; if (array[1].Equals("output", StringComparison.InvariantCultureIgnoreCase)) { type = GPIOObject.GPIOTyp.output; } if (array[1].Equals("input", StringComparison.InvariantCultureIgnoreCase)) { type = GPIOObject.GPIOTyp.input; } } else { eventKey = eventName; } bool containsKey = map.TryGetValue(eventKey, out processGPIOEvent); if (processGPIOEvent == null) { processGPIOEvent = new ProcessGPIOEvents(eventKey); map[eventKey] = processGPIOEvent; //processGPIOEvent.AccessRights = GPIOObj.EventAccessRights; processGPIOEvents.Add(processGPIOEvent); } switch (type) { case GPIOObject.GPIOTyp.output: { //output object determines Access rights // GPIOOProcessItem gPIOOProcessItem = new GPIOOProcessItem(eventKey); GPIOObjectProcess OutObjectProcess = new GPIOObjectProcess(); OutObjectProcess.GPIOEnvironmentConnector = con; OutObjectProcess.GPIOObject = GPIOObj; processGPIOEvent.AccessRights = GPIOObj.EventAccessRights; processGPIOEvent.GPIOOutputs.Add(OutObjectProcess); break; } case GPIOObject.GPIOTyp.input: { // GPIOOProcessItem gPIOOProcessItem = new GPIOOProcessItem(eventKey); GPIOObjectProcess OutObjectProcess = new GPIOObjectProcess(); OutObjectProcess.GPIOEnvironmentConnector = con; OutObjectProcess.GPIOObject = GPIOObj; processGPIOEvent.GPIOInputs.Add(OutObjectProcess); break; } } } } } } } return(processGPIOEvents.Count > 0); }
public bool AddEvent(ProcessGPIOEvents ev) { m_EventQueue.Enqueue(ev); return(true); }
void Update_SEN0188_NotifyChangeState(IPropertySet Outputpropertys) { ProcessGPIOEvents ev; Object Valout; Int16 state = -1; String cmdState = "..."; bool doactFilledSensorId = false; if (Outputpropertys.TryGetValue("FingerPrint.CMDState", out Valout)) { if (Valout != null) { state = (Int16)Valout; } } if (Outputpropertys.TryGetValue("FingerPrint.CMDTextState", out Valout)) { String cmd = Valout as String; if (cmd != null) { cmdState = cmd; } } if (Outputpropertys.TryGetValue("FingerPrint.CMD", out Valout)) { if (Valout != null) { Int32 CMD = (Int32)Valout; if (CMD == Connector_SEN0188_CMDs.getFingerPrintCmd("_doFingerSensorInitialize")) { if (state == 0) { m_Environment.SensorInitialized = true; // m_SensorInitialized = true; doactFilledSensorId = true; } } else if (CMD == Connector_SEN0188_CMDs.getFingerPrintCmd("_doFingerAutoVerifiying")) { if (m_EventQueue.Count > 0) { ev = m_EventQueue.Dequeue(); // get Event } else { return; } if (state == 0) { if (Outputpropertys.TryGetValue("FingerPrint.FingerID", out Valout)) { if (Valout != null) { UInt16 fingerId = (UInt16)Valout; if (Outputpropertys.TryGetValue("FingerPrint.Search_MatchScore", out Valout)) { UInt16 MatchScore = (UInt16)Valout; DBDataSet dataset = m_SEN0188SQLite.getDatabyId(fingerId); if (dataset != null) { FingerEvent eventSet; if (dataset.AccessRights_Bit0 || (dataset.AccessRights & ev.AccessRights) != 0) // Master Bit { ev.UpdateState(0); // update inativ setzen ev.ProcessOutput(); cmdState = String.Format("Permission to Access: {0}", ev.Ident); eventSet = createSensorEvent(dataset.FirstName, dataset.SecondName, MatchScore, fingerId, ev.Ident, state, cmdState); ProcessGPIOEvents evOk = getProcessGPIOEventsByIdent("State_OK"); if (evOk != null) { evOk.ProcessOutput(); } ev.UpdateState(1); // update aktiv setzen } else { cmdState = String.Format("no Permission to Access: {0}", ev.Ident); state = -2; eventSet = createSensorEvent(dataset.FirstName, dataset.SecondName, MatchScore, fingerId, ev.Ident, state, cmdState); ProcessGPIOEvents evNoPermiss = getProcessGPIOEventsByIdent("State_NoPermiss"); if (evNoPermiss != null) { evNoPermiss.UpdateState(0); // update inativ setzen evNoPermiss.ProcessOutput(); evNoPermiss.UpdateState(1); // update aktiv setzen } } bool insert = m_FingertEventDatabase.InsertFingerEvent(eventSet); NotifyEvent?.Invoke(this, eventSet); } } } } } else { FingerEvent eventSet = createSensorEvent("John", "Doe", -1, -1, ev.Ident, state, cmdState); ProcessGPIOEvents evStateError = getProcessGPIOEventsByIdent("State_Error"); if (evStateError != null) { evStateError.UpdateState(0); // update inativ setzen evStateError.ProcessOutput(); evStateError.UpdateState(1); // update aktiv setzen } ; bool insert = m_FingertEventDatabase.InsertFingerEvent(eventSet); NotifyEvent?.Invoke(this, eventSet); } } } } if (doactFilledSensorId) { // m_SensorId.Clear(); if (Outputpropertys.TryGetValue("FingerPrint.SensorID", out Valout)) { if (Valout != null) { byte[] array = Valout as byte[]; if (array != null) { m_SensorID = System.Text.Encoding.UTF8.GetString(array, 0, array.Length); } } } } }
async private void GPIOConnector_ChangeGPIOs(object sender, IPropertySet propertys) { await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { // your code should be here m_GPIOEnvironmentConnectors.ProcessPropertysFromGPIOConnector(propertys); var con = m_GPIOEnvironmentConnectors.getGPIOOConnectorByOutputPropertySet(propertys); if (con == null) { return; } if (m_ProcessGPIOEvents == null) { return; } for (int i = 0; i < m_ProcessGPIOEvents.Count; i++) { ProcessGPIOEvents item = m_ProcessGPIOEvents[i]; if (item.InputActiv()) { removeOldEvents(); // ältere löschen, welche nach 5 sec. nicht beantwortet waren if ((item.AccessRights > 0) && m_Environment.ConnectorSEN0188Enable) { if (m_Environment.SensorConnecorInitialized) { ProcessGPIOEvents Processitem = new ProcessGPIOEvents(item); m_EventQueue.Enqueue(Processitem); SensorCMDs.VerifyFingerId(m_Environment.SensorInputServiceConnectorConfig); } else { string cmdState = "Fingerprint Connector not initialized!"; int state = -1; FingerEvent eventSet = createSensorEvent("John", "Doe", -1, -1, item.Ident, state, cmdState); System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); eventSet.SensorId = enc.GetBytes(m_SensorID); bool insert = m_FingertEventDatabase.InsertFingerEvent(eventSet); NotifyEvent?.Invoke(this, eventSet); } } else { item.UpdateState(0); item.ProcessOutput(); item.UpdateState(1); int state = -1; string cmdState = "no FingerSensor used"; FingerEvent eventSet = createSensorEvent("John", "Doe", -1, -1, item.Ident, state, cmdState); System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); eventSet.SensorId = enc.GetBytes(m_SensorID); bool insert = m_FingertEventDatabase.InsertFingerEvent(eventSet); NotifyEvent?.Invoke(this, eventSet); } } } }); }