Prise en compte du "Range status" lors de la lecture des mesures
This commit is contained in:
parent
c3580f9525
commit
0cd6b9b6db
@ -130,18 +130,30 @@ int capteur_pret(uint8_t capteur){
|
||||
int capteur_lire_distance_cm(uint8_t capteur, uint8_t * distance_cm){
|
||||
int status;
|
||||
uint16_t distance_mm;
|
||||
uint8_t range_status;
|
||||
status=VL53L1X_GetDistance(capteur + ADRESSE_I2C_BASE, &distance_mm);
|
||||
if(status){
|
||||
printf("GetDistance KO, error %d, capteur:%x\n", status, capteur + ADRESSE_I2C_BASE);
|
||||
return 0;
|
||||
}else{
|
||||
}
|
||||
|
||||
status=VL53L1X_GetRangeStatus(capteur + ADRESSE_I2C_BASE, &range_status);
|
||||
if(status){
|
||||
printf("GetRangeStatus KO, error %d, capteur:%x\n", status, capteur + ADRESSE_I2C_BASE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(range_status == 0){
|
||||
if(distance_mm/10 < (uint16_t) DISTANCE_TROP_LOIN_CM){
|
||||
*distance_cm = distance_mm / 10;
|
||||
}else{
|
||||
*distance_cm = DISTANCE_TROP_LOIN_CM;
|
||||
}
|
||||
}else{
|
||||
*distance_cm = DISTANCE_TROP_LOIN_CM;
|
||||
}
|
||||
|
||||
|
||||
status=VL53L1X_ClearInterrupt(capteur + ADRESSE_I2C_BASE);
|
||||
if(status){
|
||||
printf("ClearInterrupt KO, error %d, capteur:%x\n", status, capteur + ADRESSE_I2C_BASE);
|
||||
|
Loading…
Reference in New Issue
Block a user