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/Encoder.cc b/frc971/wpilib/ahal/Encoder.cc
index b452720..417792d 100644
--- a/frc971/wpilib/ahal/Encoder.cc
+++ b/frc971/wpilib/ahal/Encoder.cc
@@ -9,11 +9,10 @@
#include "hal/HAL.h"
#include "frc971/wpilib/ahal/DigitalInput.h"
+#include "frc971/wpilib/ahal/WPIErrors.h"
using namespace frc;
-#define HAL_FATAL_WITH_STATUS(status)
-
/**
* Common initialization code for Encoders.
*
@@ -40,7 +39,7 @@
m_bSource->GetPortHandleForRouting(),
(HAL_AnalogTriggerType)m_bSource->GetAnalogTriggerTypeForRouting(),
reverseDirection, (HAL_EncoderEncodingType)encodingType, &status);
- HAL_FATAL_WITH_STATUS(status);
+ HAL_CHECK_STATUS(status);
HAL_Report(HALUsageReporting::kResourceType_Encoder, GetFPGAIndex(),
encodingType);
@@ -84,7 +83,7 @@
Encoder::~Encoder() {
int32_t status = 0;
HAL_FreeEncoder(m_encoder, &status);
- HAL_FATAL_WITH_STATUS(status);
+ HAL_CHECK_STATUS(status);
}
/**
@@ -110,7 +109,7 @@
int Encoder::GetRaw() const {
int32_t status = 0;
int value = HAL_GetEncoderRaw(m_encoder, &status);
- HAL_FATAL_WITH_STATUS(status);
+ HAL_CHECK_STATUS(status);
return value;
}
@@ -129,7 +128,7 @@
double Encoder::GetPeriod() const {
int32_t status = 0;
double value = HAL_GetEncoderPeriod(m_encoder, &status);
- HAL_FATAL_WITH_STATUS(status);
+ HAL_CHECK_STATUS(status);
return value;
}
/**
@@ -151,12 +150,12 @@
void Encoder::SetMaxPeriod(double maxPeriod) {
int32_t status = 0;
HAL_SetEncoderMaxPeriod(m_encoder, maxPeriod, &status);
- HAL_FATAL_WITH_STATUS(status);
+ HAL_CHECK_STATUS(status);
}
int Encoder::GetFPGAIndex() const {
int32_t status = 0;
int val = HAL_GetEncoderFPGAIndex(m_encoder, &status);
- HAL_FATAL_WITH_STATUS(status);
+ HAL_CHECK_STATUS(status);
return val;
}