// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(object sender, RfidDetectedEventArgs eventArgs) { int id = eventArgs.id; switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_charger.IsConnected()) { _door.LockDoor(); _charger.StartCharge(); _oldId = id; using (var writer = File.AppendText(logFile)) { writer.WriteLine(DateTime.Now + ": Skab låst med RFID: {0}", id); } _display.Display("Ladeskab optaget"); Console.WriteLine("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); _state = LadeskabState.Locked; } else { _display.Display("Tilslutningsfejl"); Console.WriteLine("Din telefon er ikke ordentlig tilsluttet. Prøv igen."); } break; case LadeskabState.DoorOpen: // Ignore break; case LadeskabState.Locked: // Check for correct ID if (id == _oldId) { _charger.StopCharge(); _door.UnlockDoor(); using (var writer = File.AppendText(logFile)) { writer.WriteLine(DateTime.Now + ": Skab låst op med RFID: {0}", id); } _display.Display("Fjern telefon"); Console.WriteLine("Tag din telefon ud af skabet og luk døren"); _state = LadeskabState.Available; } else { _display.Display("RFID fejl"); Console.WriteLine("Forkert RFID tag"); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetectedHandler(object sender, RfidDetectedEventArgs arg) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_chargeControl.IsConnected()) { _door.LockDoor(); _chargeControl.StartCharge(); _oldId = arg.Id; _log.logWrite(1, _oldId); _display.CloseDoorMsg(); _state = LadeskabState.Locked; } else { _display.CloseDoorErrorMsg(); } break; case LadeskabState.DoorOpen: // Ignore break; case LadeskabState.Locked: // Check for correct ID if (arg.Id == _oldId) { _chargeControl.StopCharge(); _door.UnlockDoor(); _log.logWrite(2, _oldId); _display.UnlockDoorMsg(); _state = LadeskabState.Available; } else { _display.UnlockDoorErrorMsg(); } break; } }