Beispiel #1
0
 public void StartCharge()
 {
     if (usb.Connected)
     {
         usb.StartCharge();
     }
     else if (!usb.Connected)
     {
         display.ConnectPhone();
     }
 }
Beispiel #2
0
        public void RFIDDetected(Guid id)
        {
            switch (state)
            {
            case LadeskabState.Available:
                // Check for ladeforbindelse
                if (_charger.IsConnected())
                {
                    Locked();
                    _charger.StartCharge();
                    _oldId = id;
                    LogDoorlocked(id);

                    _display.displayMsg("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op.");
                    state = LadeskabState.Locked;
                }
                else
                {
                    _display.displayMsg("Din telefon er ikke ordentlig tilsluttet. Prøv igen.");
                }

                break;

            case LadeskabState.DoorOpen:
                _display.displayMsg("Nothing");

                break;

            case LadeskabState.Locked:
                // Check for correct ID

                if (CheckId(_oldId, id))
                {
                    _charger.StopCharge();
                    Unlocked();
                    LogDoorunlocked(id);

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

                break;
            }
        }
Beispiel #3
0
        // Event handler for the event "RFID Detected" from the state machine diagram for the class
        private void RfidDetected(object sender, RfidChangedEventArgs e)
        {
            switch (_lockState)
            {
            case ChargerLockState.Available:
                _display.ShowConnectPhone();
                // Check for charger connection
                if (_charger.IsConnected())
                {
                    _door.LockDoor();
                    _charger.StartCharge();
                    _oldId = e.Rfid;
                    _logger.LogDoorLocked(e.Rfid);
                    _display.ShowOccupied();

                    _lockState = ChargerLockState.Locked;
                }
                else
                {
                    _display.ShowConnectionErr();
                }

                break;

            case ChargerLockState.DoorOpen:
                _display.ShowInputRfid();
                _lockState = ChargerLockState.Available;
                break;

            case ChargerLockState.Locked:
                // Check for correct ID
                if (CheckId(e.Rfid))
                {
                    _charger.StopCharge();
                    _door.UnlockDoor();
                    _logger.LogDoorUnlocked(e.Rfid);
                    _display.ShowRmvPhone();
                    _lockState = ChargerLockState.Available;
                }
                else
                {
                    _display.ShowRfidErr();
                }

                break;
            }
        }
Beispiel #4
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 (_charger.IsConnected())
                {
                    _lock.LockDoor();
                    _charger.StartCharge();
                    _oldId = id;
                    _logger.LogDoorLocked(_oldId);
                    _display.DisplayString("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op.");
                    _state = LadeskabState.Locked;
                }
                else
                {
                    _display.DisplayString("Din telefon er ikke ordentlig tilsluttet. Prøv igen.");
                }

                break;

            //case LadeskabState.DoorOpen:
            // Ignore
            //break;

            case LadeskabState.Locked:
                // Check for correct ID
                if (CheckID(id))
                {
                    _charger.StopCharge();
                    _lock.UnlockDoor();
                    _logger.LogDoorUnlocked(id);

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

                break;
            }
        }
Beispiel #5
0
 //If I ask for ICharger -> Give me Battery Charger
 public static void StartCharging(ICharger charger)
 {
     //Log some information about charging
     charger.StartCharge();
 }