From 384d00f9e6dc6236f9cf3729da8d3bea3273f1e8 Mon Sep 17 00:00:00 2001 From: Thad House Date: Wed, 6 Nov 2019 14:05:25 -0800 Subject: [PATCH] Fix various duty cycle bugs (#2047) --- hal/src/main/native/athena/AnalogTrigger.cpp | 2 +- hal/src/main/native/athena/DutyCycle.cpp | 3 ++- hal/src/main/native/sim/AnalogTrigger.cpp | 18 ------------------ wpilibc/src/main/native/cpp/DutyCycle.cpp | 2 +- 4 files changed, 4 insertions(+), 21 deletions(-) diff --git a/hal/src/main/native/athena/AnalogTrigger.cpp b/hal/src/main/native/athena/AnalogTrigger.cpp index 421b7794b9..9ec3f29e3d 100644 --- a/hal/src/main/native/athena/AnalogTrigger.cpp +++ b/hal/src/main/native/athena/AnalogTrigger.cpp @@ -154,7 +154,7 @@ void HAL_SetAnalogTriggerLimitsDutyCycle( trigger->trigger->writeLowerLimit(static_cast(scaleFactor * lower), status); - trigger->trigger->writeLowerLimit(static_cast(scaleFactor * upper), + trigger->trigger->writeUpperLimit(static_cast(scaleFactor * upper), status); } diff --git a/hal/src/main/native/athena/DutyCycle.cpp b/hal/src/main/native/athena/DutyCycle.cpp index 5553f0d2b8..0912e85a7c 100644 --- a/hal/src/main/native/athena/DutyCycle.cpp +++ b/hal/src/main/native/athena/DutyCycle.cpp @@ -88,7 +88,8 @@ int32_t HAL_GetDutyCycleFrequency(HAL_DutyCycleHandle dutyCycleHandle, double HAL_GetDutyCycleOutput(HAL_DutyCycleHandle dutyCycleHandle, int32_t* status) { - return HAL_GetDutyCycleOutputRaw(dutyCycleHandle, status) / kScaleFactor; + return HAL_GetDutyCycleOutputRaw(dutyCycleHandle, status) / + static_cast(kScaleFactor); } int32_t HAL_GetDutyCycleOutputRaw(HAL_DutyCycleHandle dutyCycleHandle, diff --git a/hal/src/main/native/sim/AnalogTrigger.cpp b/hal/src/main/native/sim/AnalogTrigger.cpp index 4415803700..3ddacee7b7 100644 --- a/hal/src/main/native/sim/AnalogTrigger.cpp +++ b/hal/src/main/native/sim/AnalogTrigger.cpp @@ -179,25 +179,7 @@ void HAL_SetAnalogTriggerAveraged(HAL_AnalogTriggerHandle analogTriggerHandle, : HALSIM_AnalogTriggerUnassigned; triggerData->triggerMode = setVal; } -void HAL_SetAnalogTriggerDutyCycle(HAL_AnalogTriggerHandle analogTriggerHandle, - HAL_Bool useDutyCycle, int32_t* status) { - auto trigger = analogTriggerHandles->Get(analogTriggerHandle); - if (trigger == nullptr) { - *status = HAL_HANDLE_ERROR; - return; - } - AnalogTriggerData* triggerData = &SimAnalogTriggerData[trigger->index]; - - if (triggerData->triggerMode.Get() != HALSIM_AnalogTriggerUnassigned) { - *status = INCOMPATIBLE_STATE; - return; - } - - auto setVal = useDutyCycle ? HALSIM_AnalogTriggerDutyCycle - : HALSIM_AnalogTriggerUnassigned; - triggerData->triggerMode = setVal; -} void HAL_SetAnalogTriggerFiltered(HAL_AnalogTriggerHandle analogTriggerHandle, HAL_Bool useFilteredValue, int32_t* status) { auto trigger = analogTriggerHandles->Get(analogTriggerHandle); diff --git a/wpilibc/src/main/native/cpp/DutyCycle.cpp b/wpilibc/src/main/native/cpp/DutyCycle.cpp index 90ebaa5ae0..03283e86f5 100644 --- a/wpilibc/src/main/native/cpp/DutyCycle.cpp +++ b/wpilibc/src/main/native/cpp/DutyCycle.cpp @@ -78,7 +78,7 @@ double DutyCycle::GetOutput() const { unsigned int DutyCycle::GetOutputRaw() const { int32_t status = 0; - auto retVal = HAL_GetDutyCycleOutput(m_handle, &status); + auto retVal = HAL_GetDutyCycleOutputRaw(m_handle, &status); wpi_setErrorWithContext(status, HAL_GetErrorMessage(status)); return retVal; }