private void DoorEventHandler(object sender, DoorEventArgs e) { switch (_state) { case LadeskabState.Available: // Only if the door opens if (e.DoorState == true) { _state = LadeskabState.DoorOpen; _display.ConnectPhone(); } else { throw new System.Exception("ERROR! Door cannot close when state is Available"); } break; case LadeskabState.DoorOpen: // Only if the door is closed if (e.DoorState == false) { _state = LadeskabState.Available; _display.ReadRfid(); } else { throw new System.Exception("ERROR! Door cannot open when state is DoorOpen"); } break; case LadeskabState.Locked: throw new System.Exception("ERROR! Door cannot open when state is Locked!"); } }
private void doorStateChangeDetected(DoorEventArgs e) { switch (_state) { case LadeskabState.Available: if (!e.DoorClosed) { _Display.ConnectPhoneRequest(); _state = LadeskabState.DoorOpen; } else { _Display.Error(); } break; case LadeskabState.DoorOpen: if (e.DoorClosed) { _Display.ReadRFIDRequest(); _state = LadeskabState.Available; } else { _Display.Error(); } break; case LadeskabState.Locked: _Display.DisplayLockerOccupied(); break; } }
protected virtual void HandleDoorChange(object sender, DoorOpenEventArgs e) { switch (_state) { case LadeskabState.Available: if (e.IsOpen) { _state = LadeskabState.DoorOpen; _display.NotifyStation("Connect your phone"); } break; case LadeskabState.DoorOpen: if (!e.IsOpen) { _state = LadeskabState.Available; _display.NotifyStation("Scan RFID"); } break; case LadeskabState.Locked: //ignore break; } }
//RFID EVENT HANDLER private void RfidDetected(object sender, RFIDEventArgs e) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_charger.connected() && e.RFID > 0 && e.RFID <= 10000) { _door.LockDoor(); _charger.startCharging(); _oldId = e.RFID; _log.LockerLocklog(_oldId); _display.StatusDoorLocked(); _state = LadeskabState.Locked; } else { _display.FejlInPhoneConnection(); } break; case LadeskabState.DoorOpen: // Ignore throw new System.Exception("ERROR! DOOR IS OPEN!!!!"); case LadeskabState.Locked: // Check for correct ID CheckId(_oldId, e.RFID); break; } }//end RFID detected
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; } }
private void DoorClosed(object sender, DoorEventArgs e) { switch (_state) { case LadeskabState.Available: //ignore break; case LadeskabState.DoorOpen: _state = LadeskabState.Available; if (_charger.IsConnected()) { _disp.DisplayMessage("Indlæs RFID"); } else { _disp.DisplayMessage("Ladeskab tilgængelig for en anden telefon"); } break; case LadeskabState.Locked: //Ignored break; } }
//Denne kan ikke testes :? kun hvis vi tester på hvad der skrives ud :? men altså det kan vi ikke. Spørg frank private void DoorOpened(object sender, DoorEventArgs e) { if (e.EventDoorState == DoorState.Opened) { switch (_state) { case LadeskabState.Available: _state = LadeskabState.DoorOpen; if (_charger.IsConnected()) { _disp.DisplayMessage("Tag telefon fra opladeren"); } else { _disp.DisplayMessage("Tilslut telefon"); } break; case LadeskabState.DoorOpen: // Ignore break; case LadeskabState.Locked: _disp.DisplayMessage("Lås skabet op for at kunne åbne skabet"); break; } } else { _disp.DisplayMessage("Fejl, med at åbne døren"); } }
private void DoorEventHandler(object sender, DoorStateEventArgs e) { switch (_state) { case LadeskabState.Available: if (e.DoorOpen == true) { _state = LadeskabState.DoorOpen; _display.ShowInstruction("Tilslut Telefon"); } break; case LadeskabState.DoorOpen: if (e.DoorOpen == false) { _state = LadeskabState.Available; _display.ShowInstruction("Indlæs RFID"); } else { _display.ShowInstruction("Luk døren"); } break; case LadeskabState.Locked: break; } }
private void doorStateChangeDetected(DoorEventArgs e) { switch (_state) { case LadeskabState.Available: if (!e.DoorClosed) { _Display.displayCommands("Connect phone (and close door(press 'C'))"); _state = LadeskabState.DoorOpen; } else { _Display.displayCommands("Error"); } break; case LadeskabState.DoorOpen: if (e.DoorClosed) { _Display.displayCommands("Read rfid (press 'R')"); _state = LadeskabState.Available; } else { _Display.displayCommands("Error"); } break; case LadeskabState.Locked: _Display.displayCommands("Locker is occupied"); break; } }
// Her mangler de andre trigger handlere private void DoorEventHandler(object sender, DoorEventArgs e) //eventuelt handler { switch (_state) { case LadeskabState.Available: if (e.DoorState == true) //Kan åbne door - Ulåst { _state = LadeskabState.DoorOpen; _display.UpdateUserMsg("Tilslut Telefon"); } else { _display.UpdateUserMsg("Door cannot close when state is Available"); } break; case LadeskabState.DoorOpen: if (e.DoorState == false) // Door er closed og ulåst { _state = LadeskabState.Available; _display.UpdateUserMsg("Indlæs RFID"); } else { _display.UpdateUserMsg("Door cannot open when state = DoorOpen"); } break; case LadeskabState.Locked: _display.UpdateUserMsg("Door cannot open when state = Locked"); break; } }
// Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen private void RfidDetected(object sender, RFIDDetectedEventArgs e) { switch (_state) { case LadeskabState.Available: // Check for ladeforbindelse if (_charger.IsConnected()) { _door.LockDoor(); _charger.StartCharge(); _oldId = e.RFIDDetected; _logFileSimulator.LogDoorLocked(e.RFIDDetected); _displaySimulator.ShowPhoneChargingMessage(); _state = LadeskabState.Locked; } else { _displaySimulator.ShowConnectionErrorMessage(); } break; case LadeskabState.DoorOpen: // Ignore break; case LadeskabState.Locked: // Check for correct ID CheckId(_oldId, e.RFIDDetected); break; } }
public void DoorClosed() { if (_state == LadeskabState.DoorOpen) { _state = LadeskabState.Available; _display.ShowReadRfid(); } }
// event handlers for Door. Displays the appropriate message when the door is opened and closed private void DoorOpened(object sender, EventArgs e) { if (State == LadeskabState.Available) { State = LadeskabState.DoorOpen; _display.PrintStationMsg("Tilslut telefon"); } }
private void DoorClosed(object sender, EventArgs e) { if (State == LadeskabState.DoorOpen) { State = LadeskabState.Available; _display.PrintStationMsg("Indlæs RFID"); } }
private void DoorOpened(object sender, EventArgs e) { if (_state == LadeskabState.Available) { _state = LadeskabState.DoorOpen; _display.ShowConnectDevice(); } }
public void DoorOpened() { if (_state == LadeskabState.Available) { _state = LadeskabState.DoorOpen; _display.ShowConnectPhone(); } }
private void DoorClosed(object sender, EventArgs e) { if (_state == LadeskabState.DoorOpen) { _state = LadeskabState.Available; _display.ShowLoadRfid(); } }
// 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; } }
/* Hardware triggere */ private void HandleDoorOpenedEvent(object sender, EventArgs args) { if (_state == LadeskabState.Available) { _state = LadeskabState.DoorOpen; _display.CurrentMessageId = DisplayMessageId.ConnectPhone; _display.UpdateDisplay(); } }
// 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; } }
// Her mangler constructor public StationControl(IIdReader idReader, IDoor door, IChargeControl charger, ILogger log) { idReader.IdReadEvent += HandleReadEvent; door.DoorEvent += HandleDoorEvent; _charger = charger; _door = door; _state = LadeskabState.Available; _logger = log; }
private void HandleDoorCloseEvent(object sender, EventArgs args) { if (_state == LadeskabState.DoorOpen || _state == LadeskabState.Available) { _state = LadeskabState.Available; _display.CurrentMessageId = DisplayMessageId.WaitingRfid; _display.UpdateDisplay(); } }
// 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; } }
private void DoorClosed(object sender, DoorCloseEventArgs e) { if (_state == LadeskabState.DoorOpen) { _state = LadeskabState.Available; _displaySimulator.ShowReadRfidMessage(); } }
// 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 StationControl(IChargeControl Charger, IDoor Door, IRfidReader RfidReader, IDisplay Display, ILogger Logger) { _charger = Charger; _door = Door; _rfidReader = RfidReader; _logger = Logger; _display = Display; _state = LadeskabState.Available; _door.DoorChangeEvent += new EventHandler <DoorOpenEventArgs>(HandleDoorChange); _rfidReader.ReadIdEvent += new EventHandler <RfidReadEventArgs>(HandleRfidRead); }
public StationControl(IChargeControl charger, IDoor door, IScanner scanner, IDisplay display, ILog log) { _charger = charger; _door = door; door.StateChanged += DoorChanged; _display = display; _Log = log; _scanner = scanner; scanner.ScanEvent += RfidDetected; _state = LadeskabState.Available; }
//Triggerhandlers for DoorSimulator private void DoorOpened(object sender, DoorStatusEventArgs e) { if (_state == LadeskabState.Available) { if (!e.DoorLocked) { _state = LadeskabState.DoorOpen; _display.ShowMessage("Tilslut telefon"); } } }
private void DoorClosed(object sender, DoorStatusEventArgs e) { if (_state == LadeskabState.DoorOpen) { if (e.DoorLocked) { _state = LadeskabState.Available; _display.ShowMessage("Indlæs RFID"); } } }
public StationControl(IDoor door, IChargerControl chargeControl, IRfIdReader rfIdReader, Ilog log, IDisplay display) { _door = door; _chargeControl = chargeControl; _rfIdReader = rfIdReader; _display = display; _log = log; _state = LadeskabState.Available; _door.DoorStateChangedEvent += HandleDoorStateChangedEvent; _rfIdReader.RfIdDetectedEvent += HandleRfidDetectedEvent; }