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); } }
public void SwitchPin(int pinId, int status) { _logger.LogInformation("About to change pin status."); _pinService.WritePin(pinId, (GpioPinValue)status); }