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
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, ×tamp);
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 }