Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -r981882ba5ad72f45d836aae606dadd273a888058 -r0a62c26f8c74795bd1a695de879e1a33524481ed --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 981882ba5ad72f45d836aae606dadd273a888058) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 0a62c26f8c74795bd1a695de879e1a33524481ed) @@ -73,7 +73,6 @@ currentPostTxAutoEjectState = POST_TX_AUTO_EJECT_STATE_AWAIT_CONFIRMATION; autoEjectReqReceived = FALSE; autoEjectTimerCounter = 0; - setPostTreatStateTransition( currentPostTreatmentState ); } /*********************************************************************//** @@ -88,6 +87,7 @@ U32 transitionToPostTreatmentMode( void ) { initPostTreatmentMode(); + setPostTreatStateTransition( currentPostTreatmentState ); return (U32)currentPostTreatmentState; } @@ -236,7 +236,6 @@ } return state; - } /*********************************************************************//** @@ -425,7 +424,6 @@ BOOL notInValidState = FALSE; TD_OP_MODE_T mode = getCurrentOperationMode(); UI_RESPONSE_PAYLOAD_T response; - REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_INVALID_PAYLOAD_LENGTH; if ( 0 == message->hdr.payloadLen ) { @@ -434,18 +432,21 @@ if ( ( mode != MODE_POST ) || ( TRUE == notInValidState ) ) { - rejReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; + response.rejectionReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; } else { - autoEjectReqReceived = TRUE; - result = TRUE; - rejReason = REQUEST_REJECT_REASON_NONE; + autoEjectReqReceived = TRUE; + result = TRUE; + response.rejectionReason = REQUEST_REJECT_REASON_NONE; } } + else + { + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_MESSAGE_PAYLOAD_LENGTH, (U32)message->hdr.payloadLen ); + } response.accepted = result; - response.rejectionReason = rejReason; sendMessage( MSG_ID_TD_ADJUST_DISPOSABLES_REMOVAL_CONFIRM_RESPONSE, COMM_BUFFER_OUT_CAN_TD_2_UI, (U08*)(&response), sizeof( UI_RESPONSE_PAYLOAD_T ) ); return result; Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r981882ba5ad72f45d836aae606dadd273a888058 -r0a62c26f8c74795bd1a695de879e1a33524481ed --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 981882ba5ad72f45d836aae606dadd273a888058) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 0a62c26f8c74795bd1a695de879e1a33524481ed) @@ -367,9 +367,13 @@ { // Door closed required from Auto-loading onwards, set to false if not required in subsequent states doorClosedRequired( TRUE ); - confirmTubesetPlaced = FALSE; - setBloodPumpTargetFlowRate( AUTO_LOAD_BLOOD_FLOW_RATE_ML_MIN, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - subState = PRE_TX_INSTALL_STATE_AUTO_LOAD; + + if ( STATE_CLOSED == getSwitchState( H9_SWCH ) ) + { + confirmTubesetPlaced = FALSE; + setBloodPumpTargetFlowRate( AUTO_LOAD_BLOOD_FLOW_RATE_ML_MIN, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); + subState = PRE_TX_INSTALL_STATE_AUTO_LOAD; + } } return subState; @@ -419,7 +423,6 @@ BOOL notInValidState = FALSE; TD_OP_MODE_T mode = getCurrentOperationMode(); UI_RESPONSE_PAYLOAD_T response; - REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_INVALID_PAYLOAD_LENGTH; if ( 0 == message->hdr.payloadLen ) { @@ -428,18 +431,21 @@ if ( ( mode != MODE_PRET ) || ( TRUE == notInValidState ) ) { - rejReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; + response.rejectionReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; } else { - confirmTubesetPlaced = TRUE; - result = TRUE; - rejReason = REQUEST_REJECT_REASON_NONE; + confirmTubesetPlaced = TRUE; + result = TRUE; + response.rejectionReason = REQUEST_REJECT_REASON_NONE; } } + else + { + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_MESSAGE_PAYLOAD_LENGTH, (U32)message->hdr.payloadLen ); + } response.accepted = result; - response.rejectionReason = rejReason; sendMessage( MSG_ID_TD_ADJUST_DISPOSABLES_CONFIRM_RESPONSE, COMM_BUFFER_OUT_CAN_TD_2_UI, (U08*)(&response), sizeof( UI_RESPONSE_PAYLOAD_T ) ); return result; Index: firmware/App/Services/AlarmMgmtSWFaults.h =================================================================== diff -u -rf054fdd3579dacb03b5b41a363e259949ff63965 -r0a62c26f8c74795bd1a695de879e1a33524481ed --- firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision f054fdd3579dacb03b5b41a363e259949ff63965) +++ firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 0a62c26f8c74795bd1a695de879e1a33524481ed) @@ -188,6 +188,7 @@ SW_FAULT_ID_MODE_POST_TREATMENT_INVALID_STATE = 151, SW_FAULT_ID_MODE_POST_TREATMENT_INVALID_STATE1 = 152, SW_FAULT_ID_MODE_POST_TX_AUTO_EJECT_INVALID_STATE = 153, + SW_FAULT_ID_INVALID_MESSAGE_PAYLOAD_LENGTH = 154, NUM_OF_SW_FAULT_IDS } SW_FAULT_ID_T;