Index: firmware/App/Controllers/Ejector.c =================================================================== diff -u -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 -r2d40deb50ffb27667c3e57f427b1e197e163910e --- firmware/App/Controllers/Ejector.c (.../Ejector.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) +++ firmware/App/Controllers/Ejector.c (.../Ejector.c) (revision 2d40deb50ffb27667c3e57f427b1e197e163910e) @@ -37,7 +37,7 @@ #define DATA_PUBLISH_COUNTER_START_COUNT 13 ///< Ejector data publish start counter. #define EJECTOR_RETRACT_MOTOR_SPEED_RPM -350.0F ///< Ejector motor retract speed (in RPM). -#define EJECTOR_EXTEND_MOTOR_SPEED_RPM 350.0F //162.5F ///< Ejector motor extend speed (in RPM). +#define EJECTOR_EXTEND_MOTOR_SPEED_RPM 162.5F ///< Ejector motor extend speed (in RPM). #define EJECTOR_OFF_MOTOR_SPEED_RPM 0.0F ///< Ejector motor extend speed (in RPM). /// Enumeration of ejector states. Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 -r2d40deb50ffb27667c3e57f427b1e197e163910e --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 2d40deb50ffb27667c3e57f427b1e197e163910e) @@ -150,10 +150,6 @@ { TD_STANDBY_STATE_T state = STANDBY_WAIT_FOR_TREATMENT_STATE; - // DARA CODE - homeBloodPump(); - // DARA CODE - // Wait for door to be closed so we can home actuators // if ( STATE_CLOSED == getSwitchState( H9_SWCH ) ) // { Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 -r2d40deb50ffb27667c3e57f427b1e197e163910e --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 2d40deb50ffb27667c3e57f427b1e197e163910e) @@ -477,19 +477,11 @@ *************************************************************************/ static TREATMENT_STATE_T handleTreatmentStartState( void ) { -//#ifndef TEST_UI_ONLY TREATMENT_STATE_T result = TREATMENT_BLOOD_PRIME_STATE; -//#else -// TREATMENT_STATE_T result = TREATMENT_DIALYSIS_STATE; -//#endif lastTreatmentTimeStamp = getMSTimerCount(); -//#ifndef TEST_UI_ONLY //transitionToBloodPrime(); // TODO -//#else - setDialysisBloodPumpFlowRate( getTreatmentParameterU32( TREATMENT_PARAM_BLOOD_FLOW ) ); - //transitionToDialysis(); -//#endif + setDialysisBloodPumpFlowRate( getTreatmentParameterU32( TREATMENT_PARAM_BLOOD_FLOW ) ); // TODO - remove later return result; } Index: firmware/App/Monitors/Switches.c =================================================================== diff -u -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 -r2d40deb50ffb27667c3e57f427b1e197e163910e --- firmware/App/Monitors/Switches.c (.../Switches.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) +++ firmware/App/Monitors/Switches.c (.../Switches.c) (revision 2d40deb50ffb27667c3e57f427b1e197e163910e) @@ -153,7 +153,7 @@ { if ( getSwitchState( H9_SWCH ) != STATE_CLOSED ) { - //activateAlarmNoData( ALARM_ID_TD_CARTRIDGE_DOOR_OPENED ); + activateAlarmNoData( ALARM_ID_TD_CARTRIDGE_DOOR_OPENED ); } } Index: firmware/App/Services/AlarmMgmtTD.c =================================================================== diff -u -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 -r2d40deb50ffb27667c3e57f427b1e197e163910e --- firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) +++ firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision 2d40deb50ffb27667c3e57f427b1e197e163910e) @@ -334,63 +334,63 @@ *************************************************************************/ void activateAlarm2Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData1, ALARM_DATA_T alarmData2, BOOL outside ) { -// // Block if new alarms are occur during loss of AC power -//// if ( ( TRUE == getCPLDACPowerLossDetected() ) ) -//// { -//// alarmsBlockedTimer = ALARM_BLOCKED_COUNT_AFTER_AC_RETURN; -//// } -// // Sanity check, verify valid alarm index -// if ( ( alarm > ALARM_ID_NO_ALARM ) && ( alarm < NUM_OF_ALARM_IDS ) ) + // Block if new alarms are occur during loss of AC power +// if ( ( TRUE == getCPLDACPowerLossDetected() ) ) // { -// // if the block timer is 0 OR we have an unblockable alarm -//// if ( ( ALARM_NOT_BLOCKED == alarmsBlockedTimer ) -//// || ( ALARM_ID_TD_AC_POWER_LOST == alarm ) -//// || ( ALARM_ID_TD_AC_POWER_LOST_IN_TREATMENT == alarm ) -//// || ( ALARM_ID_TD_DD_RESTARTED_FAULT == alarm ) ) -// { -// TD_OP_MODE_T opMode = getCurrentOperationMode(); -//// TREATMENT_STATE_T ts = getTreatmentState(); -// -// ALARM_T props = getAlarmProperties( alarm ); -// -// // do not trigger alarm if blocked by current mode/state -//// if ( ( ( props.alarmBlockRinseback != TRUE ) || ( opMode != MODE_TREA ) || ( ts != TREATMENT_RINSEBACK_STATE ) || ( TRUE == outside ) ) && -//// ( ( props.alarmBlockEndTx != TRUE ) || ( opMode != MODE_POST ) || ( TRUE == outside )) ) -// { -// // Broadcast alarm and data if alarm not already active -// if ( FALSE == isAlarmActive( alarm ) ) -// { -// ALARM_TRIGGERED_PAYLOAD_T data; -// -// data.alarm = (U32)alarm; -// data.almDataType1 = (U32)alarmData1.dataType; -// data.almData1 = alarmData1.data.uInt.data; -// data.almDataType2 = (U32)alarmData2.dataType; -// data.almData2 = alarmData2.data.uInt.data; -// data.almPriority = props.alarmPriority; -// data.almRank = props.alarmSubRank; -// data.almClrTopOnly = props.alarmClearOnly; -// -// broadcastData( MSG_ID_ALARM_TRIGGERED, COMM_BUFFER_OUT_CAN_TD_ALARM, (U08*)&data, sizeof( ALARM_TRIGGERED_PAYLOAD_T ) ); -// // Send information for UI to log to treatment log -// if ( ( TRUE == props.alarmTreatmentLog ) && ( MODE_TREA == getCurrentOperationMode() ) ) -// { -// F32 data1; -// F32 data2; -// -// memcpy( &data1, &alarmData1.data, sizeof( F32 ) ); -// memcpy( &data2, &alarmData2.data, sizeof( F32 ) ); -//// sendTreatmentLogAlarmEventData( alarm, data1, data2 ); -// } -// } -// activateAlarmTD( alarm ); -// } -// } +// alarmsBlockedTimer = ALARM_BLOCKED_COUNT_AFTER_AC_RETURN; // } -// else -// { -// SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_ACTIVATE2, alarm ) -// } + // Sanity check, verify valid alarm index + if ( ( alarm > ALARM_ID_NO_ALARM ) && ( alarm < NUM_OF_ALARM_IDS ) ) + { + // if the block timer is 0 OR we have an unblockable alarm +// if ( ( ALARM_NOT_BLOCKED == alarmsBlockedTimer ) +// || ( ALARM_ID_TD_AC_POWER_LOST == alarm ) +// || ( ALARM_ID_TD_AC_POWER_LOST_IN_TREATMENT == alarm ) +// || ( ALARM_ID_TD_DD_RESTARTED_FAULT == alarm ) ) + { + TD_OP_MODE_T opMode = getCurrentOperationMode(); +// TREATMENT_STATE_T ts = getTreatmentState(); + + ALARM_T props = getAlarmProperties( alarm ); + + // do not trigger alarm if blocked by current mode/state +// if ( ( ( props.alarmBlockRinseback != TRUE ) || ( opMode != MODE_TREA ) || ( ts != TREATMENT_RINSEBACK_STATE ) || ( TRUE == outside ) ) && +// ( ( props.alarmBlockEndTx != TRUE ) || ( opMode != MODE_POST ) || ( TRUE == outside )) ) + { + // Broadcast alarm and data if alarm not already active + if ( FALSE == isAlarmActive( alarm ) ) + { + ALARM_TRIGGERED_PAYLOAD_T data; + + data.alarm = (U32)alarm; + data.almDataType1 = (U32)alarmData1.dataType; + data.almData1 = alarmData1.data.uInt.data; + data.almDataType2 = (U32)alarmData2.dataType; + data.almData2 = alarmData2.data.uInt.data; + data.almPriority = props.alarmPriority; + data.almRank = props.alarmSubRank; + data.almClrTopOnly = props.alarmClearOnly; + + broadcastData( MSG_ID_ALARM_TRIGGERED, COMM_BUFFER_OUT_CAN_TD_ALARM, (U08*)&data, sizeof( ALARM_TRIGGERED_PAYLOAD_T ) ); + // Send information for UI to log to treatment log + if ( ( TRUE == props.alarmTreatmentLog ) && ( MODE_TREA == getCurrentOperationMode() ) ) + { + F32 data1; + F32 data2; + + memcpy( &data1, &alarmData1.data, sizeof( F32 ) ); + memcpy( &data2, &alarmData2.data, sizeof( F32 ) ); +// sendTreatmentLogAlarmEventData( alarm, data1, data2 ); + } + } + activateAlarmTD( alarm ); + } + } + } + else + { + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_ACTIVATE2, alarm ) + } } /*********************************************************************//** Index: firmware/App/TDCommon.h =================================================================== diff -u -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 -r2d40deb50ffb27667c3e57f427b1e197e163910e --- firmware/App/TDCommon.h (.../TDCommon.h) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) +++ firmware/App/TDCommon.h (.../TDCommon.h) (revision 2d40deb50ffb27667c3e57f427b1e197e163910e) @@ -35,7 +35,7 @@ // #define TEST_AIR_TRAP_ALPHA_TESTING 1 // Alpha unit air trap testing // #define TEST_PINCH_VALVES 1 // Alpha unit pinch valve testing // #define TEST_DEBUGGER 1 // Alpha test with debugger - #define TEST_UI_ONLY 1 // Alpha test with TD and UI only - no DD +// #define TEST_UI_ONLY 1 // Alpha test with TD and UI only - no DD // #define TEST_NO_PINCH_VALVES 1 // Alpha test with no pinch valve functionality // #define TEST_USE_OFF_AS_STOP_BUTTON 1 // Alpha test re-purposing off button as a stop button // #define TEST_NO_PRESSURE_CHECKS 1 // Alpha test with no pressure sensor checks