
Test for data scanning of RPLidar A2M8
Embed:
(wiki syntax)
Show/hide line numbers
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__ */
Generated on Fri Aug 26 2022 11:11:48 by
