@@ -34,7 +34,7 @@ void BoschSensorClass::onInterrupt(mbed::Callback<void(void)> cb)
34
34
irq.rise (mbed::callback (this , &BoschSensorClass::interrupt_handler));
35
35
}
36
36
#endif
37
- int BoschSensorClass::begin () {
37
+ int BoschSensorClass::begin (CfgBoshSensor_t cfg ) {
38
38
39
39
_wire->begin ();
40
40
@@ -60,20 +60,43 @@ int BoschSensorClass::begin() {
60
60
mag_dev_info._wire = _wire;
61
61
mag_dev_info.dev_addr = bmm1.chip_id ;
62
62
63
- int8_t bmi270InitResult = bmi270_init (&bmi2);
64
- print_rslt (bmi270InitResult);
63
+ bool success = false ;
65
64
66
- int8_t bmi270ConfigResult = configure_sensor (&bmi2);
67
- print_rslt (bmi270ConfigResult);
65
+ if (cfg == BOSCH_ACCEL_AND_MAGN) {
66
+ int8_t bmi270InitResult = bmi270_init (&bmi2);
67
+ print_rslt (bmi270InitResult);
68
68
69
- int8_t bmm150InitResult = bmm150_init (&bmm1 );
70
- print_rslt (bmm150InitResult );
69
+ int8_t bmi270ConfigResult = configure_sensor (&bmi2 );
70
+ print_rslt (bmi270ConfigResult );
71
71
72
- int8_t bmm150ConfigResult = configure_sensor (&bmm1);
73
- print_rslt (bmm150ConfigResult);
72
+ int8_t bmm150InitResult = bmm150_init (&bmm1);
73
+ print_rslt (bmm150InitResult);
74
+
75
+ int8_t bmm150ConfigResult = configure_sensor (&bmm1);
76
+ print_rslt (bmm150ConfigResult);
77
+
78
+ success = bmi270InitResult == BMI2_OK && bmi270ConfigResult == BMI2_OK &&
79
+ bmm150InitResult == BMM150_OK && bmm150ConfigResult == BMM150_OK;
80
+ }
81
+ else if (cfg == BOSCH_ACCELEROMETER_ONLY) {
82
+ int8_t bmi270InitResult = bmi270_init (&bmi2);
83
+ print_rslt (bmi270InitResult);
84
+
85
+ int8_t bmi270ConfigResult = configure_sensor (&bmi2);
86
+ print_rslt (bmi270ConfigResult);
87
+
88
+ success = bmi270InitResult == BMI2_OK && bmi270ConfigResult == BMI2_OK;
89
+ }
90
+ else if (cfg == BOSCH_MAGNETOMETER_ONLY) {
91
+ int8_t bmm150InitResult = bmm150_init (&bmm1);
92
+ print_rslt (bmm150InitResult);
93
+
94
+ int8_t bmm150ConfigResult = configure_sensor (&bmm1);
95
+ print_rslt (bmm150ConfigResult);
96
+
97
+ success = bmm150InitResult == BMM150_OK && bmm150ConfigResult == BMM150_OK;
98
+ }
74
99
75
- bool success = bmi270InitResult == BMI2_OK && bmi270ConfigResult == BMI2_OK &&
76
- bmm150InitResult == BMM150_OK && bmm150ConfigResult == BMM150_OK;
77
100
_initialized = success;
78
101
79
102
return success;
0 commit comments