A feature complete driver for the MAX17048 lithium fuel gauge from Maxim.

Dependents:   MAX17048_HelloWorld ECGAFE_copy MAX17048_HelloWorld Orion_newPCB_test_LV ... more

Now fully tested!

Files at this revision

API Documentation at this revision

Comitter:
neilt6
Date:
Wed Aug 14 04:52:16 2013 +0000
Parent:
1:734b1a089a9c
Child:
3:32087cca331f
Commit message:
Modified library so as to be more compliant with C++ conventions

Changed in this revision

MAX17048.cpp Show annotated file Show diff for this revision Revisions of this file
MAX17048.h Show annotated file Show diff for this revision Revisions of this file
--- a/MAX17048.cpp	Fri Aug 09 22:22:48 2013 +0000
+++ b/MAX17048.cpp	Wed Aug 14 04:52:16 2013 +0000
@@ -17,7 +17,7 @@
 #include "MAX17048.h"
 #include "mbed.h"
 
-MAX17048::MAX17048(PinName sda, PinName scl) : _i2c(sda, scl)
+MAX17048::MAX17048(PinName sda, PinName scl) : m_I2C(sda, scl)
 {
     //Nothing else to initialize
 }
@@ -25,25 +25,25 @@
 void MAX17048::reset(void)
 {
     //Write the POR command
-    _write(__MAX17048_REG_CMD, 0x5400);
+    write(REG_CMD, 0x5400);
 }
 
 void MAX17048::quickStart(void)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_MODE);
+    unsigned short value = read(REG_MODE);
 
     //Set the QuickStart bit
     value |= (1 << 14);
 
     //Write the value back out
-    _write(__MAX17048_REG_MODE, value);
+    write(REG_MODE, value);
 }
 
-bool MAX17048::isSleepEnabled(void)
+bool MAX17048::sleepEnabled(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_MODE);
+    unsigned short value = read(REG_MODE);
 
     //Return the status of the EnSleep bit
     if (value & (1 << 13))
@@ -52,10 +52,10 @@
         return false;
 }
 
-void MAX17048::setSleepEnabled(bool enabled)
+void MAX17048::sleepEnabled(bool enabled)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_MODE);
+    unsigned short value = read(REG_MODE);
 
     //Set or clear the EnSleep bit
     if (enabled)
@@ -64,13 +64,13 @@
         value &= ~(1 << 13);
 
     //Write the value back out
-    _write(__MAX17048_REG_MODE, value);
+    write(REG_MODE, value);
 }
 
-bool MAX17048::isHibernating(void)
+bool MAX17048::hibernating(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_MODE);
+    unsigned short value = read(REG_MODE);
 
     //Return the status of the HibStat bit
     if (value & (1 << 12))
@@ -79,19 +79,19 @@
         return false;
 }
 
-float MAX17048::getHibernateThreshold(void)
+float MAX17048::hibernateThreshold(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_HIBRT);
+    unsigned short value = read(REG_HIBRT);
 
     //Extract the hibernate threshold
     return (value >> 8) * 0.208;
 }
 
-void MAX17048::setHibernateThreshold(float threshold)
+void MAX17048::hibernateThreshold(float threshold)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_HIBRT);
+    unsigned short value = read(REG_HIBRT);
 
     //Mask off the old value
     value &= 0x00FF;
@@ -105,22 +105,22 @@
     }
 
     //Write the 16-bit register
-    _write(__MAX17048_REG_HIBRT, value);
+    write(REG_HIBRT, value);
 }
 
-float MAX17048::getActiveThreshold(void)
+float MAX17048::activeThreshold(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_HIBRT);
+    unsigned short value = read(REG_HIBRT);
 
     //Extract the active threshold
     return (value & 0x00FF) * 0.00125;
 }
 
-void MAX17048::setActiveThreshold(float threshold)
+void MAX17048::activeThreshold(float threshold)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_HIBRT);
+    unsigned short value = read(REG_HIBRT);
 
     //Mask off the old value
     value &= 0xFF00;
@@ -134,33 +134,33 @@
     }
 
     //Write the 16-bit register
-    _write(__MAX17048_REG_HIBRT, value);
+    write(REG_HIBRT, value);
 }
 
