public void ToggleDoorEvent(DoorEventBody body)
        {
            var door = _appSettings.DoorSettings.First(_ => _.Id == body.Door);
            var pin  = door.TriggerPin;

            var state = _pinService.CheckPin(pin);

            if (state != (int)body.State)
            {
                string doorVerb = body.State == DoorState.Open ? "Opening" : "Closing";

                _logger.LogInformation(doorVerb + " Door...");
                _pinService.WritePin(pin, GpioPinValue.High);
                // Sleep for 2 sec
                System.Threading.Thread.Sleep(2000);
                _pinService.WritePin(pin, GpioPinValue.Low);
                _logger.LogInformation("Door has been triggered!");
            }
            else
            {
                string doorStateStr = body.State == DoorState.Open ? "Opened" : "Closed";

                _logger.LogInformation("Door is already " + doorStateStr);
            }
        }
Example #2
0
 public void SwitchPin(int pinId, int status)
 {
     _logger.LogInformation("About to change pin status.");
     _pinService.WritePin(pinId, (GpioPinValue)status);
 }