Index: firmware/App/Drivers/BatteryDriver.h =================================================================== diff -u -r0b606b5cbf2df52ea9845544155eae947ca4b8ee -ree67a27bd69956eb8cfd7c5986538b441b8b7aa7 --- firmware/App/Drivers/BatteryDriver.h (.../BatteryDriver.h) (revision 0b606b5cbf2df52ea9845544155eae947ca4b8ee) +++ firmware/App/Drivers/BatteryDriver.h (.../BatteryDriver.h) (revision ee67a27bd69956eb8cfd7c5986538b441b8b7aa7) @@ -29,10 +29,36 @@ * @{ */ +// ********** public definitions ********** + +/// 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_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 + BATTERY_CHARGER_STATUS, ///< Battery charger status register 1 (0x21) + BATTERY_CHARGER_TS, ///< Battery charger temperature (in deg K) + BATTERY_CHARGER_VBAT, ///< Battery charger terminal voltage (in mV) + BATTERY_CHARGER_VSYS, ///< Battery charger system voltage (in mV) + BATTERY_CHARGER_FAULT, ///< Battery charger fault status + BATTERY_CHARGER_CURRENT, ///< Battery charger current (in mA) + END_OF_LIST, ///< End of battery data list +} BATTERY_MANAGEMENT_ENUM_T; + +typedef enum BatteryDevicesEnum +{ + BATTERY_CHARGER_ADDRESS = 0, ///< Battery charger at I2C address + BATTERY_PACK_ADDRESS, ///< Battery pack at SMBus address + NUM_OF_BATTERY_DEVICES, ///< Number of battery devices +} BATTERY_DEVICE_ADDRESS_ENUM_T; + // ********** public function prototypes ********** void initsetupI2CDriver(void); -BOOL getBatteryData( U32 slaveAddr, U08 command, U32 * dataPtr ); +BOOL getBatteryData( BATTERY_DEVICE_ADDRESS_ENUM_T devicesel, BATTERY_MANAGEMENT_ENUM_T registersel, U32 * dataPtr ); U32 getI2CStatusRegister( BOOL resetOverride ); BOOL testBatteryI2CStatusOverride( MESSAGE_T *message );