Пример #1
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;
            }
        }