From 5d6d13037a3846947a639880a0b92c523fd4b716 Mon Sep 17 00:00:00 2001 From: Filip Strajnar Date: Sat, 28 Sep 2024 11:27:42 +0200 Subject: [PATCH] Added endpoint that sets pin's frequency. --- 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 c3c73fc..caeb961 100644 --- a/Proculite.GpioRest/Controllers/GpioController.cs +++ b/Proculite.GpioRest/Controllers/GpioController.cs @@ -55,6 +55,15 @@ namespace Proculite.GpioRest.Controllers return Ok(_gpioService.SetPinReturning(pinNumber, pinValue)); } + [HttpPut("pin-frequency/{pinNumber}/{pinFrequency}")] + public IActionResult SetPinFrequency(int pinNumber, int pinFrequency) + { + if (!ModelState.IsValid) + return BadRequest(); + + return Ok(_gpioService.SetPinFrequencyReturning(pinNumber, pinFrequency)); + } + [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 abfa792..3edb896 100644 --- a/Proculite.GpioRest/Services/GpioService.cs +++ b/Proculite.GpioRest/Services/GpioService.cs @@ -64,6 +64,11 @@ namespace Proculite.GpioRest.Services _pwmPins[pinNumber].Value = pinValue; } + public void SetPinFrequency(int pinNumber, int pinFrequency) + { + _pwmPins[pinNumber].Frequency = pinFrequency; + } + public PinModel SetPinHighReturning(int pinNumber) { SetPinHigh(pinNumber); @@ -87,5 +92,11 @@ namespace Proculite.GpioRest.Services SetPin(pinNumber, pinValue); return PinValueModelOfPin(pinNumber); } + + public PinModel SetPinFrequencyReturning(int pinNumber, int pinFrequency) + { + _pwmPins[pinNumber].Frequency = pinFrequency; + return PinValueModelOfPin(pinNumber); + } } }