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

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;
+    }
+}