libs/range_sensor/simple_samples/intensityScan.cpp
00001 
00011 #include "UrgDevice.h"
00012 #include "delay.h"
00013 #include <SDL.h>
00014 #include <cstdlib>
00015 #include <cstdio>
00016 
00017 using namespace qrk;
00018 using namespace std;
00019 
00020 
00021 int main(int argc, char *argv[])
00022 {
00023   // Change the port name appropriately
00024 #ifdef WINDOWS_OS
00025   const char device[] = "COM3";
00026 #else
00027   const char device[] = "/dev/ttyACM0";
00028 #endif
00029 
00030   UrgDevice urg;
00031   if (! urg.connect(device)) {
00032     printf("UrgDevice::connect: %s\n", urg.what());
00033     exit(1);
00034   }
00035   int scan_msec = urg.scanMsec();
00036   urg.setCaptureMode(IntensityCapture);
00037 
00038   enum {
00039     CaptureTimes = 10,
00040   };
00041 
00042   vector<long> data;
00043   vector<long> intensity_data;
00044 
00045   long previous_timestamp = 0;
00046   for (int i = 0; i < CaptureTimes; ++i) {
00047     long timestamp = 0;
00048     int data_n = urg.captureWithIntensity(data, intensity_data, &timestamp);
00049     if (data_n > 0) {
00050       int front_index = urg.rad2index(0.0);
00051       printf("%d: %ld [mm] (%ld), %ld [msec] (%ld)\n",
00052              i, data[front_index], intensity_data[front_index], timestamp,
00053              timestamp - previous_timestamp);
00054       previous_timestamp = timestamp;
00055     } else {
00056       --i;
00057       delay(scan_msec);
00058     }
00059   }
00060 
00061 #ifdef MSC
00062   getchar();
00063 #endif
00064 
00065   return 0;
00066 }
 All Classes Namespaces Files Functions Variables Enumerations Enumerator