public void StopChargingICalled() { //Act uut_.StopCharge(); //Assert usbCharger_.Received(1).StopCharge(); }
private void RfidDetected(int id) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_charger.IsConnected()) { _door.LockDoor(); _charger.StartCharge(); _oldId = id; _logFile.LockDoorLog(id); _display.ShowMessageOccupiedLocker(); _state = LadeskabState.Locked; } else { _display.ShowMessageConnectionIsFailed(); } break; case LadeskabState.DoorOpen: // Ignore DoorOpened(); _state = LadeskabState.Available; break; case LadeskabState.Locked: // Check for correct ID if (id == _oldId) { _charger.StopCharge(); _door.UnlockDoor(); _logFile.UnLockDoorLog(id); _display.ShowMessageCorrectId(); _state = LadeskabState.Available; } else { _display.ShowMessageWrongId(); } break; case LadeskabState.DoorClosed: DoorClosed(); // _state = LadeskabState.Available; break; } }
// 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; } }
public void ChargeControl_StopCharge_Calls_UsbCharger_StopCharge() { //Arrange //Act _chargeControl.StopCharge(); //Assert _usbCharger.Received(1).StopCharge(); }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(int id) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_chargeControl.Connected) { _door.LockDoor(); //_charger.StartCharge(); _chargeControl.StartCharge(); _oldId = id; _log.LockwriteToFile(id); _display.UnlockWithID(); _state = LadeskabState.Locked; } else { _display.NoConnection(); } break; case LadeskabState.DoorOpen: // Ignore break; case LadeskabState.Locked: // Check for correct ID if (id == _oldId) { _oldId = id; //_charger.StopCharge(); _chargeControl.StopCharge(); _door.UnlockDoor(); _log.UnlockWriteToFile(id); _display.RemovePhone(); _state = LadeskabState.Available; } else { _display.WrongID(); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(int 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.print("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); _state = LadeskabState.Locked; } else { _display.print("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.print("Åben lågen og tag din telefon."); _state = LadeskabState.Available; } else { _display.print("Forkert RFID tag."); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(object sender, int id) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (!_chargeControl.IsConnected()) { _display.ShowConnectionError(); } else { try { _chargeControl.StartCharge(); _door.Lock(); _oldId = id; _logger.LogDoorLocked(id); _display.ShowChargingLockerOccupied(); _state = LadeskabState.Locked; } catch (NotConnectedException ex) { _display.ShowConnectionError(); } } break; case LadeskabState.DoorOpen: // Ignore break; case LadeskabState.Locked: // Check for correct ID bool idIsOk = CheckId(_oldId, id); if (idIsOk) { _chargeControl.StopCharge(); _door.Unlock(); _logger.LogDoorUnlocked(id); _display.ShowRemoveDevice(); _state = LadeskabState.Available; } else { _display.ShowRfidError(); } break; } }
public void RfidDetected(int id) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_chargeControl.IsConnected()) { _door.LockDoor(); _oldId = id; _logfile.LogDoorLocked(id); _display.Display1Message("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); _state = LadeskabState.Locked; _chargeControl.StartCharge(); } else { _display.Display1Message("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) { _chargeControl.StopCharge(); _door.UnlockDoor(); _logfile.LogDoorUnlocked(id); _display.Display1Message("Tag din telefon ud af skabet og luk døren"); _state = LadeskabState.Available; } else { _display.Display1Message("Forkert RFID tag"); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(object sender, EventArg.RFIDEventArgs e) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_charger.IsConnected()) { _door.LockDoor(); _charger.StartCharge(); _oldId = e.id; _log.LogWhenDoorLock(e.id); _display.DisplayMsg(MessageType.PhoneCharging); _display.DisplayMsg(MessageType.RfidRead); //Console.WriteLine("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); _state = LadeskabState.Locked; _log.LogWhenDoorLock(e.id); } else { _display.DisplayMsg(MessageType.ConnectionError); //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 (e.id == _oldId) { _charger.StopCharge(); _door.UnlockDoor(); _log.LogWhenDoorUnlock(e.id); _display.DisplayMsg(MessageType.DisconnectPhone); //Console.WriteLine("Tag din telefon ud af skabet og luk døren"); _state = LadeskabState.Available; } else { _display.DisplayMsg(MessageType.RfidWrong); //Console.WriteLine("Forkert RFID tag"); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(int id) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_chargeControl.isConnected()) { _Door.LockDoor(); _chargeControl.StartCharge(); _oldId = id; using (var writer = File.AppendText(logFile)) { writer.WriteLine(DateTime.Now.ToLongDateString() + ": Skab låst med RFID: {0}", id); } _Display.displayCommands("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); _state = LadeskabState.Locked; } else { _Display.displayCommands("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) { _chargeControl.StopCharge(); _Door.UnlockDoor(); using (var writer = File.AppendText(logFile)) { writer.WriteLine(DateTime.Now.ToLongDateString() + ": Skab låst op med RFID: " + id.ToString()); } _Display.displayCommands("Tag din telefon ud af skabet og luk døren"); _state = LadeskabState.Available; } else { _Display.displayCommands("Forkert RFID tag"); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(int 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.DisplayChargingDoorLocked(); _state = LadeskabState.Locked; } else { _display.DisplayConnectionError(); } break; /*case LadeskabState.DoorOpen: * // Ignore * break;*/ case LadeskabState.Locked: // Check for correct ID if (CheckId(id)) { _charger.StopCharge(); _door.UnlockDoor(); using (var writer = File.AppendText(logFile)) { writer.WriteLine(DateTime.Now + ": Skab låst op med RFID: {0}", id); } _display.DisplayRemoveTelephone(); _state = LadeskabState.Available; } else { _display.DisplayRfidError(); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(int id) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_chargeControl.IsConnected() && _doorOpenState == false) { _door.LockDoor(); _chargeControl.StartCharge(); _oldId = id; _filelogger.LogDoorLocked(id); _consoleWriter.LockedMessage(); //Skriver at skabet er låst _state = LadeskabState.Locked; _stationState = (int)_state; } else { _consoleWriter.NotConnectedMessage(); // Mobilen sidder ikke ordenligt i lader besked } break; case LadeskabState.DoorOpen: _consoleWriter.CloseDoorMessage(); break; case LadeskabState.Locked: // Check for correct ID if (id == _oldId) { _chargeControl.StopCharge(); _door.UnlockDoor(); _filelogger.LogDoorUnlocked(id); _consoleWriter.UnlockedMessage(); // Døren er oplåst besked _state = LadeskabState.Available; _stationState = (int)_state; } else { _consoleWriter.WrongRFid(); //Forkert RF-id besked } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen public void RfidDetected(int id) { if (id < 0) { _logger.log("Id was negative", id); return; } switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_charger.Connected) { _door.LockDoor(); _charger.StartCharge(); _oldId = id; _logger.log(": Skab låst op med RFID: {0}", id); Console.WriteLine("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); _state = LadeskabState.Locked; } else { 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(); _logger.log(": Skab låst op med RFID: {0}", id); Console.WriteLine("Tag din telefon ud af skabet og luk døren"); _state = LadeskabState.Available; } else { Console.WriteLine("Forkert RFID tag"); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen public void RfidDetected(object sender, RFIDEventArgs e) { switch (_state) { case ChargingCabinetState.Available: // Check for ladeforbindelse if (_chargeControl.IsConnected()) { _door.LockDoor(); _oldId = e.RFID; _logfile.WriteToLogLocked(_oldId); _display.ChargingCabinetTaken(); _state = ChargingCabinetState.Locked; _chargeControl.StartCharge(); } else { _display.ConnectionFail(); } break; case ChargingCabinetState.DoorOpen: { _display.CloseDoor(); } break; case ChargingCabinetState.Locked: // Check for correct ID if (e.RFID == _oldId) { _chargeControl.StopCharge(); _door.UnlockDoor(); _logfile.WriteToLogUnlocked(_oldId); _display.RemovePhone(); _state = ChargingCabinetState.Available; } else { _display.RFIDFail(); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen //Metode til når man scanner id-kortet på Rfid-readeren private void RfidDetected(int id) { switch (_state) { case ChargeBoxState.Available: // Check for ladeforbindelse if (_charger.GetConnected()) { _doorSimulator.LockDoor(); _charger.StartCharge(); _oldId = id; _fileLog.LogDoorLocked(id); _display.Print("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); _state = ChargeBoxState.Locked; } else { _display.Print("Din telefon er ikke ordentlig tilsluttet. Prøv igen."); } break; case ChargeBoxState.DoorOpen: // Ignore break; case ChargeBoxState.Locked: // Check for correct ID if (id == _oldId) { _charger.StopCharge(); _doorSimulator.UnlockDoor(); _fileLog.LogDoorUnlocked(id); _display.Print("Tag din telefon ud af skabet og luk døren"); _state = ChargeBoxState.Available; } else { _display.Print("Forkert RFID tag"); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(int id) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse //_chargeControl.IsConnected();//returnere en boolean //if (_charger.Connected) //Burde det ikke være _chargeControl.IsConnected? if (_chargeControl.IsConnected()) { _door.LockDoor("Døren er lukket"); //_charger.StartCharge(); //Burde det ikke være _ChargeControl.StartCharge() - Kia _chargeControl.StartCharge(); _oldId = id; _log.LogLadeskabAvailable(id); Console.WriteLine("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); _state = LadeskabState.Locked; } else { 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(); _chargeControl.StopCharge(); _door.UnlockDoor("Døren er åbnet"); _log.LogLadeskabLocked(id); Console.WriteLine("Tag din telefon ud af skabet og luk døren"); _state = LadeskabState.Available; } else { //Fejl, skulle det ikke være display som udskriver alt? og hvis, evt. ændre de andre steder //Console.WriteLine("Forkert RFID tag"); _display.writeDisplay("Forkert RFID tag"); } break; } }
public void ChargeControl_StopCharge_ConnectedIsTrue_stopChargeIsCalled() { //Arrange _charger = Substitute.For <ICharger>(); _display = Substitute.For <IDisplay>(); _uut = new ChargeControl(_charger, _display); _charger.Connected = true; //Act _uut.StopCharge(); //Assert _charger.Received().StopCharge(); }
//Event Handlers: private void RfidReader_TagReadEvent(object sender, EventArgsClasses.RfidEventArgs e) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_chargeControl.IsConnected()) { _door.LockDoor(); _chargeControl.StartCharge(); _oldId = e.Id; _display.CabinetOccupied(); _state = LadeskabState.Locked; _logFile.DoorLocked(e.Id); } else { //Display shows connection error _display.ConnectionError(); } break; case LadeskabState.DoorOpen: // Ignore break; case LadeskabState.Locked: // Check for correct ID if (e.Id == _oldId) { _chargeControl.StopCharge(); _door.UnlockDoor(); _logFile.DoorUnlocked(e.Id); // Display shows remove phone - message _display.RemovePhone(); _state = LadeskabState.Available; } else { //Display shows RFID-Error _display.RFIDError(); } break; } }
private void RfidDetected(int id) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (ChargerIsConnected) { _door.LockDoor(); _charger.StartCharge(); _oldId = id; _logFile.LogDoorLocked(_oldId); _display.PrintStationLockedUseID(); _state = LadeskabState.Locked; } else { _display.PrintConnectionFail(); } break; case LadeskabState.DoorOpen: // Ignore _display.PrintDoorIsOpen(); break; case LadeskabState.Locked: // Check for correct ID if (id == _oldId) { _charger.StopCharge(); _door.UnlockDoor(); _logFile.LogDoorUnlocked(_oldId); _display.PrintTakePhoneCloseDoor(); _oldId = 0; _state = LadeskabState.Available; } else { _display.PrintWrongRFidTag(); _display.PrintStationOccupied(); } break; } }
//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; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(int id) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_charger.Connected) { _door.LockDoor(); _charger.StartCharge(); _oldId = id; _logger.WriteToLog("Locked with RFID: " + id); _display.NotifyStation("The locker is locked and your phone is charging. Use your RFID tag to unlock it."); _state = LadeskabState.Locked; } else { _display.NotifyStation("Your phone is not connected properly. Try again"); } break; case LadeskabState.DoorOpen: // Ignore break; case LadeskabState.Locked: // Check for correct ID if (id == _oldId) { _charger.StopCharge(); _door.UnlockDoor(); _logger.WriteToLog("Locker unlocked with RFID: " + id); _display.NotifyStation("Grab your phone and close the door"); _state = LadeskabState.Available; } else { _display.NotifyStation("Wrong 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; } }
private void CheckId(int OldId, int Id) { if (Id == OldId) { _charger.StopCharge(); _door.UnlockDoor(); _logFileSimulator.LogDoorUnlocked(Id); _displaySimulator.ShowTakePhoneAndCloseDoorMessage(); _state = LadeskabState.Available; } else { _displaySimulator.ShowRfidErrorMessage(); } }
private void HandleRfidDetectedEvent(object sender, KeySwipedEventArgs e) { ReadRFIDTag = e.Id; switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_charger.Connected()) { _door.LockDoor(); _charger.StartCharge(); _oldId = ReadRFIDTag; _logfile.Log($"{DateTime.Now.ToString()}: {ReadRFIDTag} locked the door."); _display.Print("Door was locked using key."); _state = LadeskabState.Locked; } else { _display.Print("Connect your phone first!"); } break; case LadeskabState.DoorOpen: _display.Print("Please close door before swiping!"); break; case LadeskabState.Locked: // Check for correct ID if (ReadRFIDTag == _oldId) { _charger.StopCharge(); _door.UnlockDoor(); _logfile.Log($"{DateTime.Now.ToString()}: {ReadRFIDTag} unlocked the door."); _display.Print("Disconnect phone"); _state = LadeskabState.Available; } else { _display.Print(" is an incorrect key."); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(int id) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_chargeControl.IsConnected()) { _door.LockDoor(); _chargeControl.StartCharge(); _oldId = id; _logFile.LogDoorLocked(id); _display.ShowOccupied(); _state = LadeskabState.Locked; } else { _display.ShowConnectionError(); } break; //case LadeskabState.DoorOpen: // // Ignore // break; case LadeskabState.Locked: // Check for correct ID if (CheckId(_oldId, id)) { _chargeControl.StopCharge(); _door.UnlockDoor(); _logFile.LogDoorUnlocked(id); _display.ShowRemovePhone(); _state = LadeskabState.Available; } else { _display.ShowRfidError(); } break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen public void RfidDetected(string id) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_chargeControl.Connected) { _door.LockDoor(); _chargeControl.StartCharge(); _oldId = id; _log.DoorLocked(id); _display.PrintChargingOn(); _state = LadeskabState.Locked; } else { _display.PrintConnectionError(); } break; case LadeskabState.DoorOpen: // Ignore break; case LadeskabState.Locked: // Check for correct ID if (id == _oldId) { _chargeControl.StopCharge(); _door.UnlockDoor(); _log.DoorUnlocked(id); _display.PrintRemoveDevice(); _state = LadeskabState.Available; } else { _display.PrintRfidFail(); } break; } }
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; filelog.LogFile("Skab låst med RFID: " + e.Id); _state = LadeskabState.Locked; _display.UpdateUserMsg("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."); } else { _display.UpdateUserMsg("Din telefon er ikke ordentlig tilsluttet. Prøv igen."); } break; case LadeskabState.DoorOpen: _display.UpdateUserMsg("Dør er allerede åbnet med et RF-ID"); break; case LadeskabState.Locked: // Check for correct ID if (e.Id == _oldId) { _charger.StopCharge(); _door.UnlockDoor(); filelog.LogFile("Skab låst op med RFID: " + e.Id); _display.UpdateUserMsg("Tag din telefon ud af skabet og luk døren"); _state = LadeskabState.Available; } else { _display.UpdateUserMsg("Forkert RFID tag"); } break; } }
// 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.IsConnected()) { _door.LockDoor(); _charger.StartCharge(); _oldId = e.Id; _logfile.LogDoorLocked(e.Id); _display.StateChangedToLocked(); _state = LadeskabState.Locked; } else { _display.ErrorInPhoneConnection(); } break; case LadeskabState.DoorOpen: throw new System.Exception("ERROR! RFID cannot be received when state is DoorOpen"); case LadeskabState.Locked: // Check for correct ID if (e.Id == _oldId) { _charger.StopCharge(); _door.UnlockDoor(); _logfile.LogDoorUnlocked(e.Id); _display.StateChangedToUnlocked(); _state = LadeskabState.Available; } else { _display.RfidNoMatch(); } break; } }
/* Region content: * RfidDetected(object o, ScanEventArgs e) * DoorChanged(object o, DoorEventArgs e) */ #region Handlers // method for event handler in RFIDscanner. private void RfidDetected(object o, ScanEventArgs e) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_charger.isConnected()) { _door.LockDoor(); _oldId = e.ScannedId; _Log.LogDoorLocked(e.ScannedId); _charger.StartCharge(); _display.Busy(); _state = LadeskabState.Locked; } else { _display.ConnectionError(); } break; case LadeskabState.DoorOpen: // Ignore break; case LadeskabState.Locked: // Check for correct ID if (e.ScannedId == _oldId) { _charger.StopCharge(); _door.UnlockDoor(); _Log.LogDoorUnlocked(e.ScannedId); _display.PhoneDone(); _state = LadeskabState.Available; } else { _display.RFIDError(); } break; } }
private void HandleRFIDRead(Object s, RFIDReadEventArgs e) { switch (_state) { case LadeskabState.Available: if (_chargeControl.IsConnected()) { _door.LockDoor(); _logfile.LogDoorLocked(e.ID); _oldId = e.ID; _state = LadeskabState.Locked; _display.DisplayUserInstructions("Ladeskab optaget."); _chargeControl.StartCharge(); } else { _display.DisplayUserInstructions("Tilslutningsfejl."); } break; case LadeskabState.DoorOpen: _display.DisplayUserInstructions("Luk døren."); break; case LadeskabState.Locked: if (e.ID == _oldId) { _chargeControl.StopCharge(); _door.UnlockDoor(); _logfile.LogDoorUnlocked(e.ID); _state = LadeskabState.Available; _display.DisplayUserInstructions("Fjern telefon."); } else { _display.DisplayUserInstructions("Forkert RFID tag."); } break; } }