Index: firmware/App/Controllers/BloodLeak.c =================================================================== diff -u -r2892e3f528d76f45719b7124358e9d242bf27172 -r9c785a779da348df1c066ae0da2d0f53de7ea936 --- firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 2892e3f528d76f45719b7124358e9d242bf27172) +++ firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 9c785a779da348df1c066ae0da2d0f53de7ea936) @@ -57,7 +57,7 @@ #define BLOOD_LEAK_MIN_WAIT_TIME_2_GET_CAL_MS ( 2 * MS_PER_SECOND ) ///< Blood leak minimum wait time to get calibration in milliseconds. // TODO remove after zeroing was fixed -#define BLOOD_LEAK_ZERO_SENSOR_SEQ_LENGTH 4 ///< Blood leak zero sensor sequence length. +#define BLOOD_LEAK_ZERO_SENSOR_SEQ_LENGTH 5 ///< Blood leak zero sensor sequence length. #define BLOOD_LEAK_ZERO_Z_CHAR_ASCII 90 ///< Blood leak zero sensor 'Z' command in ascii. #define BLOOD_LEAK_ZERO_FIFO_STOP_INDEX 2 ///< Blood leak zero sensor stop writing to FIFO command. // TODO remove after zeroing was fixed @@ -109,6 +109,7 @@ // TODO remove after zeroing was fixed /// Blood leak zero sensor sequence array. static const U08 BLOOD_LEAK_ZERO_SNSR_SEQUENCE[ BLOOD_LEAK_ZERO_SENSOR_SEQ_LENGTH ] = { BLOOD_LEAK_ZERO_Z_CHAR_ASCII, + BLOOD_LEAK_CARRIAGE_RETURN_ASCII, BLOOD_LEAK_STOP_WRITE_FIFO_COMMAND, BLOOD_LEAK_UART_COMM_ACTIVE_HIGH, BLOOD_LEAK_UART_COMM_ACTIVE_LOW }; @@ -412,7 +413,7 @@ state = BLOOD_LEAK_ZERO_STATE; bloodLeakZeroRequested = FALSE; - //setFPGABloodLeakZero(); // TODO check if this is needed + setFPGABloodLeakZero(); // TODO check if this is needed bloodLeakZeroStartTime = getMSTimerCount(); } @@ -431,11 +432,11 @@ { BLOOD_LEAK_STATES_T state = BLOOD_LEAK_ZERO_STATE; - if ( bloodLeakUARTCmdIndex < BLOOD_LEAK_ZERO_SENSOR_SEQ_LENGTH ) + /*if ( bloodLeakUARTCmdIndex < BLOOD_LEAK_ZERO_SENSOR_SEQ_LENGTH ) { U08 command = BLOOD_LEAK_ZERO_SNSR_SEQUENCE[ bloodLeakUARTCmdIndex ]; - if ( bloodLeakUARTCmdIndex <= 1) //BLOOD_LEAK_ZERO_FIFO_STOP_INDEX ) + if ( bloodLeakUARTCmdIndex <= BLOOD_LEAK_ZERO_FIFO_STOP_INDEX ) { setFPGABloodLeakUARTTransmit( (U08)command ); } @@ -446,7 +447,7 @@ bloodLeakUARTCmdIndex++; } - else + else*/ { if ( TRUE == FPGABloodLeakZeroDetected() ) { @@ -460,7 +461,6 @@ { if ( TRUE == didTimeout( bloodLeakZeroStartTime, BLOOD_LEAK_TIMEOUT_MS ) ) { - BOOL test = FALSE; #ifndef IGNORE_BLOOD_LEAK_ALARM activateAlarmNoData( ALARM_ID_HD_BLOOD_LEAK_FAULT ); #endif @@ -564,7 +564,7 @@ state = BLOOD_LEAK_ZERO_STATE; bloodLeakZeroRequested = FALSE; - //setFPGABloodLeakZero(); // TODO is this needed + setFPGABloodLeakZero(); // TODO is this needed bloodLeakZeroStartTime = getMSTimerCount(); } Index: firmware/App/Controllers/Fans.c =================================================================== diff -u -r2892e3f528d76f45719b7124358e9d242bf27172 -r9c785a779da348df1c066ae0da2d0f53de7ea936 --- firmware/App/Controllers/Fans.c (.../Fans.c) (revision 2892e3f528d76f45719b7124358e9d242bf27172) +++ firmware/App/Controllers/Fans.c (.../Fans.c) (revision 9c785a779da348df1c066ae0da2d0f53de7ea936) @@ -57,17 +57,17 @@ /// Fans exec states typedef enum fans_Exec_States { - FANS_EXEC_STATE_WAIT_FOR_POST_STATE = 0, ///< Fans exec state start state - FANS_EXEC_STATE_RUN_STATE, ///< Fans exec state run state - NUM_OF_FANS_EXEC_STATES, ///< Number of fans exec states + FANS_EXEC_STATE_WAIT_FOR_POST_STATE = 0, ///< Fans exec state start state. + FANS_EXEC_STATE_RUN_STATE, ///< Fans exec state run state. + NUM_OF_FANS_EXEC_STATES, ///< Number of fans exec states. } FANS_EXEC_STATES_T; /// Fans status struct typedef struct { - F32 targetDutyCycle; ///< Fan's target duty cycle that was fed to the fans - F32 targetRPM; ///< Fan's target RPM - OVERRIDE_F32_T rpm[ NUM_OF_FANS_NAMES ]; ///< Fan's current tachometers reading in RPM + OVERRIDE_F32_T dutyCycle; ///< Fan's target duty cycle that was fed to the fans. + F32 targetRPM; ///< Fan's target RPM. + OVERRIDE_F32_T rpm[ NUM_OF_FANS_NAMES ]; ///< Fan's current tachometers reading in RPM. } FAN_STATUS_T; static FAN_STATUS_T fansStatus; ///< Fans status. @@ -88,12 +88,6 @@ static OVERRIDE_U32_T fansPublishInterval = { FANS_DATA_PUBLISH_INTERVAL, FANS_DATA_PUBLISH_INTERVAL, 0, 0 }; ///< Fans publish time interval override -// TODO for testing remove -BOOL isTest = FALSE; -U32 alarmTime = 0; -U32 alarmElapsed = 0; -// TODO for testing remove - static FANS_EXEC_STATES_T handleExecStateWaitForPOST( void ); static FANS_EXEC_STATES_T handleExecStateRun( void ); @@ -133,20 +127,17 @@ // Initialize the fans for ( fan = FAN_INLET_1; fan < NUM_OF_FANS_NAMES; fan++ ) { - fansStatus.targetDutyCycle = 0.0; + fansStatus.dutyCycle.data = 0.0; + fansStatus.dutyCycle.ovInitData = 0.0; + fansStatus.dutyCycle.ovData = 0.0; + fansStatus.dutyCycle.override = OVERRIDE_RESET; fansStatus.targetRPM = 0.0; fansStatus.rpm[ fan ].data = 0.0; fansStatus.rpm[ fan ].ovData = 0.0; fansStatus.rpm[ fan ].ovInitData = 0.0; fansStatus.rpm[ fan ].override = OVERRIDE_RESET; } - // TODO for testing remove - isTest = FALSE; - alarmTime = 0; - alarmElapsed = 0; - // TODO for testing remove - // Initialize a persistent alarm for fans RPM out of range initPersistentAlarm( ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE, FANS_MAX_ALLOWED_RPM_OUT_OF_RANGE_INTERVAL, FANS_MAX_ALLOWED_RPM_OUT_OF_RANGE_INTERVAL ); } @@ -278,7 +269,7 @@ FANS_EXEC_STATES_T state = FANS_EXEC_STATE_RUN_STATE; // Check if it is time to check for the control - if ( ++fansControlCounter > FANS_CONTROL_INTERVAL ) + if ( ( ++fansControlCounter > FANS_CONTROL_INTERVAL ) && ( OVERRIDE_RESET == fansStatus.dutyCycle.override ) ) { // Get the maximum temperature among all the thermistors and temperature sensors to run fan from the hottest temperature F32 temperature = getMaximumTemperature(); @@ -298,43 +289,48 @@ // If the fans calculated duty cycle is greater than the previous calculated duty cycle, we are ramping up // otherwise, we are ramping down - if ( dutyCycle >= fansStatus.targetDutyCycle ) + if ( dutyCycle >= fansStatus.dutyCycle.data ) { // If the delta duty cycle from the previous duty cycle is greater than the max allowed ramp up duty cycle, // otherwise, only add the delta duty cycle - if ( ( dutyCycle - fansStatus.targetDutyCycle ) >= FANS_MAX_ALLOWED_RAMP_UP_DELTA_DUTY_CYCLE ) + if ( ( dutyCycle - fansStatus.dutyCycle.data ) >= FANS_MAX_ALLOWED_RAMP_UP_DELTA_DUTY_CYCLE ) { - fansStatus.targetDutyCycle += FANS_MAX_ALLOWED_RAMP_UP_DELTA_DUTY_CYCLE; + fansStatus.dutyCycle.data += FANS_MAX_ALLOWED_RAMP_UP_DELTA_DUTY_CYCLE; } else { - fansStatus.targetDutyCycle = dutyCycle; + fansStatus.dutyCycle.data = dutyCycle; } } else { // If the delta duty cycle from the previous duty cycle is greater than the max allowed ramp down duty cycle, // otherwise, only add the delta duty cycle - if ( ( fansStatus.targetDutyCycle - dutyCycle ) >= FANS_MAX_ALLOWED_RAMP_DOWN_DELTA_DUTY_CYCLE ) + if ( ( fansStatus.dutyCycle.data - dutyCycle ) >= FANS_MAX_ALLOWED_RAMP_DOWN_DELTA_DUTY_CYCLE ) { // If we are ramping down, set the target duty cycle to max allowed ramp down duty cycle - fansStatus.targetDutyCycle -= FANS_MAX_ALLOWED_RAMP_DOWN_DELTA_DUTY_CYCLE; + fansStatus.dutyCycle.data -= FANS_MAX_ALLOWED_RAMP_DOWN_DELTA_DUTY_CYCLE; } else { - fansStatus.targetDutyCycle = dutyCycle; + fansStatus.dutyCycle.data = dutyCycle; } } // Calculate the target RPM from the duty cycle. - fansStatus.targetRPM = fansStatus.targetDutyCycle * FANS_MAX_ALLOWED_RPM; + fansStatus.targetRPM = fansStatus.dutyCycle.data * FANS_MAX_ALLOWED_RPM; // Set the PWM to inlet and outlet fans - setInletFansDutyCycle( fansStatus.targetDutyCycle ); + setInletFansDutyCycle( fansStatus.dutyCycle.data ); // Reset the counter fansControlCounter = 0; } + else if ( OVERRIDE_KEY == fansStatus.dutyCycle.override ) + { + // The fans are in override mode set the override duty cycle + setInletFansDutyCycle( fansStatus.dutyCycle.ovData ); + } return state; } @@ -430,7 +426,8 @@ // The RPM is expected to be 5500 @ 100% duty cycle // The nominal RPM = duty cycle * 5500 / 1.0 // The RPM tolerance is -25% to +50% of the nominal RPM - F32 fansNominalRPM = fansStatus.targetDutyCycle * FANS_MAX_ALLOWED_RPM; + F32 dutyCycle = ( OVERRIDE_RESET == fansStatus.dutyCycle.override ? fansStatus.dutyCycle.data : fansStatus.dutyCycle.ovData ); + F32 fansNominalRPM = dutyCycle * FANS_MAX_ALLOWED_RPM; F32 fansMinAllowedRPM = fansNominalRPM - ( fansNominalRPM * FANS_MIN_RPM_OUT_OF_RANGE_TOL ); F32 fansMaxAllowedRPM = fansNominalRPM + ( fansNominalRPM * FANS_MAX_RPM_OUT_OF_RANGE_TOL ); @@ -439,17 +436,6 @@ { rpm = getMeasuredFanRPM( fan ); isFanRPMOutOfRange |= ( ( rpm < fansMinAllowedRPM ) || ( rpm > fansMaxAllowedRPM ) ? TRUE : FALSE ); - - // TODO test code - if ( (TRUE == isFanRPMOutOfRange) && (alarmTime == 0) ) - { - alarmTime = getMSTimerCount(); - } - else if ( FALSE == isFanRPMOutOfRange) - { - alarmTime = 0; - } - // TODO test code } if ( FALSE == hasAlarmBeenRaised ) @@ -461,8 +447,6 @@ SET_ALARM_WITH_1_F32_DATA( ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE, rpm ) // Set the alarm flag to TRUE hasAlarmBeenRaised = TRUE; - - alarmElapsed = calcTimeSince(alarmTime); // TODO test code } // If the alarm has been raised but the start time of the alarm has not been set, set the alarm start timer if ( ( TRUE == hasAlarmBeenRaised ) && ( 0 == rpmAlarmStartTime ) ) @@ -532,11 +516,10 @@ { FANS_DATA_T data; - data.fansDutyCycle = fansStatus.targetDutyCycle * FRACTION_TO_PERCENT_FACTOR; + data.fansDutyCycle = ( OVERRIDE_RESET == fansStatus.dutyCycle.override ? fansStatus.dutyCycle.data : fansStatus.dutyCycle.ovData ) * FRACTION_TO_PERCENT_FACTOR; data.fansTargetRPM = fansStatus.targetRPM; data.fanInlet1RPM = getMeasuredFanRPM( FAN_INLET_1 ); data.rpmAlarmTimeOffset = getRPMAlarmStartTimeOffset(); - data.alarmElapsedTime = alarmElapsed; broadcastData( MSG_ID_HD_FANS_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( FANS_DATA_T ) ); @@ -697,5 +680,54 @@ return result; } +/*********************************************************************//** + * @brief + * The testSetFansDutyCycleOverride function overrides fans duty cycle + * @details Inputs: none + * @details Outputs: fansStatus + * @param value the duty cycle value to be overridden + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testSetFansDutyCycleOverride( F32 value ) +{ + BOOL result = FALSE; + + if ( TRUE == isTestingActivated() ) + { + if( ( value >= FANS_MIN_DUTY_CYCLE ) && ( value <= FANS_MAX_DUTY_CYCLE ) ) + { + fansStatus.dutyCycle.ovData = value; + fansStatus.dutyCycle.override = OVERRIDE_KEY; + + result = TRUE; + } + } + + return result; +} + +/*********************************************************************//** + * @brief + * The testResetFansDutyCycleOverride function resets the fans duty cycle + * override + * @details Inputs: none + * @details Outputs: fansStatus + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testResetFansDutyCycleOverride( void ) +{ + BOOL result = FALSE; + + if ( TRUE == isTestingActivated() ) + { + fansStatus.dutyCycle.override = OVERRIDE_RESET; + fansStatus.dutyCycle.ovData = 0.0; + + result = TRUE; + } + + return result; +} + /**@}*/ Index: firmware/App/Controllers/Fans.h =================================================================== diff -u -r2892e3f528d76f45719b7124358e9d242bf27172 -r9c785a779da348df1c066ae0da2d0f53de7ea936 --- firmware/App/Controllers/Fans.h (.../Fans.h) (revision 2892e3f528d76f45719b7124358e9d242bf27172) +++ firmware/App/Controllers/Fans.h (.../Fans.h) (revision 9c785a779da348df1c066ae0da2d0f53de7ea936) @@ -42,7 +42,6 @@ F32 fansTargetRPM; ///< Fans target RPM F32 fanInlet1RPM; ///< Fan inlet 1 RPM U32 rpmAlarmTimeOffset; ///< RPM alarm time offset - U32 alarmElapsedTime; } FANS_DATA_T; void initFans( void ); @@ -62,6 +61,9 @@ BOOL testSetFanRPMAlarmStartTimeOffsetOverride( U32 hours, U32 minutes ); BOOL testResetFanRPMAlarmStartTimeOffsetOverride( void ); +BOOL testSetFansDutyCycleOverride( F32 value ); +BOOL testResetFansDutyCycleOverride( void ); + /**@}*/ Index: firmware/App/HDCommon.h =================================================================== diff -u -r2892e3f528d76f45719b7124358e9d242bf27172 -r9c785a779da348df1c066ae0da2d0f53de7ea936 --- firmware/App/HDCommon.h (.../HDCommon.h) (revision 2892e3f528d76f45719b7124358e9d242bf27172) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision 9c785a779da348df1c066ae0da2d0f53de7ea936) @@ -78,14 +78,14 @@ #define ALLOW_1_MIN_TREATMENT_DURATION 1 // Allow user to change treatment duration to as low as 1 minute #define DISABLE_SYRINGE_PUMP_ALARMS 1 // Disable some syringe pump alarms that are triggering intermittently // #define NO_PUMP_FLOW_LIMITS 1 // Allow any commanded flow rate for peristaltic pumps -// #define DISABLE_BUBBLE_ALARMS 1 // Disable bubble alarms + #define DISABLE_BUBBLE_ALARMS 1 // Disable bubble alarms #define DISABLE_UI_POST_TEST 1 // Disable the UI POST // #define DISABLE_UI_COMM_TO_ALARM 1 // Disable UI comm timeouts #define DISABLE_WD_AND_SFTY_POST_TESTS 1 // Disable watchdog and safety shutdown POST tests #define DISABLE_ILLEGAL_AIR_TRAP_ALARM 1 // Disable illegal state for air trap alarm #define SKIP_RESERVOIR_ALARMS 1 // Skip reservoir management alarms #define IGNORE_BLOOD_LEAK_SELF_TEST 1 // Ignore blood leak self test - #define IGNORE_BLOOD_LEAK_ALARM 1 // Ignore blood leak alarm +// #define IGNORE_BLOOD_LEAK_ALARM 1 // Ignore blood leak alarm // Skip Pre-Treatment and get to treatment as soon as possible #define SKIP_UI_INTERACTION 1 // Skip UI interaction. Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r6623684ddacf5beebd15bce8a1dbd06a442fb38e -r9c785a779da348df1c066ae0da2d0f53de7ea936 --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 6623684ddacf5beebd15bce8a1dbd06a442fb38e) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 9c785a779da348df1c066ae0da2d0f53de7ea936) @@ -394,6 +394,10 @@ { HD_POST_STATE_T result = postState; +#ifdef BOARD_WITH_NO_HARDWARE + testStatus = SELF_TEST_STATUS_PASSED; +#endif + if ( testStatus == SELF_TEST_STATUS_PASSED ) { // Broadcast passed POST result Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -r95561ae1f450dc687b9ce8d4cce2ac91293bc925 -r9c785a779da348df1c066ae0da2d0f53de7ea936 --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 95561ae1f450dc687b9ce8d4cce2ac91293bc925) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 9c785a779da348df1c066ae0da2d0f53de7ea936) @@ -201,6 +201,7 @@ default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_TREATMENT_RESERVOIR_MANAGEMENT_STATE, (U32)reservoirsState ) reservoirsState = TREATMENT_RESERVOIR_MGMT_START_STATE; + break; } publishReservoirData(); Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r61716bc97ecca8af1ec560333844a8cf602eccb0 -r9c785a779da348df1c066ae0da2d0f53de7ea936 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 61716bc97ecca8af1ec560333844a8cf602eccb0) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 9c785a779da348df1c066ae0da2d0f53de7ea936) @@ -1613,6 +1613,10 @@ handleTestFansRPMAlarmStartTimeOffsetOverrideRequest( message ); break; + case MSG_ID_HD_FANS_DUTY_CYCLE_OVERRIDE: + handleSetFansDutyCycleOverrideRequest( message ); + break; + default: // Unrecognized message ID received - ignore break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r61716bc97ecca8af1ec560333844a8cf602eccb0 -r9c785a779da348df1c066ae0da2d0f53de7ea936 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 61716bc97ecca8af1ec560333844a8cf602eccb0) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 9c785a779da348df1c066ae0da2d0f53de7ea936) @@ -6780,4 +6780,37 @@ sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); } +/*********************************************************************//** + * @brief + * The handleSetFansDutyCycleOverrideRequest function handles a + * request to override the fans duty cycle. + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleSetFansDutyCycleOverrideRequest( MESSAGE_T *message ) +{ + TEST_OVERRIDE_PAYLOAD_T payload; + BOOL result = FALSE; + + // verify payload length + if ( sizeof( TEST_OVERRIDE_PAYLOAD_T ) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_PAYLOAD_T ) ); + + if ( FALSE == payload.reset ) + { + result = testSetFansDutyCycleOverride( payload.state.f32 ); + } + else + { + result = testResetFansDutyCycleOverride(); + } + } + + // Respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + /**@}*/ Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r61716bc97ecca8af1ec560333844a8cf602eccb0 -r9c785a779da348df1c066ae0da2d0f53de7ea936 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 61716bc97ecca8af1ec560333844a8cf602eccb0) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 9c785a779da348df1c066ae0da2d0f53de7ea936) @@ -764,6 +764,9 @@ // MSG_ID_HD_FAN_RPM_ALARM_START_TIME_OVERRIDE void handleTestFansRPMAlarmStartTimeOffsetOverrideRequest( MESSAGE_T *message ); +// MSG_ID_HD_FANS_DUTY_CYCLE_OVERRIDE +void handleSetFansDutyCycleOverrideRequest( MESSAGE_T *message ); + /**@}*/ #endif Index: firmware/App/Tasks/TaskGeneral.c =================================================================== diff -u -r24b2fe72608344e67ef37234085d15ad5e4fcc37 -r9c785a779da348df1c066ae0da2d0f53de7ea936 --- firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 24b2fe72608344e67ef37234085d15ad5e4fcc37) +++ firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 9c785a779da348df1c066ae0da2d0f53de7ea936) @@ -75,15 +75,16 @@ // Monitor pressure/occlusion sensors execPresOccl(); -#endif + // Monitor voltages execVoltagesMonitor(); // Monitor switches execSwitches(); // Monitor temperatures - execTemperatures(); + execTemperatures(); +#endif // Run operation mode state machine execOperationModes(); @@ -107,12 +108,10 @@ // Monitor/Control fans execFans(); -#endif // Manage NVDataMgmt process record state machine execNVDataMgmtProcessRecord(); -#ifndef RM46_EVAL_BOARD_TARGET // Manage alarm state execAlarmMgmt(); #endif Index: firmware/App/Tasks/TaskPriority.c =================================================================== diff -u -r2892e3f528d76f45719b7124358e9d242bf27172 -r9c785a779da348df1c066ae0da2d0f53de7ea936 --- firmware/App/Tasks/TaskPriority.c (.../TaskPriority.c) (revision 2892e3f528d76f45719b7124358e9d242bf27172) +++ firmware/App/Tasks/TaskPriority.c (.../TaskPriority.c) (revision 9c785a779da348df1c066ae0da2d0f53de7ea936) @@ -60,10 +60,10 @@ if ( TRUE == uiCommunicated() ) #endif { -#ifndef BOARD_WITH_NO_HARDWARE // 1st pass for FPGA - execFPGAIn(); - + execFPGAIn(); + +#ifndef BOARD_WITH_NO_HARDWARE // Verify processor clock speed against FPGA clock execFPGAClockSpeedTest(); @@ -108,10 +108,13 @@ // Exec and monitor valves execValves(); #endif -#endif +#endif +#endif + // Monitor blood leak detector + //execBloodLeak(); // Todo remove when board with hardware is disabled + // 2nd pass for FPGA execFPGAOut(); -#endif } // Check in with watchdog manager