-unsigned short MAX17048::getVersion(void)
+unsigned short MAX17048::version(void)
 {
     //Return the 16-bit production version
-    return _read(__MAX17048_REG_VERSION);
+    return read(REG_VERSION);
 }
 
-void MAX17048::setTempCompensation(float temp)
+void MAX17048::tempCompensation(float temp)
 {
     //Calculate the new RCOMP value
     char rcomp;
     if (temp > 20.0) {
-        rcomp = __MAX17048_RCOMP0 + (temp - 20.0) * -0.5;
+        rcomp = m_RCOMP0 + (temp - 20.0) * -0.5;
     } else {
-        rcomp = __MAX17048_RCOMP0 + (temp - 20.0) * -5.0;
+        rcomp = m_RCOMP0 + (temp - 20.0) * -5.0;
     }
 
     //Update the RCOMP value
-    _writeRCOMP(rcomp);
+    writeRCOMP(rcomp);
 }
 
-bool MAX17048::isSleeping(void)
+bool MAX17048::sleeping(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_CONFIG);
+    unsigned short value = read(REG_CONFIG);
 
     //Return the status of the SLEEP bit
     if (value & (1 << 7))
@@ -169,10 +169,10 @@
         return false;
 }
 
-void MAX17048::setSleep(bool sleep)
+void MAX17048::sleep(bool sleep)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_CONFIG);
+    unsigned short value = read(REG_CONFIG);
 
     //Set or clear the SLEEP bit
     if (sleep)
@@ -181,13 +181,13 @@
         value &= ~(1 << 7);
 
     //Write the value back out
-    _write(__MAX17048_REG_CONFIG, value);
+    write(REG_CONFIG, value);
 }
 
-bool MAX17048::isSOCChangeAlertEnabled(void)
+bool MAX17048::socChangeAlertEnabled(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_CONFIG);
+    unsigned short value = read(REG_CONFIG);
 
     //Return the status of the ALSC bit
     if (value & (1 << 6))
@@ -196,10 +196,10 @@
         return false;
 }
 
-void MAX17048::setSOCChangeAlertEnabled(bool enabled)
+void MAX17048::socChangeAlertEnabled(bool enabled)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_CONFIG);
+    unsigned short value = read(REG_CONFIG);
 
     //Set or clear the ALSC bit
     if (enabled)
@@ -208,13 +208,13 @@
         value &= ~(1 << 6);
 
     //Write the value back out
-    _write(__MAX17048_REG_CONFIG, value);
+    write(REG_CONFIG, value);
 }
 
-bool MAX17048::isAlerting(void)
+bool MAX17048::alerting(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_CONFIG);
+    unsigned short value = read(REG_CONFIG);
 
     //Return the status of the ALRT bit
     if (value & (1 << 5))
@@ -226,28 +226,28 @@
 void MAX17048::clearAlert(void)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_CONFIG);
+    unsigned short value = read(REG_CONFIG);
 
     //Clear the ALRT bit
     value &= ~(1 << 5);
 
     //Write the value back out
-    _write(__MAX17048_REG_CONFIG, value);
+    write(REG_CONFIG, value);
 }
 
-char MAX17048::getEmptyAlertThreshold(void)
+char MAX17048::emptyAlertThreshold(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_CONFIG);
+    unsigned short value = read(REG_CONFIG);
 
     //Extract the threshold
     return 32 - (value & 0x001F);
 }
 
-void MAX17048::setEmptyAlertThreshold(char threshold)
+void MAX17048::emptyAlertThreshold(char threshold)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_CONFIG);
+    unsigned short value = read(REG_CONFIG);
 
     //Range check threshold
     if (threshold < 1)
@@ -260,22 +260,22 @@
     value |= 32 - threshold;
 
     //Write the 16-bit register
-    _write(__MAX17048_REG_CONFIG, value);
+    write(REG_CONFIG, value);
 }
 
-float MAX17048::getVAlertMinThreshold(void)
+float MAX17048::vAlertMinThreshold(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_VALRT);
+    unsigned short value = read(REG_VALRT);
 
     //Extract the alert threshold
     return (value >> 8) * 0.02;
 }
 
-void MAX17048::setVAlertMinThreshold(float threshold)
+void MAX17048::vAlertMinThreshold(float threshold)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_VALRT);
+    unsigned short value = read(REG_VALRT);
 
     //Mask off the old value
     value &= 0x00FF;
