Go to the documentation of this file.00001
00010 #include "urg_ctrl.h"
00011 #include "urg_delay.h"
00012 #include <stdio.h>
00013 #include <stdlib.h>
00014
00015
00016 static void urg_exit(urg_t *urg, const char *message)
00017 {
00018 printf("%s: %s\n", message, urg_error(urg));
00019 urg_disconnect(urg);
00020
00021 #ifdef MSC
00022 getchar();
00023 #endif
00024 exit(1);
00025 }
00026
00027
00028 static void printVersion(urg_t *urg)
00029 {
00030 enum {
00031 LinesMax = 5,
00032 };
00033
00034 char buffer[LinesMax][UrgLineWidth];
00035 char *lines[LinesMax];
00036 int ret;
00037 int i;
00038
00039
00040 for (i = 0; i < LinesMax; ++i) {
00041 lines[i] = buffer[i];
00042 }
00043 ret = urg_versionLines(urg, lines, LinesMax);
00044 if (ret < 0) {
00045 urg_exit(urg, "urg_getVersion");
00046 }
00047
00048
00049 for (i = 0; i < LinesMax; ++i) {
00050 printf("%s\n", lines[i]);
00051 }
00052 printf("\n");
00053 }
00054
00055
00056 int main(int argc, char *argv[])
00057 {
00058 enum {
00059 RebootTimes = 10,
00060 RebootMsec = 7000,
00061 };
00062
00063 #ifdef WINDOWS_OS
00064 const char device[] = "COM4";
00065 #else
00066 const char device[] = "/dev/ttyACM0";
00067 #endif
00068
00069 int ret;
00070 int i;
00071
00072 urg_t urg;
00073
00074 for (i = 0; i < RebootTimes; ++i) {
00075 ret = urg_connect(&urg, device, 115200);
00076 if (ret < 0) {
00077 urg_exit(&urg, "urg_connect()");
00078 }
00079
00080 printVersion(&urg);
00081 urg_reboot(&urg);
00082
00083
00084 urg_delay(RebootMsec);
00085 }
00086
00087 urg_disconnect(&urg);
00088
00089 return 0;
00090 }