Index: firmware/.settings/org.eclipse.core.resources.prefs =================================================================== diff -u -r766e65a173747dd60a9faae1cac228cd5f8a55a6 -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 --- firmware/.settings/org.eclipse.core.resources.prefs (.../org.eclipse.core.resources.prefs) (revision 766e65a173747dd60a9faae1cac228cd5f8a55a6) +++ firmware/.settings/org.eclipse.core.resources.prefs (.../org.eclipse.core.resources.prefs) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) @@ -20,3 +20,24 @@ encoding//Debug/source/subdir_rules.mk=UTF-8 encoding//Debug/source/subdir_vars.mk=UTF-8 encoding//Debug/sources.mk=UTF-8 +encoding//Release/App/Controllers/subdir_rules.mk=UTF-8 +encoding//Release/App/Controllers/subdir_vars.mk=UTF-8 +encoding//Release/App/Drivers/subdir_rules.mk=UTF-8 +encoding//Release/App/Drivers/subdir_vars.mk=UTF-8 +encoding//Release/App/Modes/subdir_rules.mk=UTF-8 +encoding//Release/App/Modes/subdir_vars.mk=UTF-8 +encoding//Release/App/Monitors/subdir_rules.mk=UTF-8 +encoding//Release/App/Monitors/subdir_vars.mk=UTF-8 +encoding//Release/App/Services/subdir_rules.mk=UTF-8 +encoding//Release/App/Services/subdir_vars.mk=UTF-8 +encoding//Release/App/Tasks/subdir_rules.mk=UTF-8 +encoding//Release/App/Tasks/subdir_vars.mk=UTF-8 +encoding//Release/FWCommon/FlashDrvr/subdir_rules.mk=UTF-8 +encoding//Release/FWCommon/FlashDrvr/subdir_vars.mk=UTF-8 +encoding//Release/FWCommon/subdir_rules.mk=UTF-8 +encoding//Release/FWCommon/subdir_vars.mk=UTF-8 +encoding//Release/makefile=UTF-8 +encoding//Release/objects.mk=UTF-8 +encoding//Release/source/subdir_rules.mk=UTF-8 +encoding//Release/source/subdir_vars.mk=UTF-8 +encoding//Release/sources.mk=UTF-8 Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -rae3240cfb3237c01472168fee0bfc6beb34e0ed9 -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision ae3240cfb3237c01472168fee0bfc6beb34e0ed9) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) @@ -273,6 +273,7 @@ bloodPumpDirectionSet = dir; bloodPumpControlMode = mode; bloodPumpRampToSpeedRPM = BP_RPM_FROM_RATE( flowRate ); + isBloodPumpOn = ( 0 == flowRate ? FALSE : isBloodPumpOn ); if ( BLOOD_PUMP_CONTROL_TO_TARGET_STATE == bloodPumpState ) { @@ -356,7 +357,7 @@ void signalBloodPumpHardStop( void ) { targetBloodFlowRate = 0; - bloodPumpState = BLOOD_PUMP_OFF_STATE; + bloodPumpState = BLOOD_PUMP_OFF_STATE; // TODO SEAN: Are you changing the state directly here? bloodPumpSetSpeedRPM = 0; isBloodPumpOn = FALSE; bpControlTimerCounter = 0; @@ -720,6 +721,11 @@ bpControlTimerCounter = 0; } + if ( FALSE == isBloodPumpOn ) + { + result = BLOOD_PUMP_OFF_STATE; + } + return result; } @@ -815,6 +821,8 @@ payload.h4PresFlow = 0; } payload.h6RotorHallState = ( hallSensor > 0 ? 0 : 1 ); // 1=home, 0=not home + //payload.bPstate = bloodPumpState; + //payload.bpRotorStatus = (U32)getH6RotorStatus(); broadcastData( MSG_ID_TD_BLOOD_PUMP_DATA, COMM_BUFFER_OUT_CAN_TD_BROADCAST, (U08*)&payload, sizeof( BLOOD_PUMP_STATUS_PAYLOAD_T ) ); bloodFlowDataPublicationTimerCounter = 0; } Index: firmware/App/Controllers/BloodFlow.h =================================================================== diff -u -rb88a8fd2c5fca8f055d6df1437635692388fcb0d -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 --- firmware/App/Controllers/BloodFlow.h (.../BloodFlow.h) (revision b88a8fd2c5fca8f055d6df1437635692388fcb0d) +++ firmware/App/Controllers/BloodFlow.h (.../BloodFlow.h) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) @@ -48,6 +48,8 @@ U32 h4RotorCount; ///< Rotor count. U32 h4PresFlow; ///< Prescribed blood flow in mL/min. U32 h6RotorHallState; ///< Rotor hall state (1=home, 0=not home). + //U32 bPstate; + //U32 bpRotorStatus; } BLOOD_PUMP_STATUS_PAYLOAD_T; #pragma pack(pop) Index: firmware/App/Controllers/Ejector.c =================================================================== diff -u -r679ed8977c24e6ce6893e652a10ef97af82be2b0 -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 --- firmware/App/Controllers/Ejector.c (.../Ejector.c) (revision 679ed8977c24e6ce6893e652a10ef97af82be2b0) +++ firmware/App/Controllers/Ejector.c (.../Ejector.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) @@ -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 162.5F ///< Ejector motor extend speed (in RPM). +#define EJECTOR_EXTEND_MOTOR_SPEED_RPM 350.0F //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/Drivers/RotaryValve.c =================================================================== diff -u -r0e4a62ba24d906d9e5b33b293f93405b8c0391ce -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 --- firmware/App/Drivers/RotaryValve.c (.../RotaryValve.c) (revision 0e4a62ba24d906d9e5b33b293f93405b8c0391ce) +++ firmware/App/Drivers/RotaryValve.c (.../RotaryValve.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) @@ -116,7 +116,7 @@ if ( ( status & VALVE_GEN_FAULT_BIT_MASK ) != 0 ) { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_PINCH_VALVE_FAULT, i, status ) + //SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_PINCH_VALVE_FAULT, i, status ) } } } Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -ra5560a2917aa62bcafd8e6a81041ace723237109 -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision a5560a2917aa62bcafd8e6a81041ace723237109) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) @@ -16,6 +16,7 @@ ***************************************************************************/ #include "AirTrap.h" +#include "BloodFlow.h" #include "Buttons.h" #include "DDInterface.h" #include "Messaging.h" @@ -149,6 +150,10 @@ { 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 -re2cb992bbeeb9522d1bf6d866e6a81021e05726d -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision e2cb992bbeeb9522d1bf6d866e6a81021e05726d) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) @@ -477,19 +477,19 @@ *************************************************************************/ static TREATMENT_STATE_T handleTreatmentStartState( void ) { -#ifndef TEST_UI_ONLY +//#ifndef TEST_UI_ONLY TREATMENT_STATE_T result = TREATMENT_BLOOD_PRIME_STATE; -#else - TREATMENT_STATE_T result = TREATMENT_DIALYSIS_STATE; -#endif +//#else +// TREATMENT_STATE_T result = TREATMENT_DIALYSIS_STATE; +//#endif lastTreatmentTimeStamp = getMSTimerCount(); -#ifndef TEST_UI_ONLY - // transitionToBloodPrime(); // TODO -#else +//#ifndef TEST_UI_ONLY + //transitionToBloodPrime(); // TODO +//#else setDialysisBloodPumpFlowRate( getTreatmentParameterU32( TREATMENT_PARAM_BLOOD_FLOW ) ); - transitionToDialysis(); -#endif + //transitionToDialysis(); +//#endif return result; } @@ -839,6 +839,7 @@ payload.treatmentSubMode = (U32)currentTreatmentState; payload.bldPrimeState = 0; // getCurrentBloodPrimeState(); payload.dialysisState = getDialysisState(); + payload.isoUFState = 0; payload.txStopState = getCurrentTreatmentPausedState(); payload.rinsebackState = 0; // getCurrentRinsebackState(); payload.txRecircState = 0; // getCurrentTreatmentRecircState(); Index: firmware/App/Monitors/Switches.c =================================================================== diff -u -r50f4b79164155c1bc375dd3ff0e8588f934dc729 -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 --- firmware/App/Monitors/Switches.c (.../Switches.c) (revision 50f4b79164155c1bc375dd3ff0e8588f934dc729) +++ firmware/App/Monitors/Switches.c (.../Switches.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) @@ -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 -r51f42cd88bd9c50ed9096a2d1d8ff859a95aff95 -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 --- firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision 51f42cd88bd9c50ed9096a2d1d8ff859a95aff95) +++ firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) @@ -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() ) ) +// // 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 ) ) // { -// alarmsBlockedTimer = ALARM_BLOCKED_COUNT_AFTER_AC_RETURN; +// // 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 ); +// } +// } // } - // 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 ) - } +// 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 -rae3240cfb3237c01472168fee0bfc6beb34e0ed9 -rf1e3338feb8fccadf01aa629aec4a55132f6fd77 --- firmware/App/TDCommon.h (.../TDCommon.h) (revision ae3240cfb3237c01472168fee0bfc6beb34e0ed9) +++ firmware/App/TDCommon.h (.../TDCommon.h) (revision f1e3338feb8fccadf01aa629aec4a55132f6fd77) @@ -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