source: flair-src/trunk/demos/CircleFollower/uav/src/main.cpp@ 63

Last change on this file since 63 was 38, checked in by Bayard Gildas, 8 years ago

Modif. pour ajour manette émulée (EmulatedController)

File size: 2.7 KB
RevLine 
[21]1// created: 2011/05/01
2// filename: main.cpp
3//
4// author: Guillaume Sanahuja
5// Copyright Heudiasyc UMR UTC/CNRS 7253
6//
7// version: $Id: $
8//
9// purpose: exemple de code uav
10//
11//
12/*********************************************************************/
13
14#include "CircleFollower.h"
15#include <UavFactory.h>
16#include <FrameworkManager.h>
17#include <stdio.h>
18#include <tclap/CmdLine.h>
[38]19#include <TargetEthController.h>
[21]20
21using namespace TCLAP;
22using namespace std;
[23]23using namespace flair::core;
24using namespace flair::meta;
[38]25using namespace flair::sensor;
[21]26
27string uav_type;
28string log_path;
29int port;
[38]30int ds3port;
[21]31string xml_file;
32string name;
33string address;
34
35void parseOptions(int argc, char** argv);
36
37
38int main(int argc, char* argv[]) {
39 parseOptions(argc,argv);
40
41 FrameworkManager *manager;
42 manager= new FrameworkManager(name);
43 manager->SetupConnection(address,port);
44 manager->SetupUserInterface(xml_file);
45 manager->SetupLogger(log_path);
46
47 Uav* drone=CreateUav(manager,name,uav_type);
[38]48 TargetEthController *controller=new TargetEthController(manager,"Dualshock3",ds3port);
49 CircleFollower* demo=new CircleFollower(drone,controller);
[21]50
51 demo->Start();
52 demo->Join();
53
54 delete manager;
55}
56
57void parseOptions(int argc, char** argv) {
58 try {
59
60 CmdLine cmd("Command description message", ' ', "0.1");
61
62 ValueArg<string> nameArg("n","name","uav name, also used for vrpn",true,"x4","string");
63 cmd.add( nameArg );
64
65 ValueArg<string> typeArg("t","type","uav type: ardrone2, hds_x4, hds_x8, hds_xufo, x4_simu, x8_simu or x4_simux (with x the number of the simulated uav)",true,"hds_x4","string");
66 cmd.add( typeArg );
67
68 ValueArg<string> xmlArg("x","xml","fichier xml",true,"./reglages.xml","string");
69 cmd.add( xmlArg );
70
71 ValueArg<string> logsArg("l","logs","repertoire des logs",true,"/media/ram","string");
72 cmd.add( logsArg );
73
74 ValueArg<int> portArg("p","port","port pour station sol",true,9000,"int");
75 cmd.add( portArg );
76
77 ValueArg<string> addressArg("a","address","addresse station sol",true,"127.0.0.1","string");
78 cmd.add( addressArg );
79
[38]80 ValueArg<int> ds3portArg("d","ds3_port","port pour ds3",false,20000,"int");
81 cmd.add( ds3portArg );
82
[21]83 cmd.parse( argc, argv );
84
85 // Get the value parsed by each arg.
86 log_path = logsArg.getValue();
87 port=portArg.getValue();
[38]88 ds3port=ds3portArg.getValue();
[21]89 xml_file = xmlArg.getValue();
90 name=nameArg.getValue();
91 uav_type=typeArg.getValue();
92 address=addressArg.getValue();
93
94 } catch (ArgException &e) { // catch any exceptions
95 cerr << "error: " << e.error() << " for arg " << e.argId() << endl;
96 }
97}
Note: See TracBrowser for help on using the repository browser.