Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r4ddf1777acc4298a9ed034e56b66916256d22c18 -re5fc9a1e8898da7bc6d26f1e333ee44f6544d214 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 4ddf1777acc4298a9ed034e56b66916256d22c18) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision e5fc9a1e8898da7bc6d26f1e333ee44f6544d214) @@ -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, @@ -433,14 +433,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 ) { @@ -456,9 +455,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 ) { @@ -467,15 +466,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 ); } @@ -522,16 +521,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 ) { @@ -546,18 +545,19 @@ * 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 ( confirmRequests[ i ].status == CONFIRMATION_REQUEST_STATUS_UNUSED ) + if ( CONFIRMATION_REQUEST_STATUS_UNUSED == confirmRequests[ i ].status ) { // Save the confirmation request info confirmRequests[ i ].requestID = request_id; @@ -566,7 +566,6 @@ confirmRequests[ i ].status = CONFIRMATION_REQUEST_STATUS_PENDING; new_id = request_id; sendConfirmationRequest( request_id, request_type, reject_reason ); - break; } }