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

Committer:
johnAlexander
Date:
Wed Jul 24 12:29:10 2019 +0000
Revision:
28:0e99f593daa9
Parent:
27:afcf740eb7b8
Rationalise sensor-class init_sensor & initialise_sensor, to remove duplication.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JerrySzczurak 22:27f00d9b777b 1 #include "XNucleo53L1A1.h"
JerrySzczurak 22:27f00d9b777b 2
JerrySzczurak 22:27f00d9b777b 3 XNucleo53L1A1 *XNucleo53L1A1::_instance = NULL;
JerrySzczurak 22:27f00d9b777b 4
JerrySzczurak 22:27f00d9b777b 5
johnAlexander 27:afcf740eb7b8 6 XNucleo53L1A1 *XNucleo53L1A1::instance(VL53L1X_DevI2C *ext_i2c)
JerrySzczurak 22:27f00d9b777b 7 {
JerrySzczurak 22:27f00d9b777b 8 if (_instance == NULL) {
JerrySzczurak 22:27f00d9b777b 9 _instance = new XNucleo53L1A1(ext_i2c);
JerrySzczurak 22:27f00d9b777b 10 } else {
JerrySzczurak 22:27f00d9b777b 11 printf("Failed to create XNucleo53L1A1 instance\n\r\r\n");
JerrySzczurak 22:27f00d9b777b 12 }
JerrySzczurak 22:27f00d9b777b 13 return _instance;
JerrySzczurak 22:27f00d9b777b 14 }
JerrySzczurak 22:27f00d9b777b 15
johnAlexander 27:afcf740eb7b8 16 XNucleo53L1A1 *XNucleo53L1A1::instance(VL53L1X_DevI2C *ext_i2c,
JerrySzczurak 22:27f00d9b777b 17 PinName gpio1_centre,
JerrySzczurak 22:27f00d9b777b 18 PinName gpio1_left, PinName gpio1_right)
JerrySzczurak 22:27f00d9b777b 19 {
JerrySzczurak 22:27f00d9b777b 20 if (_instance == NULL) {
JerrySzczurak 22:27f00d9b777b 21 _instance = new XNucleo53L1A1(ext_i2c, gpio1_centre, gpio1_left, gpio1_right);
JerrySzczurak 22:27f00d9b777b 22 } else {
JerrySzczurak 22:27f00d9b777b 23 printf("Failed to create XNucleo53L0A1 instance\n\r");
JerrySzczurak 22:27f00d9b777b 24 }
JerrySzczurak 22:27f00d9b777b 25 return _instance;
JerrySzczurak 22:27f00d9b777b 26 }
JerrySzczurak 22:27f00d9b777b 27
JerrySzczurak 22:27f00d9b777b 28
JerrySzczurak 22:27f00d9b777b 29 int XNucleo53L1A1::init_board()
JerrySzczurak 22:27f00d9b777b 30 {
JerrySzczurak 22:27f00d9b777b 31 int status, n_dev = 0;
JerrySzczurak 22:27f00d9b777b 32
johnAlexander 27:afcf740eb7b8 33 sensor_centre->vl53l1_off();
johnAlexander 27:afcf740eb7b8 34 sensor_left->vl53l1_off();
johnAlexander 27:afcf740eb7b8 35 sensor_right->vl53l1_off();
johnAlexander 28:0e99f593daa9 36 status = sensor_centre->init_sensor(NEW_SENSOR_CENTRE_ADDRESS);
JerrySzczurak 22:27f00d9b777b 37 if (status) {
JerrySzczurak 22:27f00d9b777b 38 delete sensor_centre;
JerrySzczurak 22:27f00d9b777b 39 delete xshutdown_centre;
JerrySzczurak 22:27f00d9b777b 40 sensor_centre = NULL;
JerrySzczurak 22:27f00d9b777b 41 xshutdown_centre = NULL;
JerrySzczurak 22:27f00d9b777b 42 printf("Sensor centre not present\n\r");
JerrySzczurak 22:27f00d9b777b 43 } else {
JerrySzczurak 22:27f00d9b777b 44 printf("Sensor centre present\n\r");
JerrySzczurak 22:27f00d9b777b 45 n_dev++;
JerrySzczurak 22:27f00d9b777b 46 }
JerrySzczurak 22:27f00d9b777b 47
johnAlexander 28:0e99f593daa9 48 status = sensor_left->init_sensor(NEW_SENSOR_LEFT_ADDRESS);
JerrySzczurak 22:27f00d9b777b 49 if (status) {
JerrySzczurak 22:27f00d9b777b 50 delete sensor_left;
JerrySzczurak 22:27f00d9b777b 51 delete xshutdown_left;
JerrySzczurak 22:27f00d9b777b 52 sensor_left = NULL;
JerrySzczurak 22:27f00d9b777b 53 xshutdown_left = NULL;
JerrySzczurak 22:27f00d9b777b 54 printf("Sensor left not present\n\r");
JerrySzczurak 22:27f00d9b777b 55 } else {
JerrySzczurak 22:27f00d9b777b 56 printf("Sensor left present\n\r");
JerrySzczurak 22:27f00d9b777b 57 n_dev++;
JerrySzczurak 22:27f00d9b777b 58 }
JerrySzczurak 22:27f00d9b777b 59
johnAlexander 28:0e99f593daa9 60 status = sensor_right->init_sensor(NEW_SENSOR_RIGHT_ADDRESS);
JerrySzczurak 22:27f00d9b777b 61 if (status) {
JerrySzczurak 22:27f00d9b777b 62 delete sensor_right;
JerrySzczurak 22:27f00d9b777b 63 delete xshutdown_right;
JerrySzczurak 22:27f00d9b777b 64 sensor_right = NULL;
JerrySzczurak 22:27f00d9b777b 65 xshutdown_right = NULL;
JerrySzczurak 22:27f00d9b777b 66 printf("Sensor right not present\n\r");
JerrySzczurak 22:27f00d9b777b 67 } else {
JerrySzczurak 22:27f00d9b777b 68 printf("Sensor right present\n\r");
JerrySzczurak 22:27f00d9b777b 69 n_dev++;
JerrySzczurak 22:27f00d9b777b 70 }
JerrySzczurak 22:27f00d9b777b 71
JerrySzczurak 22:27f00d9b777b 72 if (n_dev == 0) {
JerrySzczurak 22:27f00d9b777b 73 return 1;
JerrySzczurak 22:27f00d9b777b 74 } else {
JerrySzczurak 22:27f00d9b777b 75 return 0;
JerrySzczurak 22:27f00d9b777b 76 }
JerrySzczurak 22:27f00d9b777b 77 }
johnAlexander 27:afcf740eb7b8 78