@@ -289,22 +289,22 @@
     }
 
     //Write the 16-bit register
-    _write(__MAX17048_REG_VALRT, value);
+    write(REG_VALRT, value);
 }
 
-float MAX17048::getVAlertMaxThreshold(void)
+float MAX17048::vAlertMaxThreshold(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_VALRT);
+    unsigned short value = read(REG_VALRT);
 
     //Extract the active threshold
     return (value & 0x00FF) * 0.02;
 }
 
-void MAX17048::setVAlertMaxThreshold(float threshold)
+void MAX17048::vAlertMaxThreshold(float threshold)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_VALRT);
+    unsigned short value = read(REG_VALRT);
 
     //Mask off the old value
     value &= 0xFF00;
@@ -318,22 +318,22 @@
     }
 
     //Write the 16-bit register
-    _write(__MAX17048_REG_VALRT, value);
+    write(REG_VALRT, value);
 }
 
-float MAX17048::getVResetThreshold(void)
+float MAX17048::vResetThreshold(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_VRESET_ID);
+    unsigned short value = read(REG_VRESET_ID);
 
     //Extract the threshold
     return (value >> 9) * 0.04;
 }
 
-void MAX17048::setVResetThreshold(float threshold)
+void MAX17048::vResetThreshold(float threshold)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_VRESET_ID);
+    unsigned short value = read(REG_VRESET_ID);
 
     //Mask off the old value
     value &= 0x01FF;
@@ -347,13 +347,13 @@
     }
 
     //Write the 16-bit register
-    _write(__MAX17048_REG_VRESET_ID, value);
+    write(REG_VRESET_ID, value);
 }
 
-bool MAX17048::isComparatorEnabled(void)
+bool MAX17048::comparatorEnabled(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_VRESET_ID);
+    unsigned short value = read(REG_VRESET_ID);
 
     //Return the status of the Dis bit
     if (value & (1 << 8))
@@ -362,10 +362,10 @@
         return true;
 }
 
-void MAX17048::setComparatorEnabled(bool enabled)
+void MAX17048::comparatorEnabled(bool enabled)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_VRESET_ID);
+    unsigned short value = read(REG_VRESET_ID);
 
     //Set or clear the Dis bit
     if (enabled)
@@ -374,22 +374,22 @@
         value |= (1 << 8);
 
     //Write the value back out
-    _write(__MAX17048_REG_VRESET_ID, value);
+    write(REG_VRESET_ID, value);
 }
 
-char MAX17048::getID(void)
+char MAX17048::id(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_VRESET_ID);
+    unsigned short value = read(REG_VRESET_ID);
 
     //Return only the ID bits
     return value;
 }
 
-bool MAX17048::isVResetAlertEnabled(void)
+bool MAX17048::vResetAlertEnabled(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_STATUS);
+    unsigned short value = read(REG_STATUS);
 
     //Return the status of the EnVR bit
     if (value & (1 << 14))
@@ -398,10 +398,10 @@
         return false;
 }
 
-void MAX17048::setVResetAlertEnabled(bool enabled)
+void MAX17048::vResetAlertEnabled(bool enabled)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_STATUS);
+    unsigned short value = read(REG_STATUS);
 
     //Set or clear the EnVR bit
     if (enabled)
@@ -410,13 +410,13 @@
         value &= ~(1 << 14);
 
     //Write the value back out
-    _write(__MAX17048_REG_STATUS, value);
+    write(REG_STATUS, value);
 }
 
-char MAX17048::getAlertFlags(void)
+char MAX17048::alertFlags(void)
 {
     //Read the 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_STATUS);
+    unsigned short value = read(REG_STATUS);
 
     //Return only the flag bits
     return (value >> 8) & 0x3F;
@@ -425,58 +425,58 @@
 void MAX17048::clearAlertFlags(char flags)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_STATUS);
+    unsigned short value = read(REG_STATUS);
 
     //Clear the specified flag bits
     value &= ~((flags & 0x3F) << 8);
 
     //Write the value back out
-    _write(__MAX17048_REG_STATUS, value);
+    write(REG_STATUS, value);
 }
 
