Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -ra6587c2ba0a40bdf12b5fdcf2ba8dec0cd958cfa -r5c083ca7d4ebd1ebd8e745c0fba7148e59894569 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision a6587c2ba0a40bdf12b5fdcf2ba8dec0cd958cfa) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 5c083ca7d4ebd1ebd8e745c0fba7148e59894569) @@ -7,8 +7,8 @@ * * @file OperationModes.c * -* @author (last) Michael Garthwaite -* @date (last) 31-Jan-2023 +* @author (last) Sean Nash +* @date (last) 13-Mar-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -42,7 +42,7 @@ #define BROADCAST_HD_OP_MODE_INTERVAL ( 250 / TASK_GENERAL_INTERVAL ) ///< HD operation mode broadcast interval (in task interval/sec). #define DATA_PUBLISH_COUNTER_START_COUNT 11 ///< Data publish counter start count. -#define NUM_CONFIRM_REQUESTS 4 ///< Number of available confirmation requests. +#define MAX_PENDING_CONFIRM_REQUESTS 4 ///< Maximum number of confirmation requests allowed at any given time. #define CONFIRMATION_REQUEST_TIMEOUT_MS ( SEC_PER_MIN * MS_PER_SECOND ) ///< Confirmation response timeout in ms /// Structure for confirmation request. @@ -64,7 +64,7 @@ /// Interval (in task intervals) at which to publish operation mode data to CAN bus. static OVERRIDE_U32_T opModePublishInterval = { BROADCAST_HD_OP_MODE_INTERVAL, BROADCAST_HD_OP_MODE_INTERVAL, BROADCAST_HD_OP_MODE_INTERVAL, 0 }; /// Local structure init for saving confirmation requests -static CONFIRMATION_REQUEST_T confirmRequests[NUM_CONFIRM_REQUESTS] = +static CONFIRMATION_REQUEST_T confirmRequests[ MAX_PENDING_CONFIRM_REQUESTS ] = { GENERIC_CONFIRM_ID_NONE, GENERIC_CONFIRM_CMD_REQUEST_OPEN, 0, CONFIRMATION_REQUEST_STATUS_UNUSED, GENERIC_CONFIRM_ID_NONE, GENERIC_CONFIRM_CMD_REQUEST_OPEN, 0, CONFIRMATION_REQUEST_STATUS_UNUSED, GENERIC_CONFIRM_ID_NONE, GENERIC_CONFIRM_CMD_REQUEST_OPEN, 0, CONFIRMATION_REQUEST_STATUS_UNUSED, @@ -434,14 +434,13 @@ * all active confirmation requests and updates the timeout. * @details Inputs: confirmRequests[] * @details Outputs: confirmRequests[] status updated if timeout. - * @param none * @return none *************************************************************************/ void updateConfirmationRequestTimeouts( void ) { U08 i; - for ( i = 0; i < NUM_CONFIRM_REQUESTS; i++ ) + for ( i = 0; i < MAX_PENDING_CONFIRM_REQUESTS; i++ ) { if ( CONFIRMATION_REQUEST_STATUS_PENDING == confirmRequests[ i ].status ) { @@ -457,9 +456,9 @@ * @brief * The getConfirmationRequestStatus function returns the status of a confirmation request * @details Inputs: confirmRequests[] - * @details Outputs: confirmRequests[] cleared if completed. - * @param request ID - * @return CONFIRMATION_REQUEST_STATUS_T + * @details Outputs: confirmRequests[] consumed/cleared if completed. + * @param request_id ID of confirmation being requested + * @return Status of given confirmation *************************************************************************/ CONFIRMATION_REQUEST_STATUS_T getConfirmationRequestStatus( GENERIC_CONFIRM_ID_T request_id ) { @@ -468,15 +467,15 @@ BOOL pending = FALSE; U08 pending_index = 0; - for ( i = 0; i < NUM_CONFIRM_REQUESTS; i++ ) + for ( i = 0; i < MAX_PENDING_CONFIRM_REQUESTS; i++ ) { if ( confirmRequests[ i ].requestID == request_id ) { status = confirmRequests[ i ].status; if ( CONFIRMATION_REQUEST_STATUS_PENDING != status ) { // Send UI clear - if ( CONFIRMATION_REQUEST_STATUS_TIMEOUT == confirmRequests[ i ].status ) + if ( CONFIRMATION_REQUEST_STATUS_TIMEOUT == status ) { sendConfirmationRequest( confirmRequests[ i ].requestID, GENERIC_CONFIRM_CMD_TIMEOUT_CLOSE, 0 ); } @@ -523,16 +522,16 @@ * @brief * The setConfirmationRequestStatus function sets the status of a confirmation request * @details Inputs: confirmRequests[] - * @details Outputs: confirmRequests[] status. - * @param request ID - * @param new status - * @return CONFIRMATION_REQUEST_STATUS_T + * @details Outputs: confirmRequests[]. + * @param request_id ID of confirmation being requested + * @param status Status to set for given confirmation (open, close, reject) + * @return none *************************************************************************/ void setConfirmationRequestStatus( GENERIC_CONFIRM_ID_T request_id, CONFIRMATION_REQUEST_STATUS_T status ) { U08 i; - for ( i = 0; i < NUM_CONFIRM_REQUESTS; i++ ) + for ( i = 0; i < MAX_PENDING_CONFIRM_REQUESTS; i++ ) { if ( confirmRequests[ i ].requestID == request_id ) { @@ -547,16 +546,17 @@ * The addConfirmationRequest function sends a confirmation request to UI * @details Inputs: confirmRequests[] * @details Outputs: confirmRequests[] new added. - * @param request_id - confirm id / type - * @param request_type - confirm command + * @param request_id ID of confirmation being requested + * @param request_type Type of confirmation being requested (open, close, reject) + * @param reject_Reason Reason for reject if type is reject * @return request ID - will be non-zero if added *************************************************************************/ GENERIC_CONFIRM_ID_T addConfirmationRequest( GENERIC_CONFIRM_ID_T request_id, GENERIC_CONFIRM_COMMAND_T request_type, U32 reject_reason ) { U08 i; GENERIC_CONFIRM_ID_T new_id = GENERIC_CONFIRM_ID_NONE; - for ( i = 0; i < NUM_CONFIRM_REQUESTS; i++ ) + for ( i = 0; i < MAX_PENDING_CONFIRM_REQUESTS; i++ ) { if ( CONFIRMATION_REQUEST_STATUS_UNUSED == confirmRequests[ i ].status ) {