Ejemplo n.º 1
0
        //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;
            }
        }
Ejemplo n.º 2
0
 private void OnNewRfid(RfidEventArgs e)
 {
     RfidEvent?.Invoke(this, e);
 }