mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-25 01:41:43 +00:00
DigitalInput: Don't crash on Get() of invalid channel.
The constructor sets m_channel to UINT32_MAX and reports an error if the channel index is out of range (or CheckDigitalChannel fails for some other reason). A Get() following this would result in a crash because it wasn't checking StatusIsFatal(). The new behavior now checks StatusIsFatal() and simply returns false. Change-Id: I15529401294e4ccd1e09df834e02cca367fab67c
This commit is contained in:
@@ -62,6 +62,7 @@ DigitalInput::~DigitalInput() {
|
||||
* Retrieve the value of a single digital input channel from the FPGA.
|
||||
*/
|
||||
bool DigitalInput::Get() const {
|
||||
if (StatusIsFatal()) return false;
|
||||
int32_t status = 0;
|
||||
bool value = getDIO(m_digital_ports[m_channel], &status);
|
||||
wpi_setErrorWithContext(status, getHALErrorMessage(status));
|
||||
|
||||
Reference in New Issue
Block a user