initial release
XNucleo53L1A1.cpp@28:0e99f593daa9, 2019-07-24 (annotated)
- 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?
User | Revision | Line number | New 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 |