Index: firmware/App/Drivers/BPDriver.c =================================================================== diff -u -rcef994fce0911761597fe8bf998b1bc87d8dc16c -rf376257c406e8b4f61ef4ad10f0b0f84831932d2 --- firmware/App/Drivers/BPDriver.c (.../BPDriver.c) (revision cef994fce0911761597fe8bf998b1bc87d8dc16c) +++ firmware/App/Drivers/BPDriver.c (.../BPDriver.c) (revision f376257c406e8b4f61ef4ad10f0b0f84831932d2) @@ -28,30 +28,28 @@ // ********** private definitions ********** +#define BP_COMMAND_CLEAR_DELAY ( ( 10 / TASK_GENERAL_INTERVAL ) + 1 ) ///< Blood pressure command interval #define BP_RESP_CODE_MASK 0x3C ///< Blood pressure response code mask. #define BP_RESP_CODE_SHIFT 2 ///< Blood pressure response code bit shift. #define BP_MODULE_ERROR_MASK 0x40 ///< Blood pressure module error mask. -#define BP_MODULE_BUSY_MASK 0x80 ///< Blood Pressure module busy mask -#define BP_RESP_CODE_BPDATA 0x07 ///< Blood pressure response code indicating BP data is available. #define BP_MODULE_BUSY_CLEAR 0 ///< Blood pressure module buy clear -#define BP_COMMAND_CLEAR_DELAY_TICKS ( ( 10 / TASK_GENERAL_INTERVAL ) + 1 ) -#define BP_FPGA_CMD_GIVEN_MASK 0x10 -#define BP_MODULE_CMD_STARTED_MASK 0x01 -#define BP_MODULE_CMD_IN_PROGRESS_MASK 0x02 +#define BP_FPGA_CMD_GIVEN_MASK 0x10 ///< Blood pressure FPGA command +#define BP_MODULE_CMD_STARTED_MASK 0x01 ///< Blood pressure module command started mask +#define BP_MODULE_CMD_IN_PROGRESS_MASK 0x02 ///< Blood pressure module command in progess mask /// Blood pressure driver states. typedef enum { - BP_DRIVER_IDLE_STATE = 0, - BP_DRIVER_CLEAR_CMD_STATE, - BP_DRIVER_WAIT_CLEAR_CMD_STATE, - BP_DRIVER_SEND_CMD_STATE, - BP_DRIVER_WAIT_FPGA_ACK_STATE, - BP_DRIVER_CLEAR_CMD_AFTER_ACK_STATE, - BP_DRIVER_WAIT_MODULE_START_STATE, - BP_DRIVER_WAIT_MEASUREMENT_COMPLETE_STATE, - BP_DRIVER_GET_DATA_STATE, - NUM_OF_BP_DRIVER_STATES + BP_DRIVER_IDLE_STATE = 0, ///< Blood pressure driver idle state + BP_DRIVER_CLEAR_CMD_STATE, ///< Blood pressure driver clear command state + BP_DRIVER_WAIT_CLEAR_CMD_STATE, ///< Blood pressure driver wait clear command state + BP_DRIVER_SEND_CMD_STATE, ///< Blood pressure driver send command state + BP_DRIVER_WAIT_FPGA_ACK_STATE, ///< Blood pressure driver wait FPGA acknowledge state + BP_DRIVER_CLEAR_CMD_AFTER_ACK_STATE, ///< Blood pressure driver clear command after acknowledge state + BP_DRIVER_WAIT_MODULE_START_STATE, ///< Blood pressure driver wait module start state + BP_DRIVER_WAIT_MEASUREMENT_COMPLETE_STATE, ///< Blood pressure driver wait measurement complete state + BP_DRIVER_GET_DATA_STATE, ///< Blood pressure driver get data state + NUM_OF_BP_DRIVER_STATES ///< Number of Blood pressure driver states } BP_DRIVER_STATE_T; // ********** private data ********** @@ -179,7 +177,7 @@ * state handling. * @details \b Inputs: requestAdultBPMeasurement, requestPedsBPMeasurement, * requestAbortBPMeasurement -* @details \b Outputs: nextState +* @details \b Outputs: pendingBPCommand, bpMeasurementReady, bpDriverError * @return next BP module state ***************************************************************************/ static BP_DRIVER_STATE_T handleBPDriverIdleState( void ) @@ -243,7 +241,7 @@ BP_DRIVER_STATE_T nextState = BP_DRIVER_WAIT_CLEAR_CMD_STATE; bpCommandClearCtr++; - if ( bpCommandClearCtr >= BP_COMMAND_CLEAR_DELAY_TICKS ) + if ( bpCommandClearCtr >= BP_COMMAND_CLEAR_DELAY ) { bpCommandClearCtr = 0; nextState = BP_DRIVER_SEND_CMD_STATE; @@ -341,7 +339,7 @@ * The handleBPDriverWaitMeasurementCompleteState function waits for the * BP measurement command to complete. * @details \b Inputs: getNIBPStatusResponse -* @details \b Outputs: pendingBPCommand +* @details \b Outputs: pendingBPCommand, bpDriverError * @return next BP driver state ***************************************************************************/ static BP_DRIVER_STATE_T handleBPDriverWaitMeasurementCompleteState( void ) @@ -367,7 +365,7 @@ * The handleBPDriverGetDataState function retrieves blood pressure * measurement results. * @details \b Inputs: FPGA NIBP blood pressure registers -* @details \b Outputs: bpResults, bpMeasurementReady +* @details \b Outputs: bpResults, bpMeasurementReady, pendingBPCommand * @return next BP driver state ***************************************************************************/ static BP_DRIVER_STATE_T handleBPDriverGetDataState( void )