source: flair-src/trunk/lib/FlairMeta/src/SimuX4.cpp @ 157

Last change on this file since 157 was 157, checked in by Sanahuja Guillaume, 4 years ago

iadded isready to iodevice:
avoid problem of imu not ready in ardrone2

File size: 2.1 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5//  created:    2016/02/08
6//  filename:   SimuX4.cpp
7//
8//  author:     Guillaume Sanahuja
9//              Copyright Heudiasyc UMR UTC/CNRS 7253
10//
11//  version:    $Id: $
12//
13//  purpose:    Class defining a simulation x4 uav
14//
15//
16/*********************************************************************/
17
18#include "SimuX4.h"
19#include <FrameworkManager.h>
20#include <X4X8Multiplex.h>
21#include <SimuImu.h>
22#include <SimuAhrs.h>
23#include <SimuBldc.h>
24#include <SimuUs.h>
25#include <SimuCamera.h>
26#include <BatteryMonitor.h>
27#include <Tab.h>
28#include <FindArgument.h>
29
30using std::string;
31using namespace flair::core;
32using namespace flair::gui;
33using namespace flair::sensor;
34using namespace flair::filter;
35using namespace flair::actuator;
36
37namespace flair {
38namespace meta {
39
40SimuX4::SimuX4(string name, int simu_id,string options,
41               filter::UavMultiplex *multiplex)
42    : Uav(name, multiplex) {
43
44  if (multiplex == NULL)
45    SetMultiplex(new X4X8Multiplex("motors", X4X8Multiplex::X4));
46
47  SetBldc(new SimuBldc(GetUavMultiplex(), GetUavMultiplex()->GetLayout(),
48                       "motors", GetUavMultiplex()->MotorsCount(), simu_id));
49  SetUsRangeFinder(new SimuUs("us", simu_id, 60));
50  SetAhrs(new SimuAhrs("imu", simu_id, 70));
51  Tab *bat_tab = new Tab(getFrameworkManager()->GetTabWidget(), "battery");
52  SetBatteryMonitor(new BatteryMonitor(bat_tab->NewRow(), "battery"));
53  GetBatteryMonitor()->SetBatteryValue(12);
54 
55  string camvOpts=FindArgument(options,"camv=",false);
56  uint16_t camvWidth=320,camvHeight=240;
57        if(camvOpts=="") {
58    Info("using default vertical camera resolution: %ix%i\n",camvWidth, camvHeight);
59        }
60 
61  SetVerticalCamera(
62      new SimuCamera("simu_cam_v", camvWidth, camvHeight, 3, simu_id, 10));
63}
64
65SimuX4::~SimuX4() {}
66
67void SimuX4::StartSensors(void) {
68  ((SimuImu *)(GetAhrs()->GetImu()))->Start();
69  ((SimuUs *)GetUsRangeFinder())->Start();
70  ((SimuCamera *)GetVerticalCamera())->Start();
71}
72
73
74} // end namespace meta
75} // end namespace flair
Note: See TracBrowser for help on using the repository browser.