Zürcher Eliteeinheit / Mbed 2 deprecated ROME5

Dependencies:   mbed

Committer:
Appalco
Date:
Fri May 11 12:38:21 2018 +0000
Revision:
0:497d7f448d3e
Child:
1:a1a7c556e96a
Importet P5 ROME2; LIDAR

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Appalco 0:497d7f448d3e 1 /*
Appalco 0:497d7f448d3e 2 * LIDAR.h
Appalco 0:497d7f448d3e 3 * Copyright (c) 2018, ZHAW
Appalco 0:497d7f448d3e 4 * All rights reserved.
Appalco 0:497d7f448d3e 5 */
Appalco 0:497d7f448d3e 6
Appalco 0:497d7f448d3e 7 #ifndef LIDAR_H_
Appalco 0:497d7f448d3e 8 #define LIDAR_H_
Appalco 0:497d7f448d3e 9
Appalco 0:497d7f448d3e 10 #include <cstdlib>
Appalco 0:497d7f448d3e 11 #include <mbed.h>
Appalco 0:497d7f448d3e 12
Appalco 0:497d7f448d3e 13 /**
Appalco 0:497d7f448d3e 14 * This is a device driver class for the Slamtec RP LIDAR A1.
Appalco 0:497d7f448d3e 15 */
Appalco 0:497d7f448d3e 16 class LIDAR {
Appalco 0:497d7f448d3e 17
Appalco 0:497d7f448d3e 18 public:
Appalco 0:497d7f448d3e 19
Appalco 0:497d7f448d3e 20 LIDAR(RawSerial& serial);
Appalco 0:497d7f448d3e 21 virtual ~LIDAR();
Appalco 0:497d7f448d3e 22 short getDistance(short angle);
Appalco 0:497d7f448d3e 23 short getDistanceOfBeacon();
Appalco 0:497d7f448d3e 24 short getAngleOfBeacon();
Appalco 0:497d7f448d3e 25 void lookForBeacon();
Appalco 0:497d7f448d3e 26
Appalco 0:497d7f448d3e 27 private:
Appalco 0:497d7f448d3e 28
Appalco 0:497d7f448d3e 29 static const unsigned short HEADER_SIZE = 7;
Appalco 0:497d7f448d3e 30 static const unsigned short DATA_SIZE = 5;
Appalco 0:497d7f448d3e 31
Appalco 0:497d7f448d3e 32 static const char START_FLAG = 0xA5;
Appalco 0:497d7f448d3e 33 static const char SCAN = 0x20;
Appalco 0:497d7f448d3e 34 static const char STOP = 0x25;
Appalco 0:497d7f448d3e 35 static const char RESET = 0x40;
Appalco 0:497d7f448d3e 36
Appalco 0:497d7f448d3e 37 static const char QUALITY_THRESHOLD = 10;
Appalco 0:497d7f448d3e 38 static const short DISTANCE_THRESHOLD = 10;
Appalco 0:497d7f448d3e 39 static const short DEFAULT_DISTANCE = 10000;
Appalco 0:497d7f448d3e 40 static const short MIN_DISTANCE = 500;
Appalco 0:497d7f448d3e 41 static const short MAX_DISTANCE = 2000;
Appalco 0:497d7f448d3e 42 static const short THRESHOLD = 500;
Appalco 0:497d7f448d3e 43 static const short WINDOW = 75;
Appalco 0:497d7f448d3e 44 static const short MIN_SIZE = 2;
Appalco 0:497d7f448d3e 45 static const short MAX_SIZE = 9;
Appalco 0:497d7f448d3e 46
Appalco 0:497d7f448d3e 47 RawSerial& serial; // reference to serial interface for communication
Appalco 0:497d7f448d3e 48 char headerCounter;
Appalco 0:497d7f448d3e 49 char dataCounter;
Appalco 0:497d7f448d3e 50 char data[DATA_SIZE];
Appalco 0:497d7f448d3e 51 short distances[360]; // measured distance for every angle value, given in [mm]
Appalco 0:497d7f448d3e 52 short distanceOfBeacon; // distance of detected beacon, given in [mm]
Appalco 0:497d7f448d3e 53 short angleOfBeacon; // angle of detected beacon, given in [degrees]
Appalco 0:497d7f448d3e 54
Appalco 0:497d7f448d3e 55 void receive();
Appalco 0:497d7f448d3e 56 };
Appalco 0:497d7f448d3e 57
Appalco 0:497d7f448d3e 58 #endif /* LIDAR_H_ */
Appalco 0:497d7f448d3e 59