Pierre-Yves Malengre / Mbed OS Lidar
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers print.cpp Source File

print.cpp

00001 
00002 #include "print.h"
00003 
00004 void Print::printData(int angle, int sizeOfPrint, float* data)
00005 {
00006     
00007     int startAngle =0;
00008     int step = angle/sizeOfPrint;
00009 
00010     //Printing
00011     _PC.printf("Distance\t");
00012     for(int j = startAngle; j < startAngle + angle; j+=step) _PC.printf("%.0f\t", data[j]); //in cm 
00013     _PC.printf("\nAngle\t\t");
00014     for(int j = startAngle; j < startAngle + angle; j+=step) _PC.printf("%.0f\t",data[j]);
00015     _PC.printf("\n");
00016 }
00017 
00018 void Print::printData(int startAngle, int angle, int sizeOfPrint, float* data)
00019 {
00020     
00021     int step = angle/sizeOfPrint;
00022 
00023     //Printing
00024     _PC.printf("Distance\t");
00025     for(int j = startAngle; j < startAngle + angle; j+=step) _PC.printf("%.0f\t", data[j]); //in cm 
00026     _PC.printf("\nAngle\t\t");
00027     for(int j = startAngle; j < startAngle + angle; j+=step) _PC.printf("%.0f\t",data[j]);
00028     _PC.printf("\n");
00029 }
00030 
00031 void Print::getPrintData(int angle, int sizeOfPrint, RPLidar lidar, int readTime)
00032 {
00033     int startAngle=0;
00034     int buf=0;
00035     int step = angle/sizeOfPrint;
00036     Timer tim;
00037     //tim.start();
00038     _PC.printf("Timer started\n");
00039 
00040     while(startAngle<360)
00041     {                
00042         lidar.setAngle(startAngle, startAngle+angle);
00043         lidar.setLidar();
00044 
00045         //Getting data
00046         buf = tim.read_ms();
00047         while(tim.read_ms()-buf<=readTime){//Crashes after around 400
00048             _PC.printf("tim.read_ms() : %d\n",tim.read_ms());
00049             lidar.waitPoint(0);//Causes the crash
00050         }
00051 
00052         //Printing
00053         _PC.printf("Distance\t");
00054         for(int j = startAngle; j < startAngle + angle; j+=step) _PC.printf("%.0f\t", lidar.Data[j].distance); //in cm 
00055         _PC.printf("\nAngle\t\t");
00056         for(int j = startAngle; j < startAngle + angle; j+=step) _PC.printf("%.0f\t",lidar.Data[j].angle);
00057         _PC.printf("\n");
00058             
00059         startAngle+=angle;
00060         _PC.printf("\n\n");
00061 
00062     }
00063 } 
00064 
00065