Die on duplicate/invalid DigitalInput's
Haven't actually checked whether running FATAL checks on every single
access causes any issues, but the CHECK's in the constructors are fine
at least.
Change-Id: Icdca5556c5d041f8812468b19de6690dc80bf416
Signed-off-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
diff --git a/frc971/wpilib/ahal/Counter.cc b/frc971/wpilib/ahal/Counter.cc
index 81e2c61..8e91c82 100644
--- a/frc971/wpilib/ahal/Counter.cc
+++ b/frc971/wpilib/ahal/Counter.cc
@@ -19,6 +19,7 @@
int32_t status = 0;
m_counter = HAL_InitializeCounter((HAL_Counter_Mode)mode, &m_index, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
SetMaxPeriod(0.5);
@@ -77,6 +78,7 @@
}
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
SetDownSourceEdge(inverted, true);
}
@@ -86,6 +88,7 @@
int32_t status = 0;
HAL_FreeCounter(m_counter, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::SetUpSource(int channel) {
@@ -119,6 +122,7 @@
m_counter, source->GetPortHandleForRouting(),
(HAL_AnalogTriggerType)source->GetAnalogTriggerTypeForRouting(), &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::SetUpSource(DigitalSource& source) {
@@ -136,6 +140,7 @@
int32_t status = 0;
HAL_SetCounterUpSourceEdge(m_counter, risingEdge, fallingEdge, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::ClearUpSource() {
@@ -144,6 +149,7 @@
int32_t status = 0;
HAL_ClearCounterUpSource(m_counter, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::SetDownSource(int channel) {
@@ -182,6 +188,7 @@
m_counter, source->GetPortHandleForRouting(),
(HAL_AnalogTriggerType)source->GetAnalogTriggerTypeForRouting(), &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::SetDownSourceEdge(bool risingEdge, bool fallingEdge) {
@@ -194,6 +201,7 @@
int32_t status = 0;
HAL_SetCounterDownSourceEdge(m_counter, risingEdge, fallingEdge, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::ClearDownSource() {
@@ -202,6 +210,7 @@
int32_t status = 0;
HAL_ClearCounterDownSource(m_counter, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::SetUpDownCounterMode() {
@@ -209,6 +218,7 @@
int32_t status = 0;
HAL_SetCounterUpDownMode(m_counter, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::SetExternalDirectionMode() {
@@ -216,6 +226,7 @@
int32_t status = 0;
HAL_SetCounterExternalDirectionMode(m_counter, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::SetSemiPeriodMode(bool highSemiPeriod) {
@@ -223,6 +234,7 @@
int32_t status = 0;
HAL_SetCounterSemiPeriodMode(m_counter, highSemiPeriod, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::SetPulseLengthMode(double threshold) {
@@ -230,6 +242,7 @@
int32_t status = 0;
HAL_SetCounterPulseLengthMode(m_counter, threshold, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::SetReverseDirection(bool reverseDirection) {
@@ -237,6 +250,7 @@
int32_t status = 0;
HAL_SetCounterReverseDirection(m_counter, reverseDirection, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::SetSamplesToAverage(int samplesToAverage) {
@@ -248,12 +262,14 @@
int32_t status = 0;
HAL_SetCounterSamplesToAverage(m_counter, samplesToAverage, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
int Counter::GetSamplesToAverage() const {
int32_t status = 0;
int samples = HAL_GetCounterSamplesToAverage(m_counter, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
return samples;
}
@@ -264,6 +280,7 @@
int32_t status = 0;
int value = HAL_GetCounter(m_counter, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
return value;
}
@@ -272,6 +289,7 @@
int32_t status = 0;
HAL_ResetCounter(m_counter, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
double Counter::GetPeriod() const {
@@ -279,6 +297,7 @@
int32_t status = 0;
double value = HAL_GetCounterPeriod(m_counter, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
return value;
}
@@ -287,6 +306,7 @@
int32_t status = 0;
HAL_SetCounterMaxPeriod(m_counter, maxPeriod, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
void Counter::SetUpdateWhenEmpty(bool enabled) {
@@ -294,6 +314,7 @@
int32_t status = 0;
HAL_SetCounterUpdateWhenEmpty(m_counter, enabled, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
}
bool Counter::GetStopped() const {
@@ -301,6 +322,7 @@
int32_t status = 0;
bool value = HAL_GetCounterStopped(m_counter, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
return value;
}
@@ -309,5 +331,6 @@
int32_t status = 0;
bool value = HAL_GetCounterDirection(m_counter, &status);
wpi_setHALError(status);
+ HAL_CHECK_STATUS(status);
return value;
}