// 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;
            }
        }
Exemplo n.º 2
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;
            }
        }