FastArduino v1.10
C++ library to build fast but small Arduino/AVR projects
Loading...
Searching...
No Matches
vl53l0x_types.h File Reference

API to handle Time-of-Flight ranging sensor VL53L0X I2C chip. More...

#include "../bits.h"
#include "../flash.h"
#include "../ios.h"
#include "../utilities.h"
#include "vl53l0x_registers.h"
Include dependency graph for vl53l0x_types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  devices::vl53l0x::FixPoint9_7
 Helper class to handle VL53L0X special fix-point 9.7 values. More...
 
class  devices::vl53l0x::DeviceStatus
 Status of device as retrieved by VL53L0X::get_range_status(). More...
 
class  devices::vl53l0x::GPIOSettings
 Settings for behavior of VL53L0X GPIO pin. More...
 
class  devices::vl53l0x::SPADReference
 Hold reference SPADs (Single Photon Avalanche Diode). More...
 
class  devices::vl53l0x::SequenceSteps
 Hold VL53L0X sequence steps to use for ranging. More...
 
class  devices::vl53l0x::SequenceStepsTimeout
 Hold VL53L0X sequence steps timeouts and other related settings used for ranging. More...
 
class  devices::vl53l0x::SPADInfo
 Hold SPAD information from VL53L0X device. More...
 

Namespaces

namespace  devices
 Defines all API for all external devices supported by FastArduino.
 
namespace  devices::vl53l0x
 Defines API for VL53L0X Time-of-Flight ranging sensor chip usage.
 

Enumerations

enum class  devices::vl53l0x::DeviceError : uint8_t {
  devices::vl53l0x::NONE = 0 ,
  VCSEL_CONTINUITY_TEST_FAILURE = 1 ,
  VCSEL_WATCHDOG_TEST_FAILURE = 2 ,
  NO_VHV_VALUE_FOUND = 3 ,
  MSRC_NO_TARGET = 4 ,
  SNR_CHECK = 5 ,
  RANGE_PHASE_CHECK = 6 ,
  SIGMA_THRESHOLD_CHECK = 7 ,
  TCC = 8 ,
  PHASE_CONSISTENCY = 9 ,
  MIN_CLIP = 10 ,
  devices::vl53l0x::RANGE_COMPLETE = 11 ,
  ALGO_UNDERFLOW = 12 ,
  ALGO_OVERFLOW = 13 ,
  RANGE_IGNORE_THRESHOLD = 14 ,
  devices::vl53l0x::UNKNOWN = 15
}
 Possible error codes returned by VL53L0X device. More...
 
enum class  devices::vl53l0x::PowerMode : uint8_t {
  STANDBY = 0 ,
  IDLE = 1
}
 Possible power modes of VL53L0X device as returned by VL53L0X::get_power_mode(). More...
 
enum class  devices::vl53l0x::GPIOFunction : uint8_t {
  devices::vl53l0x::DISABLED = 0x00 ,
  devices::vl53l0x::LEVEL_LOW = 0x01 ,
  devices::vl53l0x::LEVEL_HIGH = 0x02 ,
  devices::vl53l0x::OUT_OF_WINDOW = 0x03 ,
  devices::vl53l0x::SAMPLE_READY = 0x04
}
 Possible triggers for VL53L0X GPIO pin. More...
 
enum class  devices::vl53l0x::VcselPeriodType : uint8_t {
  PRE_RANGE = uint8_t(vl53l0x::Register::PRE_RANGE_CONFIG_VCSEL_PERIOD) ,
  FINAL_RANGE = uint8_t(vl53l0x::Register::FINAL_RANGE_CONFIG_VCSEL_PERIOD)
}
 Type of pulse period configured for VL53L0X device VCSEL (Vertical Cavity Surface Emitting Laser). More...
 
enum class  devices::vl53l0x::Profile : uint8_t {
  devices::vl53l0x::STANDARD = 0x00 ,
  devices::vl53l0x::LONG_RANGE = 0x01 ,
  devices::vl53l0x::STANDARD_ACCURATE = 0x02 ,
  devices::vl53l0x::LONG_RANGE_ACCURATE = 0x03 ,
  devices::vl53l0x::STANDARD_FAST = 0x04 ,
  devices::vl53l0x::LONG_RANGE_FAST = 0x05
}
 Possible profiles of ranging for VL53L0X top-level API VL53L0X::begin(). More...
 

Detailed Description

API to handle Time-of-Flight ranging sensor VL53L0X I2C chip.

This header defines all specific types used by VL53L0X device class. Note that most API here has been adapted and improved from official STMicroelectronics C-library API; this was necessary as the device datasheet does not describe the internals (registers) of the chip, the only way to understand how it works was thus to analyze the API source code.

Most types defined here have an associated operator<< to display them clearly to an output stream.

See also
https://www.st.com/content/st_com/en/products/embedded-software/proximity-sensors-software/stsw-img005.html

Definition in file vl53l0x_types.h.