Library for use with VL53L1X, intended to represent the Proximity sensor expansion board with the same name.
Dependencies: VL53L1X_mbed
Dependents: HelloWorld_53L1A1 VL53L1A1_Simple_Ranging_With_One_Device VL53L1A1_Simple_Ranging_With_All_Devices VL53L1X_Ranging_With_Multiple_Devices_MbedOS ... more
Diff: XNucleo53L1A1.cpp
- Revision:
- 22:27f00d9b777b
- Child:
- 27:afcf740eb7b8
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/XNucleo53L1A1.cpp Mon Jan 28 10:14:22 2019 +0000 @@ -0,0 +1,77 @@ +#include "XNucleo53L1A1.h" + +XNucleo53L1A1 *XNucleo53L1A1::_instance = NULL; + + +XNucleo53L1A1 *XNucleo53L1A1::instance(vl53L1X_DevI2C *ext_i2c) +{ + if (_instance == NULL) { + _instance = new XNucleo53L1A1(ext_i2c); + } else { + printf("Failed to create XNucleo53L1A1 instance\n\r\r\n"); + } + return _instance; +} + +XNucleo53L1A1 *XNucleo53L1A1::instance(vl53L1X_DevI2C *ext_i2c, + PinName gpio1_centre, + PinName gpio1_left, PinName gpio1_right) +{ + if (_instance == NULL) { + _instance = new XNucleo53L1A1(ext_i2c, gpio1_centre, gpio1_left, gpio1_right); + } else { + printf("Failed to create XNucleo53L0A1 instance\n\r"); + } + return _instance; +} + + +int XNucleo53L1A1::init_board() +{ + int status, n_dev = 0; + + sensor_centre->VL53L1_Off(); + sensor_left->VL53L1_Off(); + sensor_right->VL53L1_Off(); + status = sensor_centre->InitSensor(NEW_SENSOR_CENTRE_ADDRESS); + if (status) { + delete sensor_centre; + delete xshutdown_centre; + sensor_centre = NULL; + xshutdown_centre = NULL; + printf("Sensor centre not present\n\r"); + } else { + printf("Sensor centre present\n\r"); + n_dev++; + } + + status = sensor_left->InitSensor(NEW_SENSOR_LEFT_ADDRESS); + if (status) { + delete sensor_left; + delete xshutdown_left; + sensor_left = NULL; + xshutdown_left = NULL; + printf("Sensor left not present\n\r"); + } else { + printf("Sensor left present\n\r"); + n_dev++; + } + + status = sensor_right->InitSensor(NEW_SENSOR_RIGHT_ADDRESS); + if (status) { + delete sensor_right; + delete xshutdown_right; + sensor_right = NULL; + xshutdown_right = NULL; + printf("Sensor right not present\n\r"); + } else { + printf("Sensor right present\n\r"); + n_dev++; + } + + if (n_dev == 0) { + return 1; + } else { + return 0; + } +}