source: flair-dev/trunk/include/FlairSensorActuator/SimuGps.h @ 62

Last change on this file since 62 was 62, checked in by Sanahuja Guillaume, 3 years ago

m

File size: 2.2 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/*!
6 * \file SimuGps.h
7 * \brief Class for a simulation GPS
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2013/08/23
10 * \version 4.0
11 */
12
13#ifndef SIMUGPS_H
14#define SIMUGPS_H
15
16#include <Thread.h>
17#include <NmeaGps.h>
18
19namespace flair {
20  namespace core {
21    class SharedMem;
22  }
23  namespace gui {
24    class SpinBox;
25    class DoubleSpinBox;
26  }
27}
28
29namespace flair {
30namespace sensor {
31/*! \class SimuGps
32*
33* \brief Class for a simulation GPS
34*/
35class SimuGps : public core::Thread, public NmeaGps {
36public:
37  /*!
38  * \brief Constructor
39  *
40  * Construct a simulation GPS. Control part.
41  * It will be child of the FrameworkManager.
42        *
43  * \param name name
44  * \param NMEAFlags NMEA sentances to enable
45  * \param modelId Model id
46  * \param deviceId Gps id of the Model
47  * \param priority priority of the Thread
48  */
49  SimuGps(std::string name,
50          NmeaGps::NMEAFlags_t NMEAFlags, uint32_t modelId,uint32_t deviceId,uint8_t priority);
51
52  /*!
53  * \brief Constructor
54  *
55  * Construct a simulation GPS. Simulation part.\n
56  * The Thread of this class should not be run.
57  *
58  * \param parent parent
59  * \param name name
60  * \param modelId Model id
61  * \param deviceId Gps id of the Model
62  */
63  SimuGps(const core::IODevice *parent, std::string name, uint32_t modelId,uint32_t deviceId);
64
65  /*!
66  * \brief Destructor
67  *
68  */
69  ~SimuGps();
70
71private:
72  /*!
73  * \brief Update using provided datas
74  *
75  * Reimplemented from IODevice.
76  *
77  * \param data data from the parent to process
78  */
79  void UpdateFrom(const core::io_data *data);
80
81  /*!
82  * \brief Run function
83  *
84  * Reimplemented from Thread.
85  *
86  */
87  void Run(void);
88
89  typedef struct {
90    float e;
91    float n;
92    float u;
93    float ve;
94    float vn;
95  } gps_states_t;
96 
97  std::string ShMemName(uint32_t modelId,uint32_t deviceId);
98
99  core::SharedMem *shmem;
100  gui::SpinBox *dataRate,*fixQuality,*numberOfSatellites;
101  gui::DoubleSpinBox *latitudeRef,*longitudeRef,*altitudeRef,*magneticDeclination;
102};
103} // end namespace sensor
104} // end namespace flair
105#endif // SIMUGPS_H
Note: See TracBrowser for help on using the repository browser.