From b65d93e5efc79f5520e3ae962c63a6b5393b7699 Mon Sep 17 00:00:00 2001 From: Maciej Bocianski Date: Tue, 2 Jul 2019 15:20:34 +0200 Subject: [PATCH] I2CTester: add address mismatch statistics --- .../COMPONENT_FPGA_CI_TEST_SHIELD/I2CTester.cpp | 13 ++++++++++--- .../COMPONENT_FPGA_CI_TEST_SHIELD/I2CTester.h | 7 +++++++ .../COMPONENT_FPGA_CI_TEST_SHIELD/fpga_config.h | 2 ++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/I2CTester.cpp b/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/I2CTester.cpp index c0990435ed..59b43f46e7 100644 --- a/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/I2CTester.cpp +++ b/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/I2CTester.cpp @@ -79,9 +79,16 @@ uint8_t I2CTester::state_num() uint8_t I2CTester::num_dev_addr_matches() { - uint8_t num_correct = 0; - read(TESTER_I2C_NUMBER_DEV_ADDR_MATCHES, &num_correct, sizeof(num_correct)); - return num_correct; + uint8_t num_dev_addr_matches = 0; + read(TESTER_I2C_NUMBER_DEV_ADDR_MATCHES, &num_dev_addr_matches, sizeof(num_dev_addr_matches)); + return num_dev_addr_matches; +} + +uint8_t I2CTester::num_dev_addr_mismatches() +{ + uint8_t num_dev_addr_mismatches = 0; + read(TESTER_I2C_NUMBER_DEV_ADDR_MISMATCHES, &num_dev_addr_mismatches, sizeof(num_dev_addr_mismatches)); + return num_dev_addr_mismatches; } void I2CTester::set_device_address(uint16_t addr) diff --git a/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/I2CTester.h b/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/I2CTester.h index 4d62ff6414..1a3e47b7f4 100644 --- a/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/I2CTester.h +++ b/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/I2CTester.h @@ -96,6 +96,13 @@ public: */ uint8_t num_dev_addr_matches(); + /** + * Get the number of times the device address has been sent incorrectly + * + * @return The number of times the device address has been sent incorrectly + */ + uint8_t num_dev_addr_mismatches(); + /** * Set the I2C slave device address * diff --git a/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/fpga_config.h b/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/fpga_config.h index 610c637a76..3584ec6637 100644 --- a/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/fpga_config.h +++ b/components/testing/COMPONENT_FPGA_CI_TEST_SHIELD/fpga_config.h @@ -194,3 +194,5 @@ #define TESTER_I2C_NUM_READS (0x018 + 0x00105000) #define TESTER_I2C_FROM_SLAVE_CHECKSUM (0x01A + 0x00105000) #define TESTER_I2C_FROM_SLAVE_CHECKSUM_SIZE 4 +#define TESTER_I2C_NUMBER_DEV_ADDR_MISMATCHES (0x01E + 0x00105000) +#define TESTER_I2C_NUMBER_DEV_ADDR_MISMATCHES_SIZE 1