Test for data scanning of RPLidar A2M8

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers rplidar.h Source File

rplidar.h

00001 #ifndef __include_rplidar_h__
00002 #define __include_rplidar_h__
00003 
00004 #include "mbed.h"
00005 #define     LIDAR_MODE_STOP     0x25
00006 #define     LIDAR_MODE_RESET    0x40
00007 #define     LIDAR_MODE_SCAN     0x20
00008 #define     LIDAR_MODE_FORCE    0x21
00009 #define     LIDAR_MODE_INFO     0x50
00010 #define     LIDAR_MODE_HEALTH   0x52
00011 #define     LIDAR_MODE_RATE     0x59
00012 
00013 #define     NB_BYTE_INFO_REQ        7
00014 #define     NB_BYTE_INFO_RESP       20
00015 #define     NB_BYTE_RATE_REQ        7
00016 #define     NB_BYTE_RATE_RESP       4
00017 #define     NB_BYTE_HEALTH_REQ      7
00018 #define     NB_BYTE_HEALTH_RESP     3
00019 #define     NB_BYTE_FORCE_REQ       7
00020 #define     NB_BYTE_FORCE_RESP      5
00021 #define     NB_BYTE_SCAN_REQ        7
00022 
00023 extern char     pc_debug_data[128];
00024 
00025 extern  UnbufferedSerial    lidar;
00026 extern  UnbufferedSerial    pc;
00027 extern  DigitalOut          debug_data;
00028 extern  DigitalOut          debug_out;
00029 extern  DigitalOut          data_ok;
00030 extern  DigitalOut          data_ok_q;
00031 extern  int                 data_nb;
00032 extern  int                 data_scan_nb;
00033 extern  char                received_data[];
00034 extern  char                mode;
00035 extern  char                scan_ok;
00036 extern  int                 distance_scan[];
00037 extern  int                 distance_scan_old[];
00038 extern  char                tour_ok;
00039 extern  char                trame_ok;
00040 extern  struct lidar_data   ld_current;
00041 
00042 /* Data Structure of lidar */
00043 struct lidar_data{
00044     int quality;
00045     int angle;
00046     int distance;
00047 };
00048 
00049 /*********************************************************************** GENERAL FUNCTIONS */
00050 
00051 /** Print int value and its name
00052  */ 
00053 void print_int(const char *name, int ki);
00054 /** Print data from serial communication
00055  */ 
00056 void print_data(const char *name, char *datai, int sizedata);
00057 /** Wait seconds
00058  */ 
00059 void wait_s(float sec);
00060 
00061 /** Find max in an integer array
00062  */ 
00063 void findMax(int *int_data, int size, int *value, int *indice);
00064 
00065 /************************************************************************* LIDAR FUNCTIONS */
00066 
00067 /** IT_lidar
00068         interrupt function on serial receiving
00069  */
00070 void IT_lidar(void);
00071 
00072 /** Reset request
00073         send command to core reset of the lidar
00074         this action took 2ms
00075  */
00076 void sendResetReq(void);
00077 
00078 /** Health request
00079         get device health information
00080  */
00081 void getHealthLidar(void);
00082 
00083 /** Info request
00084         get device information
00085         model / firmware _ LSB / MSB / Hardware / SerialNumber (15 octets)
00086  */
00087 void getInfoLidar(void);
00088 
00089 /** Sample Rate
00090         get sample rate
00091  */
00092 void getSampleRate(void);
00093 
00094 /** Start Scan
00095         start standard scan
00096  */
00097 void startScan(void);
00098 
00099 /** Stop Scan
00100         stop standard scan
00101  */
00102 void stopScan(void);
00103 
00104 #endif /* #ifndef __include_rplidar_h__ */