@@ -210,16 +210,15 @@ BMP388::collect()
210210bool
211211BMP388::soft_reset ()
212212{
213- bool result = false ;
214213 uint8_t status;
215- int ret;
216-
217- ret = _interface->get_reg (BMP3_SENS_STATUS_REG_ADDR, &status);
214+ int ret = _interface->get_reg (BMP3_SENS_STATUS_REG_ADDR, &status);
218215
219216 if (ret != OK) {
220217 return false ;
221218 }
222219
220+ bool result = false ;
221+
223222 if (status & BMP3_CMD_RDY) {
224223 ret = _interface->set_reg (BPM3_CMD_SOFT_RESET, BMP3_CMD_ADDR);
225224
@@ -248,16 +247,9 @@ BMP388::soft_reset()
248247static int8_t cal_crc (uint8_t seed, uint8_t data)
249248{
250249 int8_t poly = 0x1D ;
251- int8_t var2;
252- uint8_t i;
253-
254- for (i = 0 ; i < 8 ; i++) {
255- if ((seed & 0x80 ) ^ (data & 0x80 )) {
256- var2 = 1 ;
257250
258- } else {
259- var2 = 0 ;
260- }
251+ for (uint8_t i = 0 ; i < 8 ; i++) {
252+ int8_t var2 = ((seed & 0x80 ) ^ (data & 0x80 )) ? 1 : 0 ;
261253
262254 seed = (seed & 0x7F ) << 1 ;
263255 data = (data & 0x7F ) << 1 ;
276268BMP388::validate_trimming_param ()
277269{
278270 uint8_t crc = 0xFF ;
279- uint8_t stored_crc;
280271 uint8_t *trim_param = (uint8_t *)_cal;
281272
282273 static_assert (BMP3_CALIB_DATA_LEN <= sizeof (*_cal), " unexpected struct size" );
@@ -287,6 +278,8 @@ BMP388::validate_trimming_param()
287278
288279 crc = (crc ^ 0xFF );
289280
281+ uint8_t stored_crc;
282+
290283 if (_interface->get_reg (BMP3_TRIM_CRC_DATA_ADDR, &stored_crc) != OK) {
291284 return false ;
292285 }
@@ -425,18 +418,14 @@ BMP388::set_sensor_settings()
425418bool
426419BMP388::set_op_mode (uint8_t op_mode)
427420{
428- bool result = false ;
429- uint8_t last_set_mode;
430421 uint8_t op_mode_reg_val;
431- int ret = OK;
432-
433- ret = _interface->get_reg (BMP3_PWR_CTRL_ADDR, &op_mode_reg_val);
422+ int ret = _interface->get_reg (BMP3_PWR_CTRL_ADDR, &op_mode_reg_val);
434423
435424 if (ret != OK) {
436425 return false ;
437426 }
438427
439- last_set_mode = BMP3_GET_BITS (op_mode_reg_val, BMP3_OP_MODE);
428+ uint8_t last_set_mode = BMP3_GET_BITS (op_mode_reg_val, BMP3_OP_MODE);
440429
441430 /* Device needs to be put in sleep mode to transition */
442431 if (last_set_mode != BMP3_SLEEP_MODE) {
@@ -450,6 +439,8 @@ BMP388::set_op_mode(uint8_t op_mode)
450439 px4_usleep (BMP3_POST_SLEEP_WAIT_TIME);
451440 }
452441
442+ bool result = false ;
443+
453444 if (ret == OK) {
454445 ret = _interface->get_reg (BMP3_PWR_CTRL_ADDR, &op_mode_reg_val);
455446
@@ -478,13 +469,9 @@ BMP388::set_op_mode(uint8_t op_mode)
478469 */
479470static void parse_sensor_data (const uint8_t *reg_data, struct bmp3_uncomp_data *uncomp_data)
480471{
481- uint32_t data_xlsb;
482- uint32_t data_lsb;
483- uint32_t data_msb;
484-
485- data_xlsb = (uint32_t )reg_data[0 ];
486- data_lsb = (uint32_t )reg_data[1 ] << 8 ;
487- data_msb = (uint32_t )reg_data[2 ] << 16 ;
472+ uint32_t data_xlsb = (uint32_t )reg_data[0 ];
473+ uint32_t data_lsb = (uint32_t )reg_data[1 ] << 8 ;
474+ uint32_t data_msb = (uint32_t )reg_data[2 ] << 16 ;
488475 uncomp_data->pressure = data_msb | data_lsb | data_xlsb;
489476
490477 data_xlsb = (uint32_t )reg_data[3 ];
@@ -503,24 +490,16 @@ static void parse_sensor_data(const uint8_t *reg_data, struct bmp3_uncomp_data *
503490 */
504491static int64_t compensate_temperature (const struct bmp3_uncomp_data *uncomp_data, struct bmp3_calib_data *calib_data)
505492{
506- int64_t partial_data1;
507- int64_t partial_data2;
508- int64_t partial_data3;
509- int64_t partial_data4;
510- int64_t partial_data5;
511- int64_t partial_data6;
512- int64_t comp_temp;
513-
514- partial_data1 = ((int64_t )uncomp_data->temperature - (256 * calib_data->reg_calib_data .par_t1 ));
515- partial_data2 = calib_data->reg_calib_data .par_t2 * partial_data1;
516- partial_data3 = (partial_data1 * partial_data1);
517- partial_data4 = (int64_t )partial_data3 * calib_data->reg_calib_data .par_t3 ;
518- partial_data5 = ((int64_t )(partial_data2 * 262144 ) + partial_data4);
519- partial_data6 = partial_data5 / 4294967296 ;
493+ int64_t partial_data1 = ((int64_t )uncomp_data->temperature - (256 * calib_data->reg_calib_data .par_t1 ));
494+ int64_t partial_data2 = calib_data->reg_calib_data .par_t2 * partial_data1;
495+ int64_t partial_data3 = (partial_data1 * partial_data1);
496+ int64_t partial_data4 = (int64_t )partial_data3 * calib_data->reg_calib_data .par_t3 ;
497+ int64_t partial_data5 = ((int64_t )(partial_data2 * 262144 ) + partial_data4);
498+ int64_t partial_data6 = partial_data5 / 4294967296 ;
520499
521500 /* Store t_lin in dev. structure for pressure calculation */
522501 calib_data->reg_calib_data .t_lin = partial_data6;
523- comp_temp = (int64_t )((partial_data6 * 25 ) / 16384 );
502+ int64_t comp_temp = (int64_t )((partial_data6 * 25 ) / 16384 );
524503
525504 return comp_temp;
526505}
@@ -536,27 +515,19 @@ static uint64_t compensate_pressure(const struct bmp3_uncomp_data *uncomp_data,
536515 const struct bmp3_calib_data *calib_data)
537516{
538517 const struct bmp3_reg_calib_data *reg_calib_data = &calib_data->reg_calib_data ;
539- int64_t partial_data1;
540- int64_t partial_data2;
541- int64_t partial_data3;
542- int64_t partial_data4;
543- int64_t partial_data5;
544- int64_t partial_data6;
545- int64_t offset;
546- int64_t sensitivity;
547- uint64_t comp_press;
548-
549- partial_data1 = reg_calib_data->t_lin * reg_calib_data->t_lin ;
550- partial_data2 = partial_data1 / 64 ;
551- partial_data3 = (partial_data2 * reg_calib_data->t_lin ) / 256 ;
552- partial_data4 = (reg_calib_data->par_p8 * partial_data3) / 32 ;
553- partial_data5 = (reg_calib_data->par_p7 * partial_data1) * 16 ;
554- partial_data6 = (reg_calib_data->par_p6 * reg_calib_data->t_lin ) * 4194304 ;
555- offset = (reg_calib_data->par_p5 * 140737488355328 ) + partial_data4 + partial_data5 + partial_data6;
518+
519+ int64_t partial_data1 = reg_calib_data->t_lin * reg_calib_data->t_lin ;
520+ int64_t partial_data2 = partial_data1 / 64 ;
521+ int64_t partial_data3 = (partial_data2 * reg_calib_data->t_lin ) / 256 ;
522+ int64_t partial_data4 = (reg_calib_data->par_p8 * partial_data3) / 32 ;
523+ int64_t partial_data5 = (reg_calib_data->par_p7 * partial_data1) * 16 ;
524+ int64_t partial_data6 = (reg_calib_data->par_p6 * reg_calib_data->t_lin ) * 4194304 ;
525+ int64_t offset = (reg_calib_data->par_p5 * 140737488355328 ) + partial_data4 + partial_data5 + partial_data6;
556526 partial_data2 = (reg_calib_data->par_p4 * partial_data3) / 32 ;
557527 partial_data4 = (reg_calib_data->par_p3 * partial_data1) * 4 ;
558528 partial_data5 = (reg_calib_data->par_p2 - 16384 ) * reg_calib_data->t_lin * 2097152 ;
559- sensitivity = ((reg_calib_data->par_p1 - 16384 ) * 70368744177664 ) + partial_data2 + partial_data4 + partial_data5;
529+ int64_t sensitivity = ((reg_calib_data->par_p1 - 16384 ) * 70368744177664 ) + partial_data2 + partial_data4 +
530+ partial_data5;
560531 partial_data1 = (sensitivity / 16777216 ) * uncomp_data->pressure ;
561532 partial_data2 = reg_calib_data->par_p10 * reg_calib_data->t_lin ;
562533 partial_data3 = partial_data2 + (65536 * reg_calib_data->par_p9 );
@@ -568,7 +539,7 @@ static uint64_t compensate_pressure(const struct bmp3_uncomp_data *uncomp_data,
568539 partial_data2 = (reg_calib_data->par_p11 * partial_data6) / 65536 ;
569540 partial_data3 = (partial_data2 * uncomp_data->pressure ) / 128 ;
570541 partial_data4 = (offset / 4 ) + partial_data1 + partial_data5 + partial_data3;
571- comp_press = (((uint64_t )partial_data4 * 25 ) / (uint64_t )1099511627776 );
542+ uint64_t comp_press = (((uint64_t )partial_data4 * 25 ) / (uint64_t )1099511627776 );
572543
573544 return comp_press;
574545}
@@ -589,7 +560,7 @@ BMP388::compensate_data(uint8_t sensor_comp,
589560 struct bmp3_reg_calib_data *reg_calib_data = &calib_data.reg_calib_data ;
590561 memcpy (reg_calib_data, _cal, 21 );
591562
592- if ((uncomp_data != NULL ) && (comp_data != NULL )) {
563+ if ((uncomp_data != nullptr ) && (comp_data != nullptr )) {
593564 if (sensor_comp & (BMP3_PRESS | BMP3_TEMP)) {
594565 comp_data->temperature = compensate_temperature (uncomp_data, &calib_data);
595566 }
@@ -599,10 +570,10 @@ BMP388::compensate_data(uint8_t sensor_comp,
599570 }
600571
601572 } else {
602- rslt = - 1 ;
573+ rslt = ERROR ;
603574 }
604575
605- return (rslt == 0 );
576+ return (rslt == OK );
606577}
607578
608579/* !
@@ -613,13 +584,12 @@ BMP388::compensate_data(uint8_t sensor_comp,
613584bool
614585BMP388::get_sensor_data (uint8_t sensor_comp, struct bmp3_data *comp_data)
615586{
616- bool result = false ;
617- int8_t rslt;
587+ uint8_t reg_data[BMP3_P_T_DATA_LEN] {};
618588
619- uint8_t reg_data[BMP3_P_T_DATA_LEN];
620- struct bmp3_uncomp_data uncomp_data;
589+ int8_t rslt = _interface->get_reg_buf (BMP3_SENS_STATUS_REG_ADDR, reg_data, BMP3_P_T_DATA_LEN);
621590
622- rslt = _interface->get_reg_buf (BMP3_SENS_STATUS_REG_ADDR, reg_data, BMP3_P_T_DATA_LEN);
591+ bool result = false ;
592+ struct bmp3_uncomp_data uncomp_data {};
623593
624594 if (rslt == OK) {
625595 uint8_t status = reg_data[0 ];
0 commit comments