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
TESTS/unit_tests/default/main.cpp@0:cec745c014b7, 2017-07-03 (annotated)
- 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?
User | Revision | Line number | New 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 |