//Triggerhandler for RfidReader private void RfidDetected(object sender, RfidEventArgs e) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_charger.IsConnected()) { _door.LockDoor(); _charger.StartCharge(); _oldId = e.Id; _log.LogDoorLocked(e.Id); _display.ShowMessage("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); _state = LadeskabState.Locked; } else { _display.ShowMessage("Din telefon er ikke ordentlig tilsluttet. Prøv igen."); } break; case LadeskabState.DoorOpen: // Ignore break; case LadeskabState.Locked: // Check for correct ID if (e.Id == _oldId) { _charger.StopCharge(); _door.UnlockDoor(); _log.LogDoorUnlocked(e.Id); _display.ShowMessage("Tag din telefon ud af skabet og luk døren"); _state = LadeskabState.Available; } else { _display.ShowMessage("Forkert RFID tag"); } break; } }
private void OnNewRfid(RfidEventArgs e) { RfidEvent?.Invoke(this, e); }