Index: firmware/App/Drivers/Battery.c =================================================================== diff -u -rdbfeaf78c05fc922eba6ff8c7a31ba8a9392c642 -r5e3e9943759f429fc2213db848475c07ca6b79a5 --- firmware/App/Drivers/Battery.c (.../Battery.c) (revision dbfeaf78c05fc922eba6ff8c7a31ba8a9392c642) +++ firmware/App/Drivers/Battery.c (.../Battery.c) (revision 5e3e9943759f429fc2213db848475c07ca6b79a5) @@ -54,8 +54,6 @@ static BOOL hasBatteryChargerStatus = FALSE; ///< Flag indicates if battery charger status has been obtained. static U32 commFaultPersistentCount = 0; ///< Persistence count for battery comm fault. -static SELF_TEST_STATUS_T batteryTestStatus; ///< Current battery SOC test status. - // ********** private function prototypes ********** static U32 getBatteryRemainingPercent( void ); @@ -84,7 +82,6 @@ lostACPowerPersistentCount = 0; hasBatteryChargerStatus = FALSE; commFaultPersistentCount = 0; - batteryTestStatus = SELF_TEST_STATUS_IN_PROGRESS; setupI2CDriver(); } @@ -134,10 +131,14 @@ if ( TRUE == getBatteryData( BATTERY_PACK_SLAVE_ADDRESS, BATTERY_PACK_REL_STATE_OF_CHARGE_CMD, &relStateOfCharge_pct ) ) { batteryRelStateOfCharge_pct.data = (U32)relStateOfCharge_pct; - if ( ( SELF_TEST_STATUS_IN_PROGRESS == batteryTestStatus ) && ( getBatteryRemainingPercent() < BATTERY_PACK_MIN_CHARGE_PCT ) ) + if ( getBatteryRemainingPercent() < BATTERY_PACK_MIN_CHARGE_PCT ) { SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_BATTERY_PACK_CHARGE_TOO_LOW, getBatteryRemainingPercent() ); } + else + { + clearAlarmCondition( ALARM_ID_HD_BATTERY_PACK_CHARGE_TOO_LOW ); + } } if ( TRUE == getBatteryData( BATTERY_PACK_SLAVE_ADDRESS, BATTERY_PACK_STATUS_CMD, &batteryPackStatus ) ) @@ -153,24 +154,14 @@ /*********************************************************************//** * @brief - * The execBatteryTest function executes the battery SOC check. - * @details Inputs: battery state of charge - * @details Outputs: alerts when battery pack charge is low - * @return battery SOC test status + * The isBatteryCharged function checks if the battery is charged. + * @details Inputs: batteryRelStateOfCharge_pct + * @details Outputs: none + * @return TRUE if battery is charged, otherwise FALSE *************************************************************************/ -SELF_TEST_STATUS_T execBatteryTest( void ) +BOOL isBatteryCharged( void ) { -#ifndef DISABLE_BATT_COMM - if ( batteryRelStateOfCharge_pct > BATTERY_PACK_MIN_CHARGE_PCT ) - { - clearAlarmCondition( ALARM_ID_HD_BATTERY_PACK_CHARGE_TOO_LOW ); - batteryTestStatus = SELF_TEST_STATUS_PASSED; - } -#else - batteryTestStatus = SELF_TEST_STATUS_PASSED; -#endif - - return batteryTestStatus; + return ( getBatteryRemainingPercent() > BATTERY_PACK_MIN_CHARGE_PCT ? TRUE : FALSE ); } /*********************************************************************//** Index: firmware/App/Drivers/Battery.h =================================================================== diff -u -rdbfeaf78c05fc922eba6ff8c7a31ba8a9392c642 -r5e3e9943759f429fc2213db848475c07ca6b79a5 --- firmware/App/Drivers/Battery.h (.../Battery.h) (revision dbfeaf78c05fc922eba6ff8c7a31ba8a9392c642) +++ firmware/App/Drivers/Battery.h (.../Battery.h) (revision 5e3e9943759f429fc2213db848475c07ca6b79a5) @@ -35,7 +35,7 @@ void initBattery( void ); void execBatteryMonitor( void ); -SELF_TEST_STATUS_T execBatteryTest( void ); +BOOL isBatteryCharged( void ); BOOL testSetBatteryRemainingPercentOverride( U32 value ); BOOL testResetSetBatteryRemainingPercentOverride( void ); Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r7690b677a3870da643e67bd622d3b342dfac0040 -r5e3e9943759f429fc2213db848475c07ca6b79a5 --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 7690b677a3870da643e67bd622d3b342dfac0040) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 5e3e9943759f429fc2213db848475c07ca6b79a5) @@ -139,11 +139,6 @@ postState = handlePOSTStatus( testStatus ); break; - case POST_STATE_BATTERY: - testStatus = execBatteryTest(); - postState = handlePOSTStatus( testStatus ); - break; - case POST_STATE_WATCHDOG: testStatus = execWatchdogTest(); postState = handlePOSTStatus( testStatus ); Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r44a100f8e5210a02c23b8fcc4527d8e96d577381 -r5e3e9943759f429fc2213db848475c07ca6b79a5 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 44a100f8e5210a02c23b8fcc4527d8e96d577381) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 5e3e9943759f429fc2213db848475c07ca6b79a5) @@ -17,6 +17,7 @@ #include "AirTrap.h" #include "AlarmLamp.h" +#include "Battery.h" #include "BloodFlow.h" #include "Buttons.h" #include "DGInterface.h" @@ -344,6 +345,11 @@ rejReason = REQUEST_REJECT_REASON_DG_NOT_IN_STANDBY_IDLE_STATE; } + if ( FALSE == isBatteryCharged() ) + { + rejReason = REQUEST_REJECT_REASON_BATTERY_IS_NOT_CHARGED; + } + if ( REQUEST_REJECT_REASON_NONE == rejReason ) { result = TRUE; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rcc4f797163697151084f48523b93a420dbf35388 -r5e3e9943759f429fc2213db848475c07ca6b79a5 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision cc4f797163697151084f48523b93a420dbf35388) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 5e3e9943759f429fc2213db848475c07ca6b79a5) @@ -21,6 +21,7 @@ #include "Accel.h" #include "AlarmLamp.h" +#include "Battery.h" #include "Buttons.h" #include "ConsumableSelfTest.h" #include "FPGA.h"