예제 #1
0
        public void Setup()
        {
            _rfidEvent = null;

            _uut = new RFIEDReader();

            _uut.RFIDChangedEvent += (o, args) => { _rfidEvent = args; };
        }
예제 #2
0
        // Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen
        private void RfidDetected(object o, RFIEDEventArgs e)
        {
            int id = e.RFID;

            switch (_state)
            {
            case LadeskabState.Available:
                // Check for ladeforbindelse
                if (_charger.IsConnected())
                {
                    _door.LockDoor();
                    _oldId = id;
                    _file.LogDoorLocked(id);

                    _charger.StartCharge();
                    _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();
                    _file.LogDoorUnlocked(id);

                    _display.Print("Tag din telefon ud af skabet og luk døren");
                    _state = LadeskabState.Available;
                }
                else
                {
                    _display.Print("Forkert RFID tag");
                }

                break;
            }
        }