Index: firmware/App/Drivers/BatteryDriver.c =================================================================== diff -u -re353dd386442059f6a658804e08909deec511292 -r128001070f25543484b1232a38dc9100498e1a04 --- firmware/App/Drivers/BatteryDriver.c (.../BatteryDriver.c) (revision e353dd386442059f6a658804e08909deec511292) +++ firmware/App/Drivers/BatteryDriver.c (.../BatteryDriver.c) (revision 128001070f25543484b1232a38dc9100498e1a04) @@ -48,7 +48,6 @@ /// Lookup table mapping register enum to register addresses. static const U32 regAddr[ NUM_OF_BATTERY_REGISTERS ] = { - 0x00, ///< BEGINNING_OF_LIST 0x0F, ///< BATTERY_PACK_REMAINING_CAPACITY 0x16, ///< BATTERY_PACK_BATTERY_STATUS 0x0D, ///< BATTERY_PACK_RELATIVE_STATE_OF_CHARGE Index: firmware/App/Drivers/BatteryDriver.h =================================================================== diff -u -re353dd386442059f6a658804e08909deec511292 -r128001070f25543484b1232a38dc9100498e1a04 --- firmware/App/Drivers/BatteryDriver.h (.../BatteryDriver.h) (revision e353dd386442059f6a658804e08909deec511292) +++ firmware/App/Drivers/BatteryDriver.h (.../BatteryDriver.h) (revision 128001070f25543484b1232a38dc9100498e1a04) @@ -35,8 +35,8 @@ /// Enumeration of battery data to be read from the battery pack or battery charger in a round-robin fashion. typedef enum BatteryManagementEnum { - BEGINNING_OF_LIST = 0, ///< Start of battery data list - BATTERY_PACK_REMAINING_CAPACITY, ///< Remaining battery capacity (in mAh) + BATTERY_PACK_REMAINING_CAPACITY = 0, ///< Remaining battery capacity (in mAh) + BEGINNING_OF_LIST = BATTERY_PACK_REMAINING_CAPACITY, ///< Start of battery data list BATTERY_PACK_BATTERY_STATUS, ///< Battery pack status BATTERY_PACK_RELATIVE_STATE_OF_CHARGE, ///< Battery pack relative state of charge (%) BATTERY_PACK_FULL_CHARGE_CAPACITY, ///< Battery pack full charge capacity in mAh Index: firmware/App/Monitors/Battery.c =================================================================== diff -u -re353dd386442059f6a658804e08909deec511292 -r128001070f25543484b1232a38dc9100498e1a04 --- firmware/App/Monitors/Battery.c (.../Battery.c) (revision e353dd386442059f6a658804e08909deec511292) +++ firmware/App/Monitors/Battery.c (.../Battery.c) (revision 128001070f25543484b1232a38dc9100498e1a04) @@ -97,6 +97,8 @@ // Initialize persistent alarm for battery pack status error initPersistentAlarm( ALARM_ID_TD_BATTERY_PACK_ERROR_DETECTED, 0, BATT_STATUS_ERROR_PERSIST_MS ); + // Initialize persistent alarm for battery charger status error + initPersistentAlarm( ALARM_ID_TD_BATTERY_CHARGER_ERROR_DETECTED, 0U, BATT_STATUS_ERROR_PERSIST_MS ); // Initialize bad message CRC time windowed count initTimeWindowedCount( TIME_WINDOWED_COUNT_BATT_COMM_ERROR, BATTERY_COMM_FAULT_COUNT, BATTERY_COMM_FAULT_TIMER ); } @@ -221,10 +223,6 @@ { U32 responseData; - // Increment the position in the enum. Starting value is BEGINNING_OF_LIST (0), so on the first - // cycle through this function it will be set to the first valid position (1) - currentBmValue += 1; - switch( currentBmValue ) { case BATTERY_PACK_REMAINING_CAPACITY: @@ -346,6 +344,11 @@ currentBmValue ); break; } + currentBmValue++; + if( currentBmValue > BATTERY_END_OF_LIST_TIME_TO_PUBLISH ) + { + currentBmValue = BEGINNING_OF_LIST; + } } /*********************************************************************//**