STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
test_sensor_self_test.cpp
Go to the documentation of this file.
1#include <unity.h>
2
3#include "STAR_ADS126X.h"
4#include "SensorSelfTest.h"
5
6int32_t g_mock_adc_value = 0;
8
10uint8_t dummy_pin = 0;
11
12void setUp() {
15}
16
17void tearDown() {
18}
19
20// ===========================================================================
21// ADC Self-Test Logic Verification
22// ===========================================================================
23
25 // Expected is 214748364 with tolerance 2147484.
28
30 TEST_ASSERT_TRUE(result.passed);
31 TEST_ASSERT_TRUE(result.checksum_valid);
32 TEST_ASSERT_EQUAL(SensorSelfTest::ADC_TDAC_EXPECTED_CODE, result.code);
33}
34
44
47 g_mock_adc_checksum = false;
48
50 TEST_ASSERT_FALSE(result.passed);
51 TEST_ASSERT_FALSE(result.checksum_valid);
52}
53
54// ===========================================================================
55// Sensor Bias Continuity Logic Verification
56// ===========================================================================
57
59 // Value must be < 40% FS (858993459)
60 g_mock_adc_value = 500000000;
62
63 auto result =
65 TEST_ASSERT_EQUAL((int)SensorSelfTest::BiasResult::CONNECTED,
66 (int)result.result);
67 TEST_ASSERT_TRUE(result.checksum_valid);
68}
69
71 // Value between 40% and 60% FS
72 g_mock_adc_value = 1000000000;
74
75 auto result =
77 TEST_ASSERT_EQUAL((int)SensorSelfTest::BiasResult::AMBIGUOUS,
78 (int)result.result);
79 TEST_ASSERT_TRUE(result.checksum_valid);
80}
81
83 // Value >= 60% FS (1288490188)
84 g_mock_adc_value = 1300000000;
86
87 auto result =
89 TEST_ASSERT_EQUAL((int)SensorSelfTest::BiasResult::DISCONNECTED,
90 (int)result.result);
91 TEST_ASSERT_TRUE(result.checksum_valid);
92}
93
96 g_mock_adc_checksum = false;
97
98 auto result =
100 TEST_ASSERT_EQUAL((int)SensorSelfTest::BiasResult::AMBIGUOUS,
101 (int)result.result);
102 TEST_ASSERT_FALSE(result.checksum_valid);
103}
104
105int main(int argc, char** argv) {
106 UNITY_BEGIN();
107
108 RUN_TEST(test_adc_tdac_pass);
111
116
117 return UNITY_END();
118}
int32_t g_mock_adc_value
bool g_mock_adc_checksum
json_pointer result
Definition json.hpp:14064
BiasReadResult read_sensor_bias(ADS126X &adc, uint8_t drdy_pin, uint8_t adc_channel, uint8_t aincom, uint8_t settle_cycles=5)
Read one connector with sensor bias already active.
constexpr int32_t ADC_TDAC_EXPECTED_CODE
constexpr int32_t ADC_TDAC_TOLERANCE
AdcSelfTestResult run_adc_self_test(ADS126X &adc, uint8_t drdy_pin, uint8_t original_ref_neg, uint8_t original_ref_pos)
int main()
void test_sensor_bias_disconnected()
void test_adc_tdac_pass()
ADS126X mock_adc
uint8_t dummy_pin
void setUp()
void test_sensor_bias_connected()
void tearDown()
void test_adc_tdac_fail_checksum()
void test_sensor_bias_ambiguous()
void test_adc_tdac_fail_out_of_tolerance()
void test_sensor_bias_checksum_fails()