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 capteur_lire_distance_cm(uint8_t capteur, uint8_t * distance_cm){
|
||||||
int status;
|
int status;
|
||||||
uint16_t distance_mm;
|
uint16_t distance_mm;
|
||||||
|
uint8_t range_status;
|
||||||
status=VL53L1X_GetDistance(capteur + ADRESSE_I2C_BASE, &distance_mm);
|
status=VL53L1X_GetDistance(capteur + ADRESSE_I2C_BASE, &distance_mm);
|
||||||
if(status){
|
if(status){
|
||||||
printf("GetDistance KO, error %d, capteur:%x\n", status, capteur + ADRESSE_I2C_BASE);
|
printf("GetDistance KO, error %d, capteur:%x\n", status, capteur + ADRESSE_I2C_BASE);
|
||||||
return 0;
|
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){
|
if(distance_mm/10 < (uint16_t) DISTANCE_TROP_LOIN_CM){
|
||||||
*distance_cm = distance_mm / 10;
|
*distance_cm = distance_mm / 10;
|
||||||
}else{
|
}else{
|
||||||
*distance_cm = DISTANCE_TROP_LOIN_CM;
|
*distance_cm = DISTANCE_TROP_LOIN_CM;
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
*distance_cm = DISTANCE_TROP_LOIN_CM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
status=VL53L1X_ClearInterrupt(capteur + ADRESSE_I2C_BASE);
|
status=VL53L1X_ClearInterrupt(capteur + ADRESSE_I2C_BASE);
|
||||||
if(status){
|
if(status){
|
||||||
printf("ClearInterrupt KO, error %d, capteur:%x\n", status, capteur + ADRESSE_I2C_BASE);
|
printf("ClearInterrupt KO, error %d, capteur:%x\n", status, capteur + ADRESSE_I2C_BASE);
|
||||||
|
Loading…
Reference in New Issue
Block a user