diff --git a/hal/src/main/native/athena/HAL.cpp b/hal/src/main/native/athena/HAL.cpp index 4de5007bda..bb2dc32f09 100644 --- a/hal/src/main/native/athena/HAL.cpp +++ b/hal/src/main/native/athena/HAL.cpp @@ -226,6 +226,8 @@ const char* HAL_GetErrorMessage(int32_t code) { return HAL_INVALID_DMA_ADDITION_MESSAGE; case HAL_USE_LAST_ERROR: return HAL_USE_LAST_ERROR_MESSAGE; + case HAL_CONSOLE_OUT_ENABLED_ERROR: + return HAL_CONSOLE_OUT_ENABLED_ERROR_MESSAGE; default: return "Unknown error status"; } diff --git a/hal/src/main/native/athena/SerialPort.cpp b/hal/src/main/native/athena/SerialPort.cpp index 0163f6e48f..374986b05c 100644 --- a/hal/src/main/native/athena/SerialPort.cpp +++ b/hal/src/main/native/athena/SerialPort.cpp @@ -84,6 +84,9 @@ HAL_SerialPortHandle HAL_InitializeSerialPortDirect(HAL_SerialPort port, serialPort->portId = open(portName, O_RDWR | O_NOCTTY); if (serialPort->portId < 0) { *status = errno; + if (*status == EACCES) { + *status = HAL_CONSOLE_OUT_ENABLED_ERROR; + } serialPortHandles->Free(handle); return HAL_kInvalidHandle; } diff --git a/hal/src/main/native/include/hal/Errors.h b/hal/src/main/native/include/hal/Errors.h index 5da75d956c..b24bfb7126 100644 --- a/hal/src/main/native/include/hal/Errors.h +++ b/hal/src/main/native/include/hal/Errors.h @@ -135,6 +135,11 @@ #define HAL_USE_LAST_ERROR_MESSAGE \ "HAL: Use HAL_GetLastError(status) to get last error" +#define HAL_CONSOLE_OUT_ENABLED_ERROR -1157 +#define HAL_CONSOLE_OUT_ENABLED_ERROR_MESSAGE \ + "HAL: Onboard serial port is requested, but Console Out is enabled. " \ + "Disable Console Out using imaging tool" + #define HAL_CAN_BUFFER_OVERRUN -35007 #define HAL_CAN_BUFFER_OVERRUN_MESSAGE \ "HAL: CAN Output Buffer Full. Ensure a device is attached" diff --git a/hal/src/main/native/sim/HAL.cpp b/hal/src/main/native/sim/HAL.cpp index 085c1d70fa..9b93d19687 100644 --- a/hal/src/main/native/sim/HAL.cpp +++ b/hal/src/main/native/sim/HAL.cpp @@ -251,6 +251,8 @@ const char* HAL_GetErrorMessage(int32_t code) { return HAL_LED_CHANNEL_ERROR_MESSAGE; case HAL_USE_LAST_ERROR: return HAL_USE_LAST_ERROR_MESSAGE; + case HAL_CONSOLE_OUT_ENABLED_ERROR: + return HAL_CONSOLE_OUT_ENABLED_ERROR_MESSAGE; default: return "Unknown error status"; }