-float MAX17048::getVcell(void)
+float MAX17048::vcell(void)
 {
     //Read the 16-bit raw Vcell value
-    unsigned short value = _read(__MAX17048_REG_VCELL);
+    unsigned short value = read(REG_VCELL);
 
     //Return Vcell in volts
     return value * 0.000078125;
 }
 
-float MAX17048::getSOC(void)
+float MAX17048::soc(void)
 {
     //Read the 16-bit raw SOC value
-    unsigned short value = _read(__MAX17048_REG_SOC);
+    unsigned short value = read(REG_SOC);
 
     //Return SOC in percent
     return value * 0.00390625;
 }
 
-float MAX17048::getCRate(void)
+float MAX17048::crate(void)
 {
     //Read the 16-bit raw C/Rate value
-    short value = _read(__MAX17048_REG_CRATE);
+    short value = read(REG_CRATE);
 
     //Return C/Rate in %/hr
     return value * 0.208;
 }
 
-unsigned short MAX17048::_read(char reg)
+unsigned short MAX17048::read(char reg)
 {
     //Create a temporary buffer
     char buff[2];
 
     //Select the register
-    _i2c.write(__MAX17048_ADDR, &reg, 1);
+    m_I2C.write(m_ADDR, &reg, 1);
 
     //Read the 16-bit register
-    _i2c.read(__MAX17048_ADDR, buff, 2);
+    m_I2C.read(m_ADDR, buff, 2);
 
     //Return the combined 16-bit value
     return (buff[0] << 8) | buff[1];
 }
 
-void MAX17048::_write(char reg, unsigned short data)
+void MAX17048::write(char reg, unsigned short data)
 {
     //Create a temporary buffer
     char buff[3];
@@ -487,18 +487,18 @@
     buff[2] = data;
 
     //Write the data
-    _i2c.write(__MAX17048_ADDR, buff, 3);
+    m_I2C.write(m_ADDR, buff, 3);
 }
 
-void MAX17048::_writeRCOMP(char rcomp)
+void MAX17048::writeRCOMP(char rcomp)
 {
     //Read the current 16-bit register value
-    unsigned short value = _read(__MAX17048_REG_CONFIG);
+    unsigned short value = read(REG_CONFIG);
 
     //Update the register value
     value &= 0x00FF;
     value |= rcomp << 8;
 
     //Write the value back out
-    _write(__MAX17048_REG_CONFIG, value);
+    write(REG_CONFIG, value);
 }
--- a/MAX17048.h	Fri Aug 09 22:22:48 2013 +0000
+++ b/MAX17048.h	Wed Aug 14 04:52:16 2013 +0000
@@ -19,26 +19,6 @@
 
 #include "mbed.h"
 
-//i2c address definition
-#define __MAX17048_ADDR             (0x36 << 1)
-
-//i2c register definitions
-#define __MAX17048_REG_VCELL        0x02
-#define __MAX17048_REG_SOC          0x04
-#define __MAX17048_REG_MODE         0x06
-#define __MAX17048_REG_VERSION      0x08
-#define __MAX17048_REG_HIBRT        0x0A
-#define __MAX17048_REG_CONFIG       0x0C
-#define __MAX17048_REG_VALRT        0x14
-#define __MAX17048_REG_CRATE        0x16
-#define __MAX17048_REG_VRESET_ID    0x18
-#define __MAX17048_REG_STATUS       0x1A
-#define __MAX17048_REG_TABLE        0x40
-#define __MAX17048_REG_CMD          0xFE
-
-//RCOMP0 value definition
-#define __MAX17048_RCOMP0           0x97
-
 /** MAX17048 class.
  *  Used for controlling a MAX17048 fuel gauge connected via I2C.
  *
@@ -47,16 +27,15 @@
  * #include "mbed.h"
  * #include "MAX17048.h"
  *
- * Serial pc(USBTX, USBRX);
  * MAX17048 gauge(p28, p27);
  *
  * int main() {
  *     while (1) {
  *         //Read the cell voltage
- *         float vcell = gauge.getVcell();
+ *         float vcell = gauge.vcell();
  *
  *         //Print the cell voltage
- *         pc.printf("Vcell = %f\n", vcell);
+ *         printf("Vcell = %f\n", vcell);
  *
  *         //Sleep for 0.5 seconds
  *         wait(0.5);
@@ -99,186 +78,186 @@
     *   'true' if sleep mode is enabled,
     *   'false' if sleep mode is disabled.
     */
-    bool isSleepEnabled(void);
+    bool sleepEnabled(void);
 
     /** Enable or disable sleep mode on the MAX17048
      *
      * @param enabled Whether or not sleep mode is enabled.
      */
-    void setSleepEnabled(bool enabled);
-    
+    void sleepEnabled(bool enabled);
+
     /** Determine whether or not the MAX17048 is hibernating
     *
     * @returns
     *   'true' if hibernating,
     *   'false' if not hibernating.
     */
-    bool isHibernating(void);
-    
+    bool hibernating(void);
+
     /** Get the current hibernate threshold of the MAX17048
     *
     * @returns The current hibernate threshold in \%/hr.
     */
-    float getHibernateThreshold(void);
-    
+    float hibernateThreshold(void);
+
     /** Set the hibernate threshold of the MAX17048
      *
      * @param threshold The new hibernate threshold in \%/hr.
      */
-    void setHibernateThreshold(float threshold);
-    
+    void hibernateThreshold(float threshold);
+
     /** Get the current active threshold of the MAX17048
     *
     * @returns The current active threshold in volts.
     */
-    float getActiveThreshold(void);
-    
+    float activeThreshold(void);
+
     /** Set the active threshold of the MAX17048
      *
      * @param threshold The new active threshold in volts.
      */
-    void setActiveThreshold(float threshold);
-    
+    void activeThreshold(float threshold);
+
     /** Get the production version of the MAX17048
     *
     * @returns The 16-bit production version.
     */
-    unsigned short getVersion(void);
-    
+    unsigned short version(void);
+
     /** Set the cell temperature compensation of the MAX17048
      *
      * @param temp The current cell temperature in °C.
      */
-    void setTempCompensation(float temp);
-    
+    void tempCompensation(float temp);
+
     /** Determine whether or not the MAX17048 is in sleep mode
     *
     * @returns
     *   'true' if in sleep mode,
     *   'false' if not in sleep mode.
     */
-    bool isSleeping(void);
-    
+    bool sleeping(void);
+
     /** Enter or exit sleep mode on the MAX17048 (sleep mode must be enabled first)
      *
      * @param sleep Whether or not to sleep.
      */
-    void setSleep(bool sleep);
-    
+    void sleep(bool sleep);
+
     /** Determine whether or not the SOC 1% change alert is enabled on the MAX17048
     *
     * @returns
     *   'true' if enabled,
     *   'false' if not enabled.
     */
-    bool isSOCChangeAlertEnabled(void);
-    
+    bool socChangeAlertEnabled(void);
+
     /** Enable or disable the SOC 1% change alert on the MAX17048
      *
      * @param enabled Whether or the SOC 1% change alert is enabled.
      */
-    void setSOCChangeAlertEnabled(bool enabled);
-    
+    void socChangeAlertEnabled(bool enabled);
+
     /** Determine whether or not the MAX17048 is asserting the ALRT pin
     *
     * @returns
     *   'true' if alerting,
     *   'false' if not alerting.
     */
-    bool isAlerting(void);
-    
+    bool alerting(void);
+
     /** Command the MAX17048 to de-assert the ALRT pin
     */
     void clearAlert(void);
-    
+
     /** Get the current SOC empty alert threshold of the MAX17048
     *
     * @returns The current SOC empty alert threshold in %.
     */
-    char getEmptyAlertThreshold(void);
-    
+    char emptyAlertThreshold(void);
+
     /** Set the SOC empty alert threshold of the MAX17048
      *
      * @param threshold The new SOC empty alert threshold in %.
      */
-    void setEmptyAlertThreshold(char threshold);
-    
+    void emptyAlertThreshold(char threshold);
+
     /** Get the current low voltage alert threshold of the MAX17048
     *
     * @returns The current low voltage alert threshold in volts.
     */
-    float getVAlertMinThreshold(void);
-    
+    float vAlertMinThreshold(void);
+
     /** Set the low voltage alert threshold of the MAX17048
      *
      * @param threshold The new low voltage alert threshold in volts.
      */
-    void setVAlertMinThreshold(float threshold);
-    
+    void vAlertMinThreshold(float threshold);
+
     /** Get the current high voltage alert threshold of the MAX17048
     *
     * @returns The current high voltage alert threshold in volts.
     */
-    float getVAlertMaxThreshold(void);
-    
+    float vAlertMaxThreshold(void);
+
     /** Set the high voltage alert threshold of the MAX17048
      *
      * @param threshold The new high voltage alert threshold in volts.
      */
-    void setVAlertMaxThreshold(float threshold);
-    
+    void vAlertMaxThreshold(float threshold);
+
     /** Get the current reset voltage threshold of the MAX17048
     *
     * @returns The current reset voltage threshold in volts.
     */
-    float getVResetThreshold(void);
-    
+    float vResetThreshold(void);
+
     /** Set the reset voltage threshold of the MAX17048
      *
      * @param threshold The new reset voltage threshold in volts.
      */
-    void setVResetThreshold(float threshold);
-    
+    void vResetThreshold(float threshold);
+
     /** Determine whether or not the reset voltage comparator is enabled on the MAX17048
     *
     * @returns
     *   'true' if enabled,
     *   'false' if not enabled.
     */
-    bool isComparatorEnabled(void);
-    
+    bool comparatorEnabled(void);
+
     /** Enable or disable the reset voltage comparator on the MAX17048
      *
      * @param enabled Whether or not the reset voltage comparator is enabled.
      */
-    void setComparatorEnabled(bool enabled);
-    
+    void comparatorEnabled(bool enabled);
+
     /** Get the factory programmed 8-bit ID of the MAX17048
     *
     * @returns The 8-bit ID.
     */
-    char getID(void);
-    
+    char id(void);
+
     /** Determine whether or not the voltage reset alert is enabled on the MAX17048
     *
     * @returns
     *   'true' if enabled,
     *   'false' if not enabled.
     */
-    bool isVResetAlertEnabled(void);
-    
+    bool vResetAlertEnabled(void);
+
     /** Enable or disable the voltage reset alert on the MAX17048
      *
      * @param enabled Whether or the voltage reset alert is enabled.
      */
-    void setVResetAlertEnabled(bool enabled);
-    
+    void vResetAlertEnabled(bool enabled);
+
     /** Get the current alert flags on the MAX17048
     *
     * @returns The current alert flags as AlertFlags enum values OR'd together.
     */
-    char getAlertFlags(void);
-    
+    char alertFlags(void);
+
     /** Clear the specified alert flags on the MAX17048
      *
      * @param flags The alert flags to clear as AlertFlags enum values OR'd together.
@@ -289,25 +268,48 @@
     *
     * @returns The cell voltage measurement as a float.
     */
-    float getVcell(void);
+    float vcell(void);
 
     /** Get the current state of charge measurement of the MAX17048
      *
      * @returns The state of charge measurement as a float.
      */
-    float getSOC(void);
+    float soc(void);
 
     /** Get the current C rate measurement of the MAX17048
      *
      * @returns The C rate measurement as a float.
      */
-    float getCRate(void);
+    float crate(void);
 
 private:
-    I2C _i2c;
-    unsigned short _read(char reg);
-    void _write(char reg, unsigned short data);
-    void _writeRCOMP(char rcomp);
+    //I2C register addresses
+    enum Register {
+        REG_VCELL       = 0x02,
+        REG_SOC         = 0x04,
+        REG_MODE        = 0x06,
+        REG_VERSION     = 0x08,
+        REG_HIBRT       = 0x0A,
+        REG_CONFIG      = 0x0C,
+        REG_VALRT       = 0x14,
+        REG_CRATE       = 0x16,
+        REG_VRESET_ID   = 0x18,
+        REG_STATUS      = 0x1A,
+        REG_TABLE       = 0x40,
+        REG_CMD         = 0xFE
+    };
+
+    //Member constants
+    static const int m_ADDR    = (0x36 << 1);
+    static const int m_RCOMP0  = 0x97;
+
+    //Member variables
+    I2C m_I2C;
+
+    //Internal functions
+    unsigned short read(char reg);
+    void write(char reg, unsigned short data);
+    void writeRCOMP(char rcomp);
 };
 
 #endif