@@ -34,7 +34,7 @@ void BoschSensorClass::onInterrupt(mbed::Callback<void(void)> cb)
3434 irq.rise (mbed::callback (this , &BoschSensorClass::interrupt_handler));
3535}
3636#endif
37- int BoschSensorClass::begin () {
37+ int BoschSensorClass::begin (CfgBoshSensor_t cfg ) {
3838
3939 _wire->begin ();
4040
@@ -60,20 +60,43 @@ int BoschSensorClass::begin() {
6060 mag_dev_info._wire = _wire;
6161 mag_dev_info.dev_addr = bmm1.chip_id ;
6262
63- int8_t bmi270InitResult = bmi270_init (&bmi2);
64- print_rslt (bmi270InitResult);
63+ bool success = false ;
6564
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);
6868
69- int8_t bmm150InitResult = bmm150_init (&bmm1 );
70- print_rslt (bmm150InitResult );
69+ int8_t bmi270ConfigResult = configure_sensor (&bmi2 );
70+ print_rslt (bmi270ConfigResult );
7171
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+ }
7499
75- bool success = bmi270InitResult == BMI2_OK && bmi270ConfigResult == BMI2_OK &&
76- bmm150InitResult == BMM150_OK && bmm150ConfigResult == BMM150_OK;
77100 _initialized = success;
78101
79102 return success;
0 commit comments