This class provides APIs to all of the registers of the TI BQ35100 battery gauge, as used on the u-blox C030 primary battery shield.

Dependents:   example-battery-gauge-bq35100

Committer:
RobMeades
Date:
Mon Jul 03 16:12:22 2017 +0000
Revision:
0:cec745c014b7
Child:
1:ee7cc8d75283
Initial commit, work in progress.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RobMeades 0:cec745c014b7 1 #include "mbed.h"
RobMeades 0:cec745c014b7 2 #include "greentea-client/test_env.h"
RobMeades 0:cec745c014b7 3 #include "unity.h"
RobMeades 0:cec745c014b7 4 #include "utest.h"
RobMeades 0:cec745c014b7 5 #include "battery_gauge_bq35100.h"
RobMeades 0:cec745c014b7 6
RobMeades 0:cec745c014b7 7 using namespace utest::v1;
RobMeades 0:cec745c014b7 8
RobMeades 0:cec745c014b7 9 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 10 // COMPILE-TIME MACROS
RobMeades 0:cec745c014b7 11 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 12
RobMeades 0:cec745c014b7 13 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 14 // PRIVATE VARIABLES
RobMeades 0:cec745c014b7 15 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 16
RobMeades 0:cec745c014b7 17 // I2C interface
RobMeades 0:cec745c014b7 18 I2C * gpI2C = new I2C(I2C_SDA, I2C_SCL);
RobMeades 0:cec745c014b7 19
RobMeades 0:cec745c014b7 20 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 21 // PRIVATE FUNCTIONS
RobMeades 0:cec745c014b7 22 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 23
RobMeades 0:cec745c014b7 24 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 25 // TESTS
RobMeades 0:cec745c014b7 26 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 27
RobMeades 0:cec745c014b7 28 // Test that the BQ35100 battery gauge can be initialised
RobMeades 0:cec745c014b7 29 void test_init() {
RobMeades 0:cec745c014b7 30 BatteryGaugeBq35100 * pBatteryGauge = new BatteryGaugeBq35100();
RobMeades 0:cec745c014b7 31
RobMeades 0:cec745c014b7 32 TEST_ASSERT_FALSE(pBatteryGauge->init(NULL));
RobMeades 0:cec745c014b7 33 TEST_ASSERT(pBatteryGauge->init(gpI2C));
RobMeades 0:cec745c014b7 34 }
RobMeades 0:cec745c014b7 35
RobMeades 0:cec745c014b7 36 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 37 // TEST ENVIRONMENT
RobMeades 0:cec745c014b7 38 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 39
RobMeades 0:cec745c014b7 40 // Setup the test environment
RobMeades 0:cec745c014b7 41 utest::v1::status_t test_setup(const size_t number_of_cases) {
RobMeades 0:cec745c014b7 42 // Setup Greentea, timeout is long enough to run these tests with
RobMeades 0:cec745c014b7 43 // DEBUG_BQ35100 defined
RobMeades 0:cec745c014b7 44 GREENTEA_SETUP(480, "default_auto");
RobMeades 0:cec745c014b7 45 return verbose_test_setup_handler(number_of_cases);
RobMeades 0:cec745c014b7 46 }
RobMeades 0:cec745c014b7 47
RobMeades 0:cec745c014b7 48 // Test cases
RobMeades 0:cec745c014b7 49 Case cases[] = {
RobMeades 0:cec745c014b7 50 Case("Initialisation", test_init)
RobMeades 0:cec745c014b7 51 };
RobMeades 0:cec745c014b7 52
RobMeades 0:cec745c014b7 53 Specification specification(test_setup, cases);
RobMeades 0:cec745c014b7 54
RobMeades 0:cec745c014b7 55 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 56 // MAIN
RobMeades 0:cec745c014b7 57 // ----------------------------------------------------------------
RobMeades 0:cec745c014b7 58
RobMeades 0:cec745c014b7 59 // Entry point into the tests
RobMeades 0:cec745c014b7 60 int main() {
RobMeades 0:cec745c014b7 61 bool success = false;
RobMeades 0:cec745c014b7 62
RobMeades 0:cec745c014b7 63 if (gpI2C != NULL) {
RobMeades 0:cec745c014b7 64 success = !Harness::run(specification);
RobMeades 0:cec745c014b7 65 } else {
RobMeades 0:cec745c014b7 66 printf ("Unable to instantiate I2C interface.\n");
RobMeades 0:cec745c014b7 67 }
RobMeades 0:cec745c014b7 68
RobMeades 0:cec745c014b7 69 return success;
RobMeades 0:cec745c014b7 70 }
RobMeades 0:cec745c014b7 71
RobMeades 0:cec745c014b7 72 // End Of File