ITS
ParameterGPS.cpp
Go to the documentation of this file.
1 #include "ParameterGPS.h"
2 
4 {
5  read();
6  //readDebug();
7 }
8 
10 {
11  this->m_address = other.address();
12  this->m_heading = cpy_Heading(other.heading());
13  this->m_port = other.port();
15  this->m_speed = cpy_Speed(other.speed());
16  this->m_timestamp = other.timestamp();
17 }
18 
20 {
21 }
22 
24 {
25  cfg_opt_t altitude_opts[] =
26  {
27  CFG_INT("altitudeConfidence", AltitudeConfidence_unavailable, CFGF_NONE),
28  CFG_INT("altitudeValue", AltitudeValue_unavailable, CFGF_NONE),
29  CFG_END()
30  };
31  cfg_opt_t positionConfidenceEllipse_opts[] =
32  {
33  CFG_INT("semiMajorConfidence", SemiAxisLength_unavailable, CFGF_NONE),
34  CFG_INT("semiMajorOrientation", HeadingValue_unavailable, CFGF_NONE),
35  CFG_INT("semiMinorConfidence", SemiAxisLength_unavailable, CFGF_NONE),
36  CFG_END()
37  };
38  cfg_opt_t referencePosition_opts[] =
39  {
40  CFG_SEC("altitude", altitude_opts, CFGF_NO_TITLE_DUPES),
41  CFG_INT("latitude", Latitude_unavailable, CFGF_NONE),
42  CFG_INT("longitude", Longitude_unavailable, CFGF_NONE),
43  CFG_SEC("positionConfidenceEllipse", positionConfidenceEllipse_opts, CFGF_NO_TITLE_DUPES),
44  CFG_END()
45  };
46 
47  cfg_opt_t heading_opts[] =
48  {
49  CFG_INT("headingConfidence", HeadingConfidence_unavailable, CFGF_NONE),
50  CFG_INT("headingValue", HeadingValue_unavailable, CFGF_NONE),
51  CFG_END()
52  };
53 
54  cfg_opt_t speed_opts[] =
55  {
56  CFG_INT("speedConfidence", SpeedConfidence_unavailable, CFGF_NONE),
57  CFG_INT("speedValue", SpeedValue_unavailable, CFGF_NONE),
58  CFG_END()
59  };
60 
61  struct cfg_opt_t opts[] =
62  {
63  CFG_STR("address", "localhost", CFGF_NONE),
64 
65  CFG_SEC("heading", heading_opts, CFGF_NO_TITLE_DUPES),
66 
67  CFG_STR("port", "2947", CFGF_NONE),
68 
69  CFG_SEC("referencePosition", referencePosition_opts, CFGF_NO_TITLE_DUPES),
70 
71  CFG_SEC("speed", speed_opts, CFGF_NO_TITLE_DUPES),
72 
73  CFG_INT("timestamp", 0, CFGF_NONE),
74 
75  CFG_END()
76  };
77 
78  cfg_t *cfg;
79  cfg_t *cfg_altitude;
80  cfg_t *cfg_heading;
81  cfg_t *cfg_referencePosition;
82  cfg_t *cfg_positionConfidenceEllipse;
83  cfg_t *cfg_speed;
84 
85  cfg = cfg_init(opts, CFGF_NONE);
86  cfg_add_searchpath(cfg, "/etc/its/config");
87  if(cfg_parse(cfg, "gps.conf") == CFG_PARSE_ERROR)
88  printf("PARSE_ERROR\n");
89 
90  cfg_referencePosition = cfg_getsec(cfg, "referencePosition");
91  cfg_altitude = cfg_getsec(cfg_referencePosition, "altitude");
92  cfg_positionConfidenceEllipse = cfg_getsec(cfg_referencePosition, "positionConfidenceEllipse");
93 
94  cfg_speed = cfg_getsec(cfg, "speed");
95 
96  cfg_heading = cfg_getsec(cfg, "heading");
97 
98 
99  cfg_set_validate_func(cfg_altitude, "altitudeConfidence", validate_unsigned_int);
100 
101  cfg_set_validate_func(cfg_positionConfidenceEllipse, "semiMajorConfidence", validate_unsigned_int);
102  cfg_set_validate_func(cfg_positionConfidenceEllipse, "semiMinorConfidence", validate_unsigned_int);
103  cfg_set_validate_func(cfg_positionConfidenceEllipse, "semiMajorOrientation", validate_unsigned_int);
104 
105  cfg_set_validate_func(cfg_speed, "speedValue", validate_unsigned_int);
106  cfg_set_validate_func(cfg_speed, "speedConfidence", validate_unsigned_int);
107 
108  cfg_set_validate_func(cfg_heading, "headingValue", validate_unsigned_int);
109  cfg_set_validate_func(cfg_heading, "headingConfidence", validate_unsigned_int);
110 
111  cfg_set_validate_func(cfg, "timestamp", validate_unsigned_int);
112 
113  m_address = cfg_getstr(cfg, "address");
114 
115  m_port = cfg_getstr(cfg, "port");
116 
117  m_referencePosition.altitude.altitudeValue = cfg_getint(cfg_altitude, "altitudeValue");
118  m_referencePosition.altitude.altitudeConfidence = cfg_getint(cfg_altitude, "altitudeConfidence");
119 
120  m_referencePosition.latitude = cfg_getint(cfg_referencePosition, "latitude");
121  m_referencePosition.longitude = cfg_getint(cfg_referencePosition, "longitude");
122 
123  m_referencePosition.positionConfidenceEllipse.semiMajorConfidence = cfg_getint(cfg_positionConfidenceEllipse, "semiMajorConfidence");
124  m_referencePosition.positionConfidenceEllipse.semiMajorOrientation = cfg_getint(cfg_positionConfidenceEllipse, "semiMajorOrientation");
125  m_referencePosition.positionConfidenceEllipse.semiMinorConfidence = cfg_getint(cfg_positionConfidenceEllipse, "semiMinorConfidence");
126 
127  m_speed.speedConfidence = cfg_getint(cfg_speed, "speedConfidence");
128  m_speed.speedValue = cfg_getint(cfg_speed, "speedValue");
129 
130  m_heading.headingConfidence = cfg_getint(cfg_heading, "headingConfidence");
131  m_heading.headingValue = cfg_getint(cfg_heading, "headingValue");
132 
133 
134  m_timestamp = cfg_getint(cfg, "timestamp");
135 
136  cfg_free(cfg);
137 }
138 
140 {
141  printf("---------------------------------------------------------------------\n\t\tReadGPS\n\n");
142  printf("address = \"%s\"\n\n", m_address.toStdString().c_str());
143  printf("header\n{\n\theadingValue = %ld\n\n\theadingConfidence = %ld\n}\n\n", m_heading.headingValue, m_heading.headingConfidence);
144  printf("port = \"%s\"\n\n",m_port.toStdString().c_str());
145  printf("referencePosition\n{\n\taltitude\n\t{\n\t\taltitudeConfidence = %ld\n\n\t\taltitudeValue = %ld\n\t}\n\n", m_referencePosition.altitude.altitudeConfidence, m_referencePosition.altitude.altitudeValue);
146  printf("\tlatitude = %ld\n\n\tlongitude = %ld\n\n", m_referencePosition.latitude, m_referencePosition.longitude);
147  printf("\tpositionConfidenceEllipse\n\t{\n\t\tsemiMajorConfidence = %ld\n\n\t\tsemiMajorOrientation = %ld\n\n\t\tsemiMinorConfidence = %ld\n\t}\n}\n\n",
151 
152  printf("speed\n{\n\tspeedConfidence = %ld\n\n\tspeedValue = %ld\n}\n\n", m_speed.speedConfidence, m_speed.speedValue);
153  printf("timestamp = %lld\n\n", m_timestamp);
154 }
155 
157 {
158  this->m_address = other.m_address;
159  this->m_heading = other.m_heading;
160  this->m_port = other.m_port;
162  this->m_speed = other.m_speed;
163  this->m_timestamp = other.m_timestamp;
164  return *this;
165 }
GPS Configuration.
SemiAxisLength_t semiMinorConfidence
Heading_t m_heading
Definition: ParameterGPS.h:25
int validate_unsigned_int(cfg_t *cfg, cfg_opt_t *opt)
validate_unsigned_int Check if an option is an unsigned int
Definition: api.cpp:186
SpeedValue_t speedValue
Definition: Speed.h:24
ParameterGPS & operator=(const ParameterGPS &other)
operator= Affectation operator.
HeadingConfidence_t headingConfidence
Definition: Heading.h:25
HeadingValue_t semiMajorOrientation
Heading_t cpy_Heading(Heading_t h)
cpy_Heading Make a copy of an Heading_t.
Definition: apiCDD.cpp:808
QString m_address
Definition: ParameterGPS.h:24
Speed_t m_speed
Definition: ParameterGPS.h:28
HeadingValue_t headingValue
Definition: Heading.h:24
SemiAxisLength_t semiMajorConfidence
PosConfidenceEllipse_t positionConfidenceEllipse
ReferencePosition_t cpy_ReferencePosition(ReferencePosition_t r)
cpy_ReferencePosition Make a copy of a ReferencePosition_t.
Definition: apiCDD.cpp:998
AltitudeConfidence_t altitudeConfidence
Definition: Altitude.h:25
AltitudeValue_t altitudeValue
Definition: Altitude.h:24
quint64 timestamp() const
timestamp Timestamp since 01/01/2004 getter.
Definition: ParameterGPS.h:91
Speed_t speed() const
speed ITS-S speed getter.
Definition: ParameterGPS.h:86
QString m_port
Definition: ParameterGPS.h:26
quint64 m_timestamp
Definition: ParameterGPS.h:29
ReferencePosition_t referencePosition() const
referencePosition ITS-S position getter.
Definition: ParameterGPS.h:81
Speed_t cpy_Speed(Speed_t s)
cpy_Speed Make a copy of a Speed_t.
Definition: apiCDD.cpp:1030
QString address() const
address GPS daemon IP address getter.
Definition: ParameterGPS.h:66
void read()
read Configuration file reading.
ReferencePosition_t m_referencePosition
Definition: ParameterGPS.h:27
Heading_t heading() const
heading ITS-S heading getter.
Definition: ParameterGPS.h:71
void readDebug()
readDebug Configuration printing.
SpeedConfidence_t speedConfidence
Definition: Speed.h:25
QString port() const
port GPS daemon port getter.
Definition: ParameterGPS.h:76
ParameterGPS()
ParameterGPS ParameterGPS constructor.
Definition: ParameterGPS.cpp:3