Index: firmware/App/HDCommon.h =================================================================== diff -u -r44a100f8e5210a02c23b8fcc4527d8e96d577381 -r7a5747d1e8d741ae72aa20787e0867d95e2e1455 --- firmware/App/HDCommon.h (.../HDCommon.h) (revision 44a100f8e5210a02c23b8fcc4527d8e96d577381) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision 7a5747d1e8d741ae72aa20787e0867d95e2e1455) @@ -23,9 +23,9 @@ // ********** version ********** #define HD_VERSION_MAJOR 0 -#define HD_VERSION_MINOR 5 +#define HD_VERSION_MINOR 6 #define HD_VERSION_MICRO 0 -#define HD_VERSION_BUILD 9037 +#define HD_VERSION_BUILD 22 // ********** development build switches ********** @@ -38,32 +38,32 @@ // #define SIMULATE_UI 1 // Build w/o requirement that UI be there // #define TASK_TIMING_OUTPUT_ENABLED 1 // Re-purposes alarm lamp pins for task timing #define DISABLE_ALARM_AUDIO 1 // Disable alarm audio -// #define SKIP_POST 1 // Skip POST tests - all pass -// #define DONT_SKIP_NV_POST 1 // Do not skip NV Data POST + #define SKIP_POST 1 // Skip POST tests - all pass + #define DONT_SKIP_NV_POST 1 // Do not skip NV Data POST // #define USE_LIBRARY_TIME_FUNCTIONS 1 // Use the C library functions mktime() and gmtime() for epoch<=>date conversions #define DISABLE_AIR_TRAP_LEVELING_ALARM 1 // Disable air trap level control alarms // #define DISABLE_3WAY_VALVES 1 // Disable 3-way valves // #define TST_3WAY_VALVES_ALWAYS_OPEN 1 // After POST and homing, open all 4 valves -// #define DISABLE_ACCELS 1 // Disable accelerometer POST and monitoring + #define DISABLE_ACCELS 1 // Disable accelerometer POST and monitoring // #define DISABLE_CRC_ERROR 1 // Do not error on bad CRC for CAN messages // #define DISABLE_ACK_ERRORS 1 // Do not error on failure of other node(s) to ACK a message -// #define DISABLE_MOTOR_CURRENT_CHECKS 1 // Do not error on HD pump current checks -// #define DISABLE_PUMP_FLOW_CHECKS 1 // Do not error on HD pump flow checks -// #define DISABLE_PUMP_SPEED_CHECKS 1 // Do not error on HD pump speed checks -// #define DISABLE_PUMP_DIRECTION_CHECKS 1 // Do not error on HD pump direction checks -// #define DISABLE_SYRINGE_PUMP 1 // Disable syringe pump functionality + #define DISABLE_MOTOR_CURRENT_CHECKS 1 // Do not error on HD pump current checks + #define DISABLE_PUMP_FLOW_CHECKS 1 // Do not error on HD pump flow checks + #define DISABLE_PUMP_SPEED_CHECKS 1 // Do not error on HD pump speed checks + #define DISABLE_PUMP_DIRECTION_CHECKS 1 // Do not error on HD pump direction checks + #define DISABLE_SYRINGE_PUMP 1 // Disable syringe pump functionality #define ALWAYS_ALLOW_SYRINGE_PUMP_CMDS 1 // Allow syringe pump commands at any time except when pump is busy -// #define DISABLE_PRESSURE_CHECKS 1 // Do not error on HD pressure checks -// #define DISABLE_UF_ALARMS 1 // Do not error on HD ultrafiltration checks -// #define DISABLE_VALVE_ALARMS 1 // Do not error on HD valve position + #define DISABLE_PRESSURE_CHECKS 1 // Do not error on HD pressure checks + #define DISABLE_UF_ALARMS 1 // Do not error on HD ultrafiltration checks + #define DISABLE_VALVE_ALARMS 1 // Do not error on HD valve position #define DISABLE_CAL_CHECK 1 // Disable calibration checks // #define RUN_PUMPS_OPEN_LOOP 1 // BP and DPi pumps will be run open loop (no flow sensor feedback) // #define RAW_FLOW_SENSOR_DATA 1 // Test build will not filter flow sensor data // #define READ_FPGA_ASYNC_DATA 1 // Test build reads non-priority register page every other time // #define EMC_TEST_BUILD 1 // EMC test build - HD/DG run separately but connected, HD pumps toggle on/off w/ stop button #define ALARMS_DEBUG 1 // Triggered alarms sent to debug UART #define ALARM_VOLUME_DEFAULT_LOW 1 // Set default alarm volume to lowest - #define TEMP_UI_ALARM_SILENCE_FIX 1 // Temporary UI fix for handling alarm silence request msg +// #define TEMP_UI_ALARM_SILENCE_FIX 1 // Temporary UI fix for handling alarm silence request msg #define SKIP_PRIMING 1 // Skip Pre-treatment Prime #define SKIP_WET_SELF_TESTS 1 // Skip Pre-treatment prime wet self-tests // #define V2_0_SYSTEM 1 // Build for v2.0 system Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r44a100f8e5210a02c23b8fcc4527d8e96d577381 -r7a5747d1e8d741ae72aa20787e0867d95e2e1455 --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 44a100f8e5210a02c23b8fcc4527d8e96d577381) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 7a5747d1e8d741ae72aa20787e0867d95e2e1455) @@ -169,8 +169,9 @@ break; case POST_STATE_ALARM_AUDIO: - testStatus = execAlarmAudioSelfTest(); - postState = handlePOSTStatus( testStatus ); +// testStatus = execAlarmAudioSelfTest(); +// postState = handlePOSTStatus( testStatus ); + postState = POST_STATE_ALARM_LAMP; break; case POST_STATE_ALARM_LAMP: Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r44a100f8e5210a02c23b8fcc4527d8e96d577381 -r7a5747d1e8d741ae72aa20787e0867d95e2e1455 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 44a100f8e5210a02c23b8fcc4527d8e96d577381) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 7a5747d1e8d741ae72aa20787e0867d95e2e1455) @@ -808,10 +808,6 @@ { state = DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE; } - else - { - activateAlarmNoData( ALARM_ID_INSTALL_NEW_CARTRIDGE ); - } if ( TRUE == doesAlarmStatusIndicateStop() ) { Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r44a100f8e5210a02c23b8fcc4527d8e96d577381 -r7a5747d1e8d741ae72aa20787e0867d95e2e1455 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 44a100f8e5210a02c23b8fcc4527d8e96d577381) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 7a5747d1e8d741ae72aa20787e0867d95e2e1455) @@ -1080,8 +1080,8 @@ { U16 msgID; - memcpy( &msgID, (U08*)&pendingAckList[ i ].msg[ sizeof( U08 ) + sizeof( U16) ], sizeof( U16 ) ); - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_CAN_MESSAGE_NOT_ACKED, (U32)msgID ); + memcpy( &msgID, (U08*)&pendingAckList[ i ].msg[ sizeof( U08 ) + sizeof( U16) ], sizeof( U16 ) ); + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_CAN_MESSAGE_NOT_ACKED, (U32)msgID ); pendingAckList[ i ].used = FALSE; // Take pending message off of list } } @@ -1535,14 +1535,14 @@ handleSetFluidLeakStateOverrideRequest( message ); break; - case MSG_ID_HD_BLOOD_LEAK_DATA_SEND_INTERVAL_OVERRIDE: - handleSetBloodLeakDataBroadcastIntervalOverrideRequest( message ); - break; - case MSG_ID_HD_BLOOD_LEAK_STATUS_OVERRIDE: handleSetBloodLeakStatusOverrideRequest( message ); break; + case MSG_ID_HD_BLOOD_LEAK_DATA_SEND_INTERVAL_OVERRIDE: + handleSetBloodLeakDataBroadcastIntervalOverrideRequest( message ); + break; + case MSG_ID_HD_BLOOD_LEAK_ZERO_REQUEST: handleBloodLeakZeroRequest( message ); break; @@ -1643,6 +1643,14 @@ handleTestSyringePumpADCReadCtrOverrideRequest( message ); break; + case MSG_ID_HD_VALVES_CURRENT_OVERRIDE: + handleTestValvesCurrentOverrideRequest( message ); + break; + + case MSD_ID_HD_VALVES_POSITION_COUNT_OVERRIDE: + handleTestValvesPositionCountOverrideRequest( message ); + break; + case MSG_ID_HD_SET_CALIBRATION_RECORD: handleSetHDCalibrationRecord( message ); break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r44a100f8e5210a02c23b8fcc4527d8e96d577381 -r7a5747d1e8d741ae72aa20787e0867d95e2e1455 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 44a100f8e5210a02c23b8fcc4527d8e96d577381) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 7a5747d1e8d741ae72aa20787e0867d95e2e1455) @@ -5344,13 +5344,13 @@ *************************************************************************/ void handleSetFluidLeakStateOverrideRequest( MESSAGE_T *message ) { - TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; + TEST_OVERRIDE_PAYLOAD_T payload; BOOL result = FALSE; // Verify payload length - if ( sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) == message->hdr.payloadLen ) + if ( sizeof( TEST_OVERRIDE_PAYLOAD_T ) == message->hdr.payloadLen ) { - memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) ); + memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_PAYLOAD_T ) ); if ( FALSE == payload.reset ) { result = testSetFluidLeakStateOverride( ( FLUID_LEAK_STATES_T)( payload.state.u32 ) ); @@ -6181,6 +6181,40 @@ /*********************************************************************//** * @brief + * The handleTestValvesCurrentOverrideRequest function handles a + * request to override HD valves' current. + * @details Inputs: none + * @details Outputs: message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +void handleTestValvesCurrentOverrideRequest( MESSAGE_T *message ) +{ + TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; + BOOL result = FALSE; + + // Verify payload length + if ( sizeof(TEST_OVERRIDE_ARRAY_PAYLOAD_T) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof(TEST_OVERRIDE_ARRAY_PAYLOAD_T) ); + if ( FALSE == payload.reset ) + { + result = testSetValvesCurrentOverride( payload.index, payload.state.f32 ); + } + else + { + result = testResetValvesCurrentOverride( payload.index ); + } + + result = testSetValvesCurrentOverride( payload.index, payload.state.f32 ); + } + + // Respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + +/*********************************************************************//** + * @brief * The handleTestAlarmInfoSendIntervalOverrideRequest function handles a * request to override the HD alarm information broadcast interval. * @details Inputs: none @@ -6462,7 +6496,36 @@ result = testResetSyringePumpADCReadCounter(); } } +} +/*********************************************************************//** + * @brief + * The handleTestValvesPositionCountOverrideRequest function handles a + * request to override HD valves' position in counts. + * @details Inputs: none + * @details Outputs: message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +void handleTestValvesPositionCountOverrideRequest( MESSAGE_T *message ) +{ + TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; + BOOL result = FALSE; + + // Verify payload length + if ( sizeof(TEST_OVERRIDE_ARRAY_PAYLOAD_T) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof(TEST_OVERRIDE_ARRAY_PAYLOAD_T) ); + if ( FALSE == payload.reset ) + { + result = testSetValvesPositionCountOverride( payload.index, payload.state.u32 ); + } + else + { + result = testResetValvesPositionCountOverride( payload.index ); + } + } + // Respond to request sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); } Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r44a100f8e5210a02c23b8fcc4527d8e96d577381 -r7a5747d1e8d741ae72aa20787e0867d95e2e1455 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 44a100f8e5210a02c23b8fcc4527d8e96d577381) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 7a5747d1e8d741ae72aa20787e0867d95e2e1455) @@ -713,6 +713,12 @@ // MSG_ID_HD_SYRINGE_PUMP_ADC_READ_COUNTER_OVERRIDE void handleTestSyringePumpADCReadCtrOverrideRequest( MESSAGE_T *message ); +// MSG_ID_HD_VALVES_CURRENT_OVERRIDE +void handleTestValvesCurrentOverrideRequest( MESSAGE_T *message ); + +// MSD_ID_HD_VALVES_POSITION_COUNT_OVERRIDE +void handleTestValvesPositionCountOverrideRequest( MESSAGE_T *message ); + /**@}*/ #endif