public void Rfid_AvailableState(int id)
        {
            RfidEventArgs RfidArgs = new RfidEventArgs(id);

            _chargeControl.connection_establishment().Returns(true);
            _rfidreader.RfidHandler += Raise.EventWith(this, RfidArgs);
            //_rfidreader.RfidHandler += (sender, args) => receivedId = args.id_;

            _door.Received().Lock();
            _chargeControl.Received().charge_control_start();
            _disp.Received().PrintStationMsg(_NowChargingMsg);
        }
Exemple #2
0
        // Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen
        public void RfidDetected(object sender, RfidEventArgs e)

        {
            switch (State)
            {
            case LadeskabState.Available:
                // Check for ladeforbindelse
                if (_chargeControl.connection_establishment())
                {
                    _door.Lock();
                    _chargeControl.charge_control_start();
                    _oldId = e.id_;
                    string logMsg = $"Skab låst med RFID: { e.id_}";
                    _log.WriteEntry(logMsg);
                    State = LadeskabState.Locked;
                    _display.PrintStationMsg("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op.");
                }
                else
                {
                    _display.PrintStationMsg("Din telefon er ikke ordentlig tilsluttet. Prøv igen.");
                }

                break;

            case LadeskabState.DoorOpen:
                _display.PrintStationMsg("Door is Open");
                break;

            case LadeskabState.Locked:
                // Check for correct ID
                if (e.id_ == _oldId)
                {
                    Console.WriteLine("received id: {0}", e.id_);
                    Console.WriteLine("old id: {0}", _oldId);
                    string logMsg = $"Skab låst op med RFID: { e.id_}";
                    _chargeControl.charge_control_stop();

                    _door.Unlock();
                    _log.WriteEntry(logMsg);
                    _display.PrintStationMsg("Tag din telefon ud af skabet og luk døren");
                    State = LadeskabState.Available;
                }
                else
                {
                    _display.PrintStationMsg("Forkert RFID tag");
                }

                break;

            default:
                // shouldn't happen but might as well be safe.
                break;
            }
        }