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

XNucleo53L1A1.cpp

Committer:
johnAlexander
Date:
2021-05-12
Revision:
30:820c80ae7752
Parent:
28:0e99f593daa9

File content as of revision 30:820c80ae7752:

#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->init_sensor(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->init_sensor(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->init_sensor(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;
    }
}