// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(object sender, RfidEventArgs e) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_charger.Connected()) { _door.LockDoor(); _charger.StartCharge(); _oldId = e.Id; _logfile.LogDoorLocked(e.Id); _display.ShowInstruction("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); _state = LadeskabState.Locked; } else { _display.ShowInstruction("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(); _logfile.LogDoorUnlocked(e.Id); _display.ShowInstruction("Tag din telefon ud af skabet og luk døren"); _state = LadeskabState.Available; } else { _display.ShowInstruction("Forkert RFID tag"); } break; } }
private void HandleRfidEvent(object sender, RfidEventArgs e) { RfidDetected(e.Rfid_ID); }
protected virtual void OnRfidDetected(RfidEventArgs e) { RfidEvent?.Invoke(this, e); }