Skip to content

Synchronise getDistance and getRangeStatus #43

Open
@hb020

Description

@hb020

getDistance and getRangeStatus go together. No use reading getDistance if one does not know the range status, as the status will tell if the distance read is valid or not.
However, in the SDK they are 2 separate calls.
When in continuous mode, therefore, it is not always clear if the values that are read pertain to the same sampling.
This can be tested easily:

s1 = ds->getRangeStatus();
d = ds->getDistance();
s2 = ds->getRangeStatus();
if (s1 != s2) { .. signal error or ignore... }

When continuous mode is enabled, over time, you will get this error, especially if the reading conditions are bad.
It is not uncommon to have the following sequential readings
distance X, status 2
distance Y, status 0
distance Z, status 2

where X,Y and Z are each totally different from each other
In that case, with the present lib configuration, it is possible to read distance X or Z, status 0, what would be wrong.

It is best to read the related registers all at the same time from the device, as can be found in some of the other VL53L1X libs, as in the reference implementation STSW-IMG007.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions