From e97f3222fb9ba06c0a251b2ca3c95e374e3d375a Mon Sep 17 00:00:00 2001 From: Filip Strajnar Date: Fri, 27 Sep 2024 23:58:17 +0200 Subject: [PATCH] Created endpoint that sets value of pin. --- Proculite.GpioRest/Controllers/GpioController.cs | 9 +++++++++ Proculite.GpioRest/Services/GpioService.cs | 11 +++++++++++ 2 files changed, 20 insertions(+) diff --git a/Proculite.GpioRest/Controllers/GpioController.cs b/Proculite.GpioRest/Controllers/GpioController.cs index cabe16e..c3c73fc 100644 --- a/Proculite.GpioRest/Controllers/GpioController.cs +++ b/Proculite.GpioRest/Controllers/GpioController.cs @@ -46,6 +46,15 @@ namespace Proculite.GpioRest.Controllers return Ok(_gpioService.SetPinLowReturning(pinNumber)); } + [HttpPut("pin-value/{pinNumber}/{pinValue}")] + public IActionResult SetPinValue(int pinNumber, double pinValue) + { + if (!ModelState.IsValid) + return BadRequest(); + + return Ok(_gpioService.SetPinReturning(pinNumber, pinValue)); + } + [HttpPost("pin-value/toggle/{pinNumber}")] public IActionResult TogglePin(int pinNumber) { diff --git a/Proculite.GpioRest/Services/GpioService.cs b/Proculite.GpioRest/Services/GpioService.cs index 4a6f6d5..95eb10c 100644 --- a/Proculite.GpioRest/Services/GpioService.cs +++ b/Proculite.GpioRest/Services/GpioService.cs @@ -63,6 +63,11 @@ namespace Proculite.GpioRest.Services _pwmPins[pinNumber].Value = currentValue > 0 ? 0 : 1; } + public void SetPin(int pinNumber, double pinValue) + { + _pwmPins[pinNumber].Value = pinValue; + } + public PinValueModel SetPinHighReturning(int pinNumber) { SetPinHigh(pinNumber); @@ -80,5 +85,11 @@ namespace Proculite.GpioRest.Services TogglePin(pinNumber); return PinValueModelOfPin(pinNumber); } + + public PinValueModel SetPinReturning(int pinNumber, double pinValue) + { + SetPin(pinNumber, pinValue); + return PinValueModelOfPin(pinNumber); + } } }