@@ -64,10 +64,10 @@ struct bh1749nuc_sensor_dev_s
6464{
6565 struct bh1749nuc_sensor_s priv [BH1749NUC_MAX_IDX ];
6666 struct bh1749nuc_dev_s dev ;
67- float scale_r ;
68- float scale_g ;
69- float scale_b ;
70- float scale_ir ;
67+ sensor_data_t scale_r ;
68+ sensor_data_t scale_g ;
69+ sensor_data_t scale_b ;
70+ sensor_data_t scale_ir ;
7171 mutex_t lock ;
7272#ifdef CONFIG_SENSORS_BH1749NUC_POLL
7373 sem_t run ;
@@ -231,11 +231,11 @@ static int bh1749nuc_fetch(FAR struct sensor_lowerhalf_s *lower,
231231
232232 rgb_data .timestamp = now ;
233233 tmp = bh1749nuc_read16 (dev , BH1749NUC_RED_DATA_LSB );
234- rgb_data .r = ( tmp * priv -> dev -> scale_r );
234+ rgb_data .r = sensor_data_muli ( priv -> dev -> scale_r , tmp );
235235 tmp = bh1749nuc_read16 (dev , BH1749NUC_GREEN_DATA_LSB );
236- rgb_data .g = ( tmp * priv -> dev -> scale_g );
236+ rgb_data .g = sensor_data_muli ( priv -> dev -> scale_g , tmp );
237237 tmp = bh1749nuc_read16 (dev , BH1749NUC_BLUE_DATA_LSB );
238- rgb_data .b = ( tmp * priv -> dev -> scale_b );
238+ rgb_data .b = sensor_data_muli ( priv -> dev -> scale_b , tmp );
239239
240240 memcpy (buffer , & rgb_data , sizeof (rgb_data ));
241241 ret = sizeof (rgb_data );
@@ -250,7 +250,7 @@ static int bh1749nuc_fetch(FAR struct sensor_lowerhalf_s *lower,
250250
251251 ir_data .timestamp = now ;
252252 tmp = bh1749nuc_read16 (dev , BH1749NUC_IR_DATA_LSB );
253- ir_data .ir = ( tmp * priv -> dev -> scale_ir );
253+ ir_data .ir = sensor_data_muli ( priv -> dev -> scale_ir , tmp );
254254
255255 memcpy (buffer , & ir_data , sizeof (ir_data ));
256256 ret = sizeof (ir_data );
@@ -361,11 +361,11 @@ static int bh1749nuc_thread(int argc, FAR char **argv)
361361 {
362362 rgb_data .timestamp = now ;
363363 tmp = bh1749nuc_read16 (& dev -> dev , BH1749NUC_RED_DATA_LSB );
364- rgb_data .r = ( tmp * dev -> scale_r );
364+ rgb_data .r = sensor_data_muli ( dev -> scale_r , tmp );
365365 tmp = bh1749nuc_read16 (& dev -> dev , BH1749NUC_GREEN_DATA_LSB );
366- rgb_data .g = ( tmp * dev -> scale_g );
366+ rgb_data .g = sensor_data_muli ( dev -> scale_g , tmp );
367367 tmp = bh1749nuc_read16 (& dev -> dev , BH1749NUC_BLUE_DATA_LSB );
368- rgb_data .b = ( tmp * dev -> scale_b );
368+ rgb_data .b = sensor_data_muli ( dev -> scale_b , tmp );
369369
370370 rgb -> lower .push_event (rgb -> lower .priv ,
371371 & rgb_data , sizeof (rgb_data ));
@@ -375,7 +375,7 @@ static int bh1749nuc_thread(int argc, FAR char **argv)
375375 {
376376 ir_data .timestamp = now ;
377377 tmp = bh1749nuc_read16 (& dev -> dev , BH1749NUC_IR_DATA_LSB );
378- ir_data .ir = ( tmp * dev -> scale_ir );
378+ ir_data .ir = sensor_data_muli ( dev -> scale_ir , tmp );
379379
380380 ir -> lower .push_event (ir -> lower .priv ,
381381 & ir_data , sizeof (ir_data ));
@@ -459,10 +459,10 @@ int bh1749nuc_register_uorb(int devno, FAR struct bh1749nuc_config_s *config)
459459
460460 /* Return data in lux unit for RGB and IR */
461461
462- dev -> scale_r = ( 20.0f / 71.0f ) * (1e-6 / 1.46e-7 );
463- dev -> scale_g = ( 20.0f / 99.0f ) * (1e-6 / 1.46e-7 );
464- dev -> scale_b = ( 20.0f / 70.0f ) * (1e-6 / 1.46e-7 );
465- dev -> scale_ir = ( 20.0f / 25.0f ) * (1e-6 / 1.46e-7 );
462+ dev -> scale_r = sensor_data_ftof (( 20.0f / 71.0f ) * (1e-6 / 1.46e-7 ) );
463+ dev -> scale_g = sensor_data_ftof (( 20.0f / 99.0f ) * (1e-6 / 1.46e-7 ) );
464+ dev -> scale_b = sensor_data_ftof (( 20.0f / 70.0f ) * (1e-6 / 1.46e-7 ) );
465+ dev -> scale_ir = sensor_data_ftof (( 20.0f / 25.0f ) * (1e-6 / 1.46e-7 ) );
466466
467467 /* Register sensor */
468468
0 commit comments