Ejemplo n.º 1
0
 public void DidConnectReturnTrue()
 {
     //Act
     usbCharger_.Connected = true;
     //Assert
     uut_.IsConnected().Equals(true);
 }
Ejemplo n.º 2
0
        public void Test_IsConnected_DifferentStates(bool state, bool result)
        {
            _usbCharger.Connected.Returns(state);

            _uut.IsConnected();

            Assert.AreEqual(result, _uut.IsConnected());
        }
Ejemplo n.º 3
0
 public void RFIDDetectedStateAvailableChargerConnected()
 {
     stubCharger.IsConnected().Returns(true);
     stubRFIDReader.RFIDDetectedEvent += Raise.EventWith(new RFIDEventArgs()
     {
         RFID = 30
     });
     Assert.That(stationControl.State, Is.EqualTo(StationControl.LadeskabState.Locked));
 }
Ejemplo n.º 4
0
        // 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;
            }
        }
Ejemplo n.º 5
0
 public void RfidAvailableSuccess()
 {
     chargeControl.IsConnected().Returns(true);
     reader.RfidDetected += Raise.EventWith(new object(), new RfidDetectedEventArgs(123));
     door.Received().LockDoor();
     chargeControl.Received().StartCharge();
     logfile.Received().logWrite(1, 123);
     display.Received().CloseDoorMsg();
     Assert.AreEqual("Locked", _uut.state.ToString());
 }
        public void RFIDDetected_LockerAvailable_ChargerConnected()
        {
            _chargeControl.IsConnected().Returns(true);
            _rfidReader.RFIDChangedEvent += Raise.EventWith(new RFIEDEventArgs {
                RFID = 1
            });

            _door.Received(1).LockDoor();
            _chargeControl.Received(1).StartCharge();
            _logFile.Received(1).LogDoorLocked(1);
            _display.Received(1).Print("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op.");
        }
Ejemplo n.º 7
0
        public void Test_HandleRFIDChangedEvent_WhenAvailableAndChargeControlConnected_RFIDChangedEventRaised_MethodCallCorrect()
        {
            _chargeControl.IsConnected().Returns(true);
            _rfidReader.RFIDChangedEvent += Raise.EventWith(new RFIDChangedEventArgs {
                RFID = 10
            });

            _door.Received().LockDoor();
            _usbCharger.Received().StartCharge();
            _fileWriter.Received().LogDoorLocked(10);
            _display.Received().WriteMessage("Box is taken and locked with RFID: " + 10);
        }
Ejemplo n.º 8
0
        public void RfidDetected_StateAvailableChargerConnected_LockDoor()
        {
            _chargeControl.IsConnected().Returns(true);
            _rfidReader.RFIDDetectedEvent += Raise.EventWith(new RFIDDetectedEventArgs());

            _door.Received(1).LockDoor();
        }
Ejemplo n.º 9
0
 public void Test_CorrectRFIDDoorUnlocks()
 {
     _chargeControl.IsConnected().Returns(true);
     _door.DoorCloseEvent      += Raise.EventWith(null, new DoorEventArgs());
     _rfidReader.RFIDReadEvent += Raise.EventWith(null, new RFIDEventArgs()
     {
         id = 3
     });
     _rfidReader.RFIDReadEvent += Raise.EventWith(null, new RFIDEventArgs()
     {
         id = 3
     });
     _door.Received(1).UnlockDoor();
 }
Ejemplo n.º 10
0
        public void InitialRfidTest_IsConnectedTrue()
        {
            var id = 12;

            _iChargeControl.IsConnected().Returns(true);
            _iReader.TagDataEvent += Raise.EventWith(new ReadtagChangedEventArgs()
            {
                Tag = id
            });
            _iDoor.Received().LockDoor();
            _iDisplay.Received().DisplayMessage("Døren er låst");
            _iChargeControl.Received().Regulate();
            _iLogFile.Received().LogMessage("Skab låst med RFID: " + id + "");
            _iDisplay.Received().DisplayMessage("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op.");
        }
        public void RFidDetectetEventChanged_TestStationStartCharge(bool Connection, bool Doorstate, int RFid, int result)
        {
            _chargeControl.IsConnected().Returns(Connection);

            _door.DoorChangedEvent += Raise.EventWith(new DoorStateChangedEventArgs()
            {
                StateOpen = Doorstate
            });
            _rfidReader.RFidChangedEvent += Raise.EventWith(new RFidChangedEventArgs()
            {
                ID = RFid
            });

            Assert.That(_uut._stationState, Is.EqualTo(result));
        }
Ejemplo n.º 12
0
        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;
            }
        }
Ejemplo n.º 13
0
        // 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;
            }
        }
Ejemplo n.º 14
0
        public void StationControl_RfidReadPhoneConnected_EventCalled()
        {
            _chargeControl.IsConnected().Returns(true);

            _uut.HandleRfidStatusEvent(this, new RfidReaderEventArgs()
            {
                ReadRFID = 1
            });

            Assert.Multiple(() =>
            {
                _door.Received().LockDoor();
                _chargeControl.Received().StartCharge();
                _logFile.Received().LogDoorLocked(1);
                _display.Received().ShowOccupied();
            });
        }
Ejemplo n.º 15
0
        private void RfidDetected(object sender, RFIDDetectedArgs e)
        {
            int id = e.IncomingRFIDFromScanner;

            switch (_state)
            {
            case LadeskabState.Available:
                // Check for ladeforbindelse
                if (_charger.IsConnected())
                {
                    _door.LockDoor();
                    _charger.StartCharge();
                    _oldId = id;
                    _logger.LogDoorLocked(id);
                    _disp.DisplayMessage("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op.");
                    _state = LadeskabState.Locked;
                }
                else
                {
                    _disp.DisplayMessage("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.LogDoorUnLocked(id);
                    _disp.DisplayMessage("Tag din telefon ud af skabet og luk døren");
                    _state = LadeskabState.Available;
                }
                else
                {
                    _disp.DisplayMessage("Forkert RFID tag");
                }

                break;
            }
        }
Ejemplo n.º 16
0
        public void GetStationControlInLockedStateWithOldId123()
        {
            _chargeControl.IsConnected().Returns(true);

            //act
            _rfidReader.RfidDetectedEvent += Raise.Event <EventHandler <int> >(_rfidReader, 123);
        }
Ejemplo n.º 17
0
        public void RfidDetected_PhoneChargingReopenDoor_wrongID()
        {
            _chargeControl.IsConnected().Returns(true);
            uut.RfidDetected(111);

            uut.RfidDetected(122);

            _display.Received().Display1Message("Forkert RFID tag");
        }
        // 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;
            }
        }
Ejemplo n.º 19
0
        // 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;
            }
        }
Ejemplo n.º 20
0
        public void RfidDetected_Available_ChargerConnected()
        {
            //Act + Arrange
            _chargeControl.IsConnected().Returns(true);
            const int id = 5;

            _reader.RfidEvent += Raise.EventWith(new RfidEventArgs()
            {
                Id = id
            });

            //Assert
            Assert.Multiple(() =>
            {
                _door.Received().LockDoor();
                _chargeControl.Received().StartCharge();
                _log.Received().LogDoorLocked(id);
                _display.Received().ShowMessage("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op.");
            });
        }
Ejemplo n.º 21
0
        // 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;
            }
        }
Ejemplo n.º 22
0
        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;
            }
        }
Ejemplo n.º 23
0
        // 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;
            }
        }
Ejemplo n.º 24
0
        // 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;
            }
        }
Ejemplo n.º 25
0
        // 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;
            }
        }
Ejemplo n.º 26
0
        // 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;
            }
        }
        //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;
            }
        }
Ejemplo n.º 28
0
        // 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;
            }
        }
Ejemplo n.º 29
0
        public void RaisedDoorChangeEvent_Available_IsConnected_isTrue_StartCharge_Called(bool doorstatus, bool rfidstatus, bool isConnected)
        {
            //Ønsker at gøre state = available
            _door.DoorChangedEvents += Raise.EventWith(new DoorChangedEventArgs()
            {
                DoorStatus = doorstatus
            });

            _chargeControl.IsConnected().Returns(isConnected);

            //Problem: Rfidstatus spiller ingen rolle i koden??
            _rfidReader.RfidSensedEvents += Raise.EventWith(new RfidSensedEventArgs()
            {
                RfidSensed = rfidstatus, Id = 10
            });

            _chargeControl.Received().StartCharge();
        }
Ejemplo n.º 30
0
        // 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;
            }
        }