public void Rfid_AvailableState(int id) { RfidEventArgs RfidArgs = new RfidEventArgs(id); _chargeControl.connection_establishment().Returns(true); _rfidreader.RfidHandler += Raise.EventWith(this, RfidArgs); //_rfidreader.RfidHandler += (sender, args) => receivedId = args.id_; _door.Received().Lock(); _chargeControl.Received().charge_control_start(); _disp.Received().PrintStationMsg(_NowChargingMsg); }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen public void RfidDetected(object sender, RfidEventArgs e) { switch (State) { case LadeskabState.Available: // Check for ladeforbindelse if (_chargeControl.connection_establishment()) { _door.Lock(); _chargeControl.charge_control_start(); _oldId = e.id_; string logMsg = $"Skab låst med RFID: { e.id_}"; _log.WriteEntry(logMsg); State = LadeskabState.Locked; _display.PrintStationMsg("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); } else { _display.PrintStationMsg("Din telefon er ikke ordentlig tilsluttet. Prøv igen."); } break; case LadeskabState.DoorOpen: _display.PrintStationMsg("Door is Open"); break; case LadeskabState.Locked: // Check for correct ID if (e.id_ == _oldId) { Console.WriteLine("received id: {0}", e.id_); Console.WriteLine("old id: {0}", _oldId); string logMsg = $"Skab låst op med RFID: { e.id_}"; _chargeControl.charge_control_stop(); _door.Unlock(); _log.WriteEntry(logMsg); _display.PrintStationMsg("Tag din telefon ud af skabet og luk døren"); State = LadeskabState.Available; } else { _display.PrintStationMsg("Forkert RFID tag"); } break; default: // shouldn't happen but might as well be safe. break; } }