Line | Branch | Exec | Source |
---|---|---|---|
1 | // This file is part of INSTINCT, the INS Toolkit for Integrated | ||
2 | // Navigation Concepts and Training by the Institute of Navigation of | ||
3 | // the University of Stuttgart, Germany. | ||
4 | // | ||
5 | // This Source Code Form is subject to the terms of the Mozilla Public | ||
6 | // License, v. 2.0. If a copy of the MPL was not distributed with this | ||
7 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. | ||
8 | |||
9 | #include "VectorNavDataLogger.hpp" | ||
10 | |||
11 | #include "NodeData/IMU/VectorNavBinaryOutput.hpp" | ||
12 | |||
13 | #include "util/Logger.hpp" | ||
14 | #include "util/StringUtil.hpp" | ||
15 | |||
16 | #include <iomanip> // std::setprecision | ||
17 | #include <limits> | ||
18 | |||
19 | #include "internal/NodeManager.hpp" | ||
20 | namespace nm = NAV::NodeManager; | ||
21 | #include "internal/FlowManager.hpp" | ||
22 | |||
23 | #include <imgui_internal.h> | ||
24 | |||
25 | 116 | NAV::VectorNavDataLogger::VectorNavDataLogger() | |
26 |
4/8✓ Branch 1 taken 116 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 116 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 116 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 116 times.
✗ Branch 12 not taken.
|
116 | : Node(typeStatic()) |
27 | { | ||
28 | LOG_TRACE("{}: called", name); | ||
29 | |||
30 | 116 | _fileType = FileType::BINARY; | |
31 | |||
32 | 116 | _hasConfig = true; | |
33 | 116 | _guiConfigDefaultWindowSize = { 444, 92 }; | |
34 | |||
35 |
4/8✓ Branch 1 taken 116 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 116 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 116 times.
✓ Branch 9 taken 116 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
348 | nm::CreateInputPin(this, "BinaryOutput", Pin::Type::Flow, { NAV::VectorNavBinaryOutput::type() }, &VectorNavDataLogger::writeObservation); |
36 | 232 | } | |
37 | |||
38 | 240 | NAV::VectorNavDataLogger::~VectorNavDataLogger() | |
39 | { | ||
40 | LOG_TRACE("{}: called", nameId()); | ||
41 | 240 | } | |
42 | |||
43 | 228 | std::string NAV::VectorNavDataLogger::typeStatic() | |
44 | { | ||
45 |
1/2✓ Branch 1 taken 228 times.
✗ Branch 2 not taken.
|
456 | return "VectorNavDataLogger"; |
46 | } | ||
47 | |||
48 | ✗ | std::string NAV::VectorNavDataLogger::type() const | |
49 | { | ||
50 | ✗ | return typeStatic(); | |
51 | } | ||
52 | |||
53 | 112 | std::string NAV::VectorNavDataLogger::category() | |
54 | { | ||
55 |
1/2✓ Branch 1 taken 112 times.
✗ Branch 2 not taken.
|
224 | return "Data Logger"; |
56 | } | ||
57 | |||
58 | ✗ | void NAV::VectorNavDataLogger::guiConfig() | |
59 | { | ||
60 | ✗ | if (FileWriter::guiConfig(_fileType == FileType::ASCII ? ".csv" : ".vnb", { _fileType == FileType::ASCII ? ".csv" : ".vnb" }, size_t(id), nameId())) | |
61 | { | ||
62 | ✗ | flow::ApplyChanges(); | |
63 | ✗ | doDeinitialize(); | |
64 | } | ||
65 | |||
66 | ✗ | if (CommonLog::ShowOriginInput(nameId().c_str())) | |
67 | { | ||
68 | ✗ | flow::ApplyChanges(); | |
69 | } | ||
70 | |||
71 | static constexpr std::array<FileType, 2> fileTypes = { | ||
72 | { FileType::ASCII, | ||
73 | FileType::BINARY } | ||
74 | }; | ||
75 | ✗ | if (ImGui::BeginCombo(fmt::format("Mode##{}", size_t(id)).c_str(), FileWriter::to_string(_fileType))) | |
76 | { | ||
77 | ✗ | for (const auto& type : fileTypes) | |
78 | { | ||
79 | ✗ | const bool isSelected = (_fileType == type); | |
80 | ✗ | if (ImGui::Selectable(to_string(type), isSelected)) | |
81 | { | ||
82 | ✗ | _fileType = type; | |
83 | ✗ | LOG_DEBUG("{}: _fileType changed to {}", nameId(), FileWriter::to_string(_fileType)); | |
84 | ✗ | str::replace(_path, _fileType == FileType::ASCII ? ".vnb" : ".csv", _fileType == FileType::ASCII ? ".csv" : ".vnb"); | |
85 | ✗ | flow::ApplyChanges(); | |
86 | ✗ | if (isInitialized()) | |
87 | { | ||
88 | ✗ | deinitialize(); | |
89 | ✗ | initialize(); | |
90 | } | ||
91 | } | ||
92 | |||
93 | ✗ | if (isSelected) // Set the initial focus when opening the combo (scrolling + keyboard navigation focus) | |
94 | { | ||
95 | ✗ | ImGui::SetItemDefaultFocus(); | |
96 | } | ||
97 | } | ||
98 | ✗ | ImGui::EndCombo(); | |
99 | } | ||
100 | ✗ | } | |
101 | |||
102 | ✗ | [[nodiscard]] json NAV::VectorNavDataLogger::save() const | |
103 | { | ||
104 | LOG_TRACE("{}: called", nameId()); | ||
105 | |||
106 | ✗ | json j; | |
107 | |||
108 | ✗ | j["FileWriter"] = FileWriter::save(); | |
109 | |||
110 | ✗ | return j; | |
111 | ✗ | } | |
112 | |||
113 | 4 | void NAV::VectorNavDataLogger::restore(json const& j) | |
114 | { | ||
115 | LOG_TRACE("{}: called", nameId()); | ||
116 | |||
117 |
1/2✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
|
4 | if (j.contains("FileWriter")) |
118 | { | ||
119 | 4 | FileWriter::restore(j.at("FileWriter")); | |
120 | } | ||
121 | 4 | } | |
122 | |||
123 | 4 | bool NAV::VectorNavDataLogger::onCreateLink([[maybe_unused]] OutputPin& startPin, [[maybe_unused]] InputPin& endPin) | |
124 | { | ||
125 | LOG_TRACE("{}: called for {} ==> {}", nameId(), size_t(startPin.id), size_t(endPin.id)); | ||
126 | |||
127 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 4 times.
|
4 | if (isInitialized()) |
128 | { | ||
129 | ✗ | deinitialize(); | |
130 | ✗ | initialize(); | |
131 | } | ||
132 | |||
133 | 4 | return true; | |
134 | } | ||
135 | |||
136 | 4 | void NAV::VectorNavDataLogger::flush() | |
137 | { | ||
138 | 4 | _filestream.flush(); | |
139 | 4 | } | |
140 | |||
141 | 12 | bool NAV::VectorNavDataLogger::initialize() | |
142 | { | ||
143 | LOG_TRACE("{}: called", nameId()); | ||
144 | |||
145 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
|
12 | if (!FileWriter::initialize()) |
146 | { | ||
147 | ✗ | return false; | |
148 | } | ||
149 | |||
150 | 12 | CommonLog::initialize(); | |
151 | |||
152 | 12 | _headerWritten = false; | |
153 | |||
154 | 12 | return true; | |
155 | } | ||
156 | |||
157 | 4 | void NAV::VectorNavDataLogger::deinitialize() | |
158 | { | ||
159 | LOG_TRACE("{}: called", nameId()); | ||
160 | |||
161 | 4 | FileWriter::deinitialize(); | |
162 | 4 | } | |
163 | |||
164 | 59 | void NAV::VectorNavDataLogger::writeObservation(NAV::InputPin::NodeDataQueue& queue, size_t /* pinIdx */) | |
165 | { | ||
166 |
1/2✓ Branch 1 taken 59 times.
✗ Branch 2 not taken.
|
59 | auto obs = std::static_pointer_cast<const VectorNavBinaryOutput>(queue.extract_front()); |
167 | |||
168 |
2/2✓ Branch 0 taken 30 times.
✓ Branch 1 taken 30 times.
|
60 | if (_fileType == FileType::ASCII) |
169 | { | ||
170 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 28 times.
|
30 | if (!_headerWritten) |
171 | { | ||
172 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << "Time [s],GpsCycle,GpsWeek,GpsTow [s]"; |
173 | |||
174 | // Group 2 (Time) | ||
175 |
1/2✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
2 | if (obs->timeOutputs) |
176 | { | ||
177 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMESTARTUP) |
178 | { | ||
179 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << ",Time::TimeStartup [ns]"; |
180 | } | ||
181 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMEGPS) |
182 | { | ||
183 | ✗ | _filestream << ",Time::TimeGps [ns]"; | |
184 | } | ||
185 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_GPSTOW) |
186 | { | ||
187 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << ",Time::GpsTow [ns]"; |
188 | } | ||
189 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_GPSWEEK) |
190 | { | ||
191 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << ",Time::GpsWeek"; |
192 | } | ||
193 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMESYNCIN) |
194 | { | ||
195 | ✗ | _filestream << ",Time::TimeSyncIn [ns]"; | |
196 | } | ||
197 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMEGPSPPS) |
198 | { | ||
199 | ✗ | _filestream << ",Time::TimeGpsPps [ns]"; | |
200 | } | ||
201 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMEUTC) |
202 | { | ||
203 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",Time::TimeUTC::year,Time::TimeUTC::month,Time::TimeUTC::day,Time::TimeUTC::hour,Time::TimeUTC::min,Time::TimeUTC::sec,Time::TimeUTC::ms"; |
204 | } | ||
205 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_SYNCINCNT) |
206 | { | ||
207 | ✗ | _filestream << ",Time::SyncInCnt"; | |
208 | } | ||
209 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_SYNCOUTCNT) |
210 | { | ||
211 | ✗ | _filestream << ",Time::SyncOutCnt"; | |
212 | } | ||
213 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMESTATUS) |
214 | { | ||
215 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << ",Time::TimeStatus::timeOk,Time::TimeStatus::dateOk,Time::TimeStatus::utcTimeValid"; |
216 | } | ||
217 | } | ||
218 | // Group 3 (IMU) | ||
219 |
2/2✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
|
2 | if (obs->imuOutputs) |
220 | { | ||
221 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
|
1 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_IMUSTATUS) |
222 | { | ||
223 | ✗ | _filestream << ",IMU::ImuStatus"; | |
224 | } | ||
225 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_UNCOMPMAG) |
226 | { | ||
227 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",IMU::UncompMag::X [Gauss],IMU::UncompMag::Y [Gauss],IMU::UncompMag::Z [Gauss]"; |
228 | } | ||
229 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_UNCOMPACCEL) |
230 | { | ||
231 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",IMU::UncompAccel::X [m/s^2],IMU::UncompAccel::Y [m/s^2],IMU::UncompAccel::Z [m/s^2]"; |
232 | } | ||
233 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_UNCOMPGYRO) |
234 | { | ||
235 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",IMU::UncompGyro::X [rad/s],IMU::UncompGyro::Y [rad/s],IMU::UncompGyro::Z [rad/s]"; |
236 | } | ||
237 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_TEMP) |
238 | { | ||
239 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",IMU::Temp [Celsius]"; |
240 | } | ||
241 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_PRES) |
242 | { | ||
243 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",IMU::Pres [kPa]"; |
244 | } | ||
245 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_DELTATHETA) |
246 | { | ||
247 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",IMU::DeltaTime [s],IMU::DeltaTheta::X [deg],IMU::DeltaTheta::Y [deg],IMU::DeltaTheta::Z [deg]"; |
248 | } | ||
249 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_DELTAVEL) |
250 | { | ||
251 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",IMU::DeltaVel::X [m/s],IMU::DeltaVel::Y [m/s],IMU::DeltaVel::Z [m/s]"; |
252 | } | ||
253 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_MAG) |
254 | { | ||
255 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",IMU::Mag::X [Gauss],IMU::Mag::Y [Gauss],IMU::Mag::Z [Gauss]"; |
256 | } | ||
257 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_ACCEL) |
258 | { | ||
259 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",IMU::Accel::X [m/s^2],IMU::Accel::Y [m/s^2],IMU::Accel::Z [m/s^2]"; |
260 | } | ||
261 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_ANGULARRATE) |
262 | { | ||
263 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",IMU::AngularRate::X,IMU::AngularRate::Y [rad/s],IMU::AngularRate::Z [rad/s]"; |
264 | } | ||
265 | } | ||
266 | // Group 4 (GNSS1) | ||
267 |
1/2✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
2 | if (obs->gnss1Outputs) |
268 | { | ||
269 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_UTC) |
270 | { | ||
271 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS1::UTC::year,GNSS1::UTC::month,GNSS1::UTC::day,GNSS1::UTC::hour,GNSS1::UTC::min,GNSS1::UTC::sec,GNSS1::UTC::ms"; |
272 | } | ||
273 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TOW) |
274 | { | ||
275 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << ",GNSS1::Tow [ns]"; |
276 | } | ||
277 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_WEEK) |
278 | { | ||
279 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << ",GNSS1::Week"; |
280 | } | ||
281 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_NUMSATS) |
282 | { | ||
283 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS1::NumSats"; |
284 | } | ||
285 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_FIX) |
286 | { | ||
287 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS1::Fix"; |
288 | } | ||
289 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSLLA) |
290 | { | ||
291 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS1::PosLla::latitude [deg],GNSS1::PosLla::longitude [deg],GNSS1::PosLla::altitude [m]"; |
292 | } | ||
293 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSECEF) |
294 | { | ||
295 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS1::PosEcef::X [m],GNSS1::PosEcef::Y [m],GNSS1::PosEcef::Z [m]"; |
296 | } | ||
297 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELNED) |
298 | { | ||
299 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS1::VelNed::N [m/s],GNSS1::VelNed::E [m/s],GNSS1::VelNed::D [m/s]"; |
300 | } | ||
301 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELECEF) |
302 | { | ||
303 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS1::VelEcef::X [m/s],GNSS1::VelEcef::Y [m/s],GNSS1::VelEcef::Z [m/s]"; |
304 | } | ||
305 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSU) |
306 | { | ||
307 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS1::PosU::N [m],GNSS1::PosU::E [m],GNSS1::PosU::D [m]"; |
308 | } | ||
309 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELU) |
310 | { | ||
311 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS1::VelU [m/s]"; |
312 | } | ||
313 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEU) |
314 | { | ||
315 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS1::TimeU [s]"; |
316 | } | ||
317 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEINFO) |
318 | { | ||
319 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << ",GNSS1::TimeInfo::Status::timeOk,GNSS1::TimeInfo::Status::dateOk,GNSS1::TimeInfo::Status::utcTimeValid,GNSS1::TimeInfo::LeapSeconds"; |
320 | } | ||
321 |
3/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_DOP) |
322 | { | ||
323 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS1::DOP::g,GNSS1::DOP::p,GNSS1::DOP::t,GNSS1::DOP::v,GNSS1::DOP::h,GNSS1::DOP::n,GNSS1::DOP::e"; |
324 | } | ||
325 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_SATINFO) |
326 | { | ||
327 | ✗ | _filestream << ",GNSS1::SatInfo::NumSats,GNSS1::SatInfo::Satellites"; | |
328 | } | ||
329 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_RAWMEAS) |
330 | { | ||
331 | ✗ | _filestream << ",GNSS1::RawMeas::Tow [s],GNSS1::RawMeas::Week,GNSS1::RawMeas::NumSats,GNSS1::RawMeas::Satellites"; | |
332 | } | ||
333 | } | ||
334 | // Group 5 (Attitude) | ||
335 |
1/2✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
2 | if (obs->attitudeOutputs) |
336 | { | ||
337 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_VPESTATUS) |
338 | { | ||
339 | _filestream << ",Att::VpeStatus::AttitudeQuality" | ||
340 | ",Att::VpeStatus::GyroSaturation" | ||
341 | ",Att::VpeStatus::GyroSaturationRecovery" | ||
342 | ",Att::VpeStatus::MagDisturbance" | ||
343 | ",Att::VpeStatus::MagSaturation" | ||
344 | ",Att::VpeStatus::AccDisturbance" | ||
345 | ",Att::VpeStatus::AccSaturation" | ||
346 | ",Att::VpeStatus::KnownMagDisturbance" | ||
347 | ✗ | ",Att::VpeStatus::KnownAccelDisturbance"; | |
348 | } | ||
349 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_YAWPITCHROLL) |
350 | { | ||
351 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << ",Att::YawPitchRoll::Y [deg],Att::YawPitchRoll::P [deg],Att::YawPitchRoll::R [deg]"; |
352 | } | ||
353 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_QUATERNION) |
354 | { | ||
355 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << ",Att::Quaternion::w,Att::Quaternion::x,Att::Quaternion::y,Att::Quaternion::z"; |
356 | } | ||
357 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_DCM) |
358 | { | ||
359 | _filestream << ",Att::DCM::0-0,Att::DCM::0-1,Att::DCM::0-2" | ||
360 | ",Att::DCM::1-0,Att::DCM::1-1,Att::DCM::1-2" | ||
361 | ✗ | ",Att::DCM::2-0,Att::DCM::2-1,Att::DCM::2-2"; | |
362 | } | ||
363 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_MAGNED) |
364 | { | ||
365 | ✗ | _filestream << ",Att::MagNed::N [Gauss],Att::MagNed::E [Gauss],Att::MagNed::D [Gauss]"; | |
366 | } | ||
367 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_ACCELNED) |
368 | { | ||
369 | ✗ | _filestream << ",Att::AccelNed::N [m/s^2],Att::AccelNed::E [m/s^2],Att::AccelNed::D [m/s^2]"; | |
370 | } | ||
371 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_LINEARACCELBODY) |
372 | { | ||
373 | ✗ | _filestream << ",Att::LinearAccelBody::X [m/s^2],Att::LinearAccelBody::Y [m/s^2],Att::LinearAccelBody::Z [m/s^2]"; | |
374 | } | ||
375 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
|
2 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_LINEARACCELNED) |
376 | { | ||
377 | ✗ | _filestream << ",Att::LinearAccelNed::N [m/s^2],Att::LinearAccelNed::E [m/s^2],Att::LinearAccelNed::D [m/s^2]"; | |
378 | } | ||
379 |
2/4✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_YPRU) |
380 | { | ||
381 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << ",Att::YprU::Y [deg],Att::YprU::P [deg],Att::YprU::R [deg]"; |
382 | } | ||
383 | } | ||
384 | // Group 6 (INS) | ||
385 |
2/2✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
|
2 | if (obs->insOutputs) |
386 | { | ||
387 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_INSSTATUS) |
388 | { | ||
389 | _filestream << ",INS::InsStatus::Mode" | ||
390 | ",INS::InsStatus::GpsFix" | ||
391 | ",INS::InsStatus::Error::IMU" | ||
392 | ",INS::InsStatus::Error::MagPres" | ||
393 | ",INS::InsStatus::Error::GNSS" | ||
394 | ",INS::InsStatus::GpsHeadingIns" | ||
395 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | ",INS::InsStatus::GpsCompass"; |
396 | } | ||
397 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_POSLLA) |
398 | { | ||
399 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",INS::PosLla::latitude [deg],INS::PosLla::longitude [deg],INS::PosLla::altitude [m]"; |
400 | } | ||
401 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_POSECEF) |
402 | { | ||
403 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",INS::PosEcef::X [m],INS::PosEcef::Y [m],INS::PosEcef::Z [m]"; |
404 | } | ||
405 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELBODY) |
406 | { | ||
407 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",INS::VelBody::X [m/s],INS::VelBody::Y [m/s],INS::VelBody::Z [m/s]"; |
408 | } | ||
409 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELNED) |
410 | { | ||
411 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",INS::VelNed::N [m/s],INS::VelNed::E [m/s],INS::VelNed::D [m/s]"; |
412 | } | ||
413 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELECEF) |
414 | { | ||
415 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",INS::VelEcef::X [m/s],INS::VelEcef::Y [m/s],INS::VelEcef::Z [m/s]"; |
416 | } | ||
417 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_MAGECEF) |
418 | { | ||
419 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",INS::MagEcef::X [Gauss],INS::MagEcef::Y [Gauss],INS::MagEcef::Z [Gauss]"; |
420 | } | ||
421 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_ACCELECEF) |
422 | { | ||
423 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",INS::AccelEcef::X [m/s^2],INS::AccelEcef::Y [m/s^2],INS::AccelEcef::Z [m/s^2]"; |
424 | } | ||
425 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_LINEARACCELECEF) |
426 | { | ||
427 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",INS::LinearAccelEcef::X [m/s^2],INS::LinearAccelEcef::Y [m/s^2],INS::LinearAccelEcef::Z [m/s^2]"; |
428 | } | ||
429 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_POSU) |
430 | { | ||
431 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",INS::PosU [m]"; |
432 | } | ||
433 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELU) |
434 | { | ||
435 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",INS::VelU [m/s]"; |
436 | } | ||
437 | } | ||
438 | // Group 7 (GNSS2) | ||
439 |
2/2✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
|
2 | if (obs->gnss2Outputs) |
440 | { | ||
441 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_UTC) |
442 | { | ||
443 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::UTC::year,GNSS2::UTC::month,GNSS2::UTC::day,GNSS2::UTC::hour,GNSS2::UTC::min,GNSS2::UTC::sec,GNSS2::UTC::ms"; |
444 | } | ||
445 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TOW) |
446 | { | ||
447 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::Tow [ns]"; |
448 | } | ||
449 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_WEEK) |
450 | { | ||
451 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::Week"; |
452 | } | ||
453 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_NUMSATS) |
454 | { | ||
455 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::NumSats"; |
456 | } | ||
457 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_FIX) |
458 | { | ||
459 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::Fix"; |
460 | } | ||
461 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSLLA) |
462 | { | ||
463 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::PosLla::latitude [deg],GNSS2::PosLla::longitude [deg],GNSS2::PosLla::altitude [m]"; |
464 | } | ||
465 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSECEF) |
466 | { | ||
467 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::PosEcef::X [m],GNSS2::PosEcef::Y [m],GNSS2::PosEcef::Z [m]"; |
468 | } | ||
469 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELNED) |
470 | { | ||
471 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::VelNed::N [m/s],GNSS2::VelNed::E [m/s],GNSS2::VelNed::D [m/s]"; |
472 | } | ||
473 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELECEF) |
474 | { | ||
475 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::VelEcef::X [m/s],GNSS2::VelEcef::Y [m/s],GNSS2::VelEcef::Z [m/s]"; |
476 | } | ||
477 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSU) |
478 | { | ||
479 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::PosU::N [m],GNSS2::PosU::E [m],GNSS2::PosU::D [m]"; |
480 | } | ||
481 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELU) |
482 | { | ||
483 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::VelU [m/s]"; |
484 | } | ||
485 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEU) |
486 | { | ||
487 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::TimeU [s]"; |
488 | } | ||
489 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEINFO) |
490 | { | ||
491 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::TimeInfo::Status::timeOk,GNSS2::TimeInfo::Status::dateOk,GNSS2::TimeInfo::Status::utcTimeValid,GNSS2::TimeInfo::LeapSeconds"; |
492 | } | ||
493 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_DOP) |
494 | { | ||
495 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _filestream << ",GNSS2::DOP::g,GNSS2::DOP::p,GNSS2::DOP::t,GNSS2::DOP::v,GNSS2::DOP::h,GNSS2::DOP::n,GNSS2::DOP::e"; |
496 | } | ||
497 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_SATINFO) |
498 | { | ||
499 | ✗ | _filestream << ",GNSS2::SatInfo::NumSats,GNSS2::SatInfo::Satellites"; | |
500 | } | ||
501 |
2/4✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
|
1 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_RAWMEAS) |
502 | { | ||
503 | ✗ | _filestream << ",GNSS2::RawMeas::Tow [s],GNSS2::RawMeas::Week,GNSS2::RawMeas::NumSats,GNSS2::RawMeas::Satellites"; | |
504 | } | ||
505 | } | ||
506 | |||
507 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _filestream << std::endl; // NOLINT(performance-avoid-endl) |
508 | 2 | _headerWritten = true; | |
509 | } | ||
510 | |||
511 | 30 | constexpr int gpsCyclePrecision = 3; | |
512 | 30 | constexpr int gpsTimePrecision = 12; | |
513 | 30 | constexpr int floatPrecision = std::numeric_limits<float>::digits10 + 2; | |
514 | 30 | constexpr int doublePrecision = std::numeric_limits<double>::digits10 + 2; | |
515 | |||
516 |
1/2✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
30 | if (!obs->insTime.empty()) |
517 | { | ||
518 |
2/4✓ Branch 4 taken 30 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 30 times.
✗ Branch 8 not taken.
|
30 | _filestream << std::setprecision(15) << std::round(calcTimeIntoRun(obs->insTime) * 1e9) / 1e9; |
519 | } | ||
520 |
1/2✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
|
30 | _filestream << ","; |
521 |
1/2✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
30 | if (!obs->insTime.empty()) |
522 | { | ||
523 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 30 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 30 times.
✗ Branch 12 not taken.
|
30 | _filestream << std::fixed << std::setprecision(gpsCyclePrecision) << obs->insTime.toGPSweekTow().gpsCycle; |
524 | } | ||
525 |
1/2✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
|
30 | _filestream << ','; |
526 |
1/2✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
30 | if (!obs->insTime.empty()) |
527 | { | ||
528 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 30 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 30 times.
✗ Branch 12 not taken.
|
30 | _filestream << std::defaultfloat << std::setprecision(gpsTimePrecision) << obs->insTime.toGPSweekTow().gpsWeek; |
529 | } | ||
530 |
1/2✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
|
30 | _filestream << ','; |
531 |
1/2✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
30 | if (!obs->insTime.empty()) |
532 | { | ||
533 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 30 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 30 times.
✗ Branch 12 not taken.
|
30 | _filestream << std::defaultfloat << std::setprecision(gpsTimePrecision) << obs->insTime.toGPSweekTow().tow; |
534 | } | ||
535 | // Group 2 (Time) | ||
536 |
1/2✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
30 | if (obs->timeOutputs) |
537 | { | ||
538 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMESTARTUP) |
539 | { | ||
540 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
|
30 | _filestream << "," << obs->timeOutputs->timeStartup; |
541 | } | ||
542 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMEGPS) |
543 | { | ||
544 | ✗ | _filestream << "," << obs->timeOutputs->timeGps; | |
545 | } | ||
546 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_GPSTOW) |
547 | { | ||
548 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
|
30 | _filestream << "," << obs->timeOutputs->gpsTow; |
549 | } | ||
550 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_GPSWEEK) |
551 | { | ||
552 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
|
30 | _filestream << "," << obs->timeOutputs->gpsWeek; |
553 | } | ||
554 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMESYNCIN) |
555 | { | ||
556 | ✗ | _filestream << "," << obs->timeOutputs->timeSyncIn; | |
557 | } | ||
558 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMEGPSPPS) |
559 | { | ||
560 | ✗ | _filestream << "," << obs->timeOutputs->timePPS; | |
561 | } | ||
562 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMEUTC) |
563 | { | ||
564 |
1/2✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
|
12 | _filestream << "," << static_cast<int>(obs->timeOutputs->timeUtc.year) |
565 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->timeOutputs->timeUtc.month) |
566 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->timeOutputs->timeUtc.day) |
567 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->timeOutputs->timeUtc.hour) |
568 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->timeOutputs->timeUtc.min) |
569 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->timeOutputs->timeUtc.sec) |
570 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->timeOutputs->timeUtc.ms; |
571 | } | ||
572 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_SYNCINCNT) |
573 | { | ||
574 | ✗ | _filestream << "," << obs->timeOutputs->syncInCnt; | |
575 | } | ||
576 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_SYNCOUTCNT) |
577 | { | ||
578 | ✗ | _filestream << "," << obs->timeOutputs->syncOutCnt; | |
579 | } | ||
580 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMESTATUS) |
581 | { | ||
582 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 30 times.
✗ Branch 8 not taken.
|
30 | _filestream << "," << static_cast<unsigned int>(obs->timeOutputs->timeStatus.timeOk()) |
583 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 30 times.
✗ Branch 8 not taken.
|
30 | << "," << static_cast<unsigned int>(obs->timeOutputs->timeStatus.dateOk()) |
584 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 30 times.
✗ Branch 8 not taken.
|
30 | << "," << static_cast<unsigned int>(obs->timeOutputs->timeStatus.utcTimeValid()); |
585 | } | ||
586 | } | ||
587 | // Group 3 (IMU) | ||
588 |
2/2✓ Branch 2 taken 18 times.
✓ Branch 3 taken 12 times.
|
30 | if (obs->imuOutputs) |
589 | { | ||
590 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 18 times.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_IMUSTATUS) |
591 | { | ||
592 | ✗ | _filestream << "," << obs->imuOutputs->imuStatus; | |
593 | } | ||
594 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_UNCOMPMAG) |
595 | { | ||
596 | 18 | _filestream << std::setprecision(floatPrecision); | |
597 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | _filestream << "," << obs->imuOutputs->uncompMag(0) |
598 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->uncompMag(1) |
599 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->uncompMag(2); |
600 | } | ||
601 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_UNCOMPACCEL) |
602 | { | ||
603 | 18 | _filestream << std::setprecision(floatPrecision); | |
604 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | _filestream << "," << obs->imuOutputs->uncompAccel(0) |
605 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->uncompAccel(1) |
606 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->uncompAccel(2); |
607 | } | ||
608 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_UNCOMPGYRO) |
609 | { | ||
610 | 18 | _filestream << std::setprecision(floatPrecision); | |
611 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | _filestream << "," << obs->imuOutputs->uncompGyro(0) |
612 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->uncompGyro(1) |
613 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->uncompGyro(2); |
614 | } | ||
615 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_TEMP) |
616 | { | ||
617 |
2/4✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 18 times.
✗ Branch 9 not taken.
|
18 | _filestream << "," << std::setprecision(floatPrecision) << obs->imuOutputs->temp; |
618 | } | ||
619 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_PRES) |
620 | { | ||
621 |
2/4✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 18 times.
✗ Branch 9 not taken.
|
18 | _filestream << "," << std::setprecision(floatPrecision) << obs->imuOutputs->pres; |
622 | } | ||
623 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_DELTATHETA) |
624 | { | ||
625 | 18 | _filestream << std::setprecision(floatPrecision); | |
626 |
2/4✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
|
18 | _filestream << "," << obs->imuOutputs->deltaTime |
627 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->deltaTheta(0) |
628 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->deltaTheta(1) |
629 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->deltaTheta(2); |
630 | } | ||
631 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_DELTAVEL) |
632 | { | ||
633 | 18 | _filestream << std::setprecision(floatPrecision); | |
634 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | _filestream << "," << obs->imuOutputs->deltaV(0) |
635 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->deltaV(1) |
636 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->deltaV(2); |
637 | } | ||
638 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_MAG) |
639 | { | ||
640 | 18 | _filestream << std::setprecision(floatPrecision); | |
641 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | _filestream << "," << obs->imuOutputs->mag(0) |
642 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->mag(1) |
643 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->mag(2); |
644 | } | ||
645 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_ACCEL) |
646 | { | ||
647 | 18 | _filestream << std::setprecision(floatPrecision); | |
648 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | _filestream << "," << obs->imuOutputs->accel(0) |
649 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->accel(1) |
650 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->accel(2); |
651 | } | ||
652 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_ANGULARRATE) |
653 | { | ||
654 | 18 | _filestream << std::setprecision(floatPrecision); | |
655 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | _filestream << "," << obs->imuOutputs->angularRate(0) |
656 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->angularRate(1) |
657 |
3/6✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 18 times.
✗ Branch 10 not taken.
|
18 | << "," << obs->imuOutputs->angularRate(2); |
658 | } | ||
659 | } | ||
660 | // Group 4 (GNSS1) | ||
661 |
1/2✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
30 | if (obs->gnss1Outputs) |
662 | { | ||
663 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_UTC) |
664 | { | ||
665 |
1/2✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
|
12 | _filestream << "," << static_cast<int>(obs->gnss1Outputs->timeUtc.year) |
666 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss1Outputs->timeUtc.month) |
667 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss1Outputs->timeUtc.day) |
668 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss1Outputs->timeUtc.hour) |
669 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss1Outputs->timeUtc.min) |
670 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss1Outputs->timeUtc.sec) |
671 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss1Outputs->timeUtc.ms; |
672 | } | ||
673 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TOW) |
674 | { | ||
675 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
|
30 | _filestream << "," << obs->gnss1Outputs->tow; |
676 | } | ||
677 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_WEEK) |
678 | { | ||
679 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
|
30 | _filestream << "," << obs->gnss1Outputs->week; |
680 | } | ||
681 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_NUMSATS) |
682 | { | ||
683 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream << "," << static_cast<unsigned int>(obs->gnss1Outputs->numSats); |
684 | } | ||
685 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_FIX) |
686 | { | ||
687 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream << "," << static_cast<unsigned int>(obs->gnss1Outputs->fix); |
688 | } | ||
689 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSLLA) |
690 | { | ||
691 | 12 | _filestream << std::setprecision(doublePrecision); | |
692 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->gnss1Outputs->posLla(0) |
693 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss1Outputs->posLla(1) |
694 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss1Outputs->posLla(2); |
695 | } | ||
696 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSECEF) |
697 | { | ||
698 | 12 | _filestream << std::setprecision(doublePrecision); | |
699 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->gnss1Outputs->posEcef(0) |
700 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss1Outputs->posEcef(1) |
701 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss1Outputs->posEcef(2); |
702 | } | ||
703 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELNED) |
704 | { | ||
705 | 12 | _filestream << std::setprecision(floatPrecision); | |
706 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->gnss1Outputs->velNed(0) |
707 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss1Outputs->velNed(1) |
708 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss1Outputs->velNed(2); |
709 | } | ||
710 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELECEF) |
711 | { | ||
712 | 12 | _filestream << std::setprecision(floatPrecision); | |
713 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->gnss1Outputs->velEcef(0) |
714 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss1Outputs->velEcef(1) |
715 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss1Outputs->velEcef(2); |
716 | } | ||
717 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSU) |
718 | { | ||
719 | 12 | _filestream << std::setprecision(floatPrecision); | |
720 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->gnss1Outputs->posU(0) |
721 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss1Outputs->posU(1) |
722 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss1Outputs->posU(2); |
723 | } | ||
724 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELU) |
725 | { | ||
726 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 12 times.
✗ Branch 9 not taken.
|
12 | _filestream << "," << std::setprecision(floatPrecision) << obs->gnss1Outputs->velU; |
727 | } | ||
728 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEU) |
729 | { | ||
730 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 12 times.
✗ Branch 9 not taken.
|
12 | _filestream << "," << std::setprecision(floatPrecision) << obs->gnss1Outputs->timeU; |
731 | } | ||
732 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEINFO) |
733 | { | ||
734 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 30 times.
✗ Branch 8 not taken.
|
30 | _filestream << "," << static_cast<unsigned int>(obs->gnss1Outputs->timeInfo.status.timeOk()) |
735 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 30 times.
✗ Branch 8 not taken.
|
30 | << "," << static_cast<unsigned int>(obs->gnss1Outputs->timeInfo.status.dateOk()) |
736 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 30 times.
✗ Branch 8 not taken.
|
30 | << "," << static_cast<unsigned int>(obs->gnss1Outputs->timeInfo.status.utcTimeValid()) |
737 |
2/4✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
|
30 | << "," << static_cast<int>(obs->gnss1Outputs->timeInfo.leapSeconds); |
738 | } | ||
739 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_DOP) |
740 | { | ||
741 | 12 | _filestream << std::setprecision(floatPrecision); | |
742 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream << "," << obs->gnss1Outputs->dop.gDop |
743 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss1Outputs->dop.pDop |
744 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss1Outputs->dop.tDop |
745 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss1Outputs->dop.vDop |
746 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss1Outputs->dop.hDop |
747 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss1Outputs->dop.nDop |
748 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss1Outputs->dop.eDop; |
749 | } | ||
750 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_SATINFO) |
751 | { | ||
752 | ✗ | _filestream << "," << static_cast<unsigned int>(obs->gnss1Outputs->satInfo.numSats) | |
753 | ✗ | << ","; | |
754 | ✗ | for (auto& satellite : obs->gnss1Outputs->satInfo.satellites) | |
755 | { | ||
756 | ✗ | _filestream << "[" | |
757 | ✗ | << static_cast<int>(satellite.sys) << "|" | |
758 | ✗ | << static_cast<unsigned int>(satellite.svId) << "|" | |
759 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::Healthy) ? 1 : 0) << "|" | |
760 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::Almanac) ? 1 : 0) << "|" | |
761 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::Ephemeris) ? 1 : 0) << "|" | |
762 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::DifferentialCorrection) ? 1 : 0) << "|" | |
763 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::UsedForNavigation) ? 1 : 0) << "|" | |
764 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::AzimuthElevationValid) ? 1 : 0) << "|" | |
765 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::UsedForRTK) ? 1 : 0) << "|" | |
766 | ✗ | << static_cast<unsigned int>(satellite.cno) << "|" | |
767 | ✗ | << static_cast<unsigned int>(satellite.qi) << "|" | |
768 | ✗ | << static_cast<int>(satellite.el) << "|" | |
769 | ✗ | << satellite.az << "]"; | |
770 | } | ||
771 | } | ||
772 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_RAWMEAS) |
773 | { | ||
774 | ✗ | _filestream << std::setprecision(gpsTimePrecision); | |
775 | ✗ | _filestream << "," << obs->gnss1Outputs->raw.tow | |
776 | ✗ | << "," << obs->gnss1Outputs->raw.week | |
777 | ✗ | << "," << static_cast<unsigned int>(obs->gnss1Outputs->raw.numSats) | |
778 | ✗ | << ","; | |
779 | ✗ | for (auto& satellite : obs->gnss1Outputs->raw.satellites) | |
780 | { | ||
781 | ✗ | _filestream << "[" | |
782 | ✗ | << static_cast<int>(satellite.sys) << "|" | |
783 | ✗ | << static_cast<unsigned int>(satellite.svId) << "|" | |
784 | ✗ | << static_cast<unsigned int>(satellite.freq) << "|" | |
785 | ✗ | << static_cast<unsigned int>(satellite.chan) << "|" | |
786 | ✗ | << static_cast<int>(satellite.slot) << "|" | |
787 | ✗ | << static_cast<unsigned int>(satellite.cno) << "|" | |
788 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::Searching) ? 1 : 0) << "|" | |
789 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::Tracking) ? 1 : 0) << "|" | |
790 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::TimeValid) ? 1 : 0) << "|" | |
791 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::CodeLock) ? 1 : 0) << "|" | |
792 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::PhaseLock) ? 1 : 0) << "|" | |
793 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::PhaseHalfAmbiguity) ? 1 : 0) << "|" | |
794 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::PhaseHalfSub) ? 1 : 0) << "|" | |
795 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::PhaseSlip) ? 1 : 0) << "|" | |
796 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::PseudorangeSmoothed) ? 1 : 0) << "|" | |
797 | ✗ | << std::setprecision(doublePrecision) << satellite.pr << "|" | |
798 | ✗ | << std::setprecision(doublePrecision) << satellite.cp << "|" | |
799 | ✗ | << std::setprecision(floatPrecision) << satellite.dp << "]"; | |
800 | } | ||
801 | } | ||
802 | } | ||
803 | // Group 5 (Attitude) | ||
804 |
1/2✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
30 | if (obs->attitudeOutputs) |
805 | { | ||
806 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_VPESTATUS) |
807 | { | ||
808 | ✗ | _filestream << "," << static_cast<unsigned int>(obs->attitudeOutputs->vpeStatus.attitudeQuality()) | |
809 | ✗ | << "," << static_cast<unsigned int>(obs->attitudeOutputs->vpeStatus.gyroSaturation()) | |
810 | ✗ | << "," << static_cast<unsigned int>(obs->attitudeOutputs->vpeStatus.gyroSaturationRecovery()) | |
811 | ✗ | << "," << static_cast<unsigned int>(obs->attitudeOutputs->vpeStatus.magDisturbance()) | |
812 | ✗ | << "," << static_cast<unsigned int>(obs->attitudeOutputs->vpeStatus.magSaturation()) | |
813 | ✗ | << "," << static_cast<unsigned int>(obs->attitudeOutputs->vpeStatus.accDisturbance()) | |
814 | ✗ | << "," << static_cast<unsigned int>(obs->attitudeOutputs->vpeStatus.accSaturation()) | |
815 | ✗ | << "," << static_cast<unsigned int>(obs->attitudeOutputs->vpeStatus.knownMagDisturbance()) | |
816 | ✗ | << "," << static_cast<unsigned int>(obs->attitudeOutputs->vpeStatus.knownAccelDisturbance()); | |
817 | } | ||
818 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_YAWPITCHROLL) |
819 | { | ||
820 | 30 | _filestream << std::setprecision(floatPrecision); | |
821 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 30 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 30 times.
✗ Branch 12 not taken.
|
30 | _filestream << "," << std::setprecision(floatPrecision) << obs->attitudeOutputs->ypr(0) |
822 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 30 times.
✗ Branch 10 not taken.
|
30 | << "," << obs->attitudeOutputs->ypr(1) |
823 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 30 times.
✗ Branch 10 not taken.
|
30 | << "," << obs->attitudeOutputs->ypr(2); |
824 | } | ||
825 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_QUATERNION) |
826 | { | ||
827 | 30 | _filestream << std::setprecision(floatPrecision); | |
828 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 30 times.
✗ Branch 10 not taken.
|
30 | _filestream << "," << obs->attitudeOutputs->qtn.w() |
829 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 30 times.
✗ Branch 10 not taken.
|
30 | << "," << obs->attitudeOutputs->qtn.x() |
830 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 30 times.
✗ Branch 10 not taken.
|
30 | << "," << obs->attitudeOutputs->qtn.y() |
831 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 30 times.
✗ Branch 10 not taken.
|
30 | << "," << obs->attitudeOutputs->qtn.z(); |
832 | } | ||
833 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_DCM) |
834 | { | ||
835 | ✗ | _filestream << std::setprecision(floatPrecision); | |
836 | ✗ | _filestream << "," << obs->attitudeOutputs->dcm(0, 0) | |
837 | ✗ | << "," << obs->attitudeOutputs->dcm(0, 1) | |
838 | ✗ | << "," << obs->attitudeOutputs->dcm(0, 2) | |
839 | ✗ | << "," << obs->attitudeOutputs->dcm(1, 0) | |
840 | ✗ | << "," << obs->attitudeOutputs->dcm(1, 1) | |
841 | ✗ | << "," << obs->attitudeOutputs->dcm(1, 2) | |
842 | ✗ | << "," << obs->attitudeOutputs->dcm(2, 0) | |
843 | ✗ | << "," << obs->attitudeOutputs->dcm(2, 1) | |
844 | ✗ | << "," << obs->attitudeOutputs->dcm(2, 2); | |
845 | } | ||
846 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_MAGNED) |
847 | { | ||
848 | ✗ | _filestream << std::setprecision(floatPrecision); | |
849 | ✗ | _filestream << "," << obs->attitudeOutputs->magNed(0) | |
850 | ✗ | << "," << obs->attitudeOutputs->magNed(1) | |
851 | ✗ | << "," << obs->attitudeOutputs->magNed(2); | |
852 | } | ||
853 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_ACCELNED) |
854 | { | ||
855 | ✗ | _filestream << std::setprecision(floatPrecision); | |
856 | ✗ | _filestream << "," << obs->attitudeOutputs->accelNed(0) | |
857 | ✗ | << "," << obs->attitudeOutputs->accelNed(1) | |
858 | ✗ | << "," << obs->attitudeOutputs->accelNed(2); | |
859 | } | ||
860 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_LINEARACCELBODY) |
861 | { | ||
862 | ✗ | _filestream << std::setprecision(floatPrecision); | |
863 | ✗ | _filestream << "," << obs->attitudeOutputs->linearAccelBody(0) | |
864 | ✗ | << "," << obs->attitudeOutputs->linearAccelBody(1) | |
865 | ✗ | << "," << obs->attitudeOutputs->linearAccelBody(2); | |
866 | } | ||
867 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_LINEARACCELNED) |
868 | { | ||
869 | ✗ | _filestream << std::setprecision(floatPrecision); | |
870 | ✗ | _filestream << "," << obs->attitudeOutputs->linearAccelNed(0) | |
871 | ✗ | << "," << obs->attitudeOutputs->linearAccelNed(1) | |
872 | ✗ | << "," << obs->attitudeOutputs->linearAccelNed(2); | |
873 | } | ||
874 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_YPRU) |
875 | { | ||
876 | 30 | _filestream << std::setprecision(floatPrecision); | |
877 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 30 times.
✗ Branch 10 not taken.
|
30 | _filestream << "," << obs->attitudeOutputs->yprU(0) |
878 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 30 times.
✗ Branch 10 not taken.
|
30 | << "," << obs->attitudeOutputs->yprU(1) |
879 |
3/6✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 30 times.
✗ Branch 10 not taken.
|
30 | << "," << obs->attitudeOutputs->yprU(2); |
880 | } | ||
881 | } | ||
882 | // Group 6 (INS) | ||
883 |
2/2✓ Branch 2 taken 12 times.
✓ Branch 3 taken 18 times.
|
30 | if (obs->insOutputs) |
884 | { | ||
885 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_INSSTATUS) |
886 | { | ||
887 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
|
12 | _filestream << "," << static_cast<unsigned int>(obs->insOutputs->insStatus.mode()) |
888 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->insOutputs->insStatus.gpsFix()) |
889 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->insOutputs->insStatus.errorIMU()) |
890 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->insOutputs->insStatus.errorMagPres()) |
891 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->insOutputs->insStatus.errorGnss()) |
892 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->insOutputs->insStatus.gpsHeadingIns()) |
893 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->insOutputs->insStatus.gpsCompass()); |
894 | } | ||
895 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_POSLLA) |
896 | { | ||
897 | 12 | _filestream << std::setprecision(doublePrecision); | |
898 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->insOutputs->posLla(0) |
899 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->posLla(1) |
900 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->posLla(2); |
901 | } | ||
902 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_POSECEF) |
903 | { | ||
904 | 12 | _filestream << std::setprecision(doublePrecision); | |
905 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->insOutputs->posEcef(0) |
906 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->posEcef(1) |
907 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->posEcef(2); |
908 | } | ||
909 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELBODY) |
910 | { | ||
911 | 12 | _filestream << std::setprecision(floatPrecision); | |
912 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->insOutputs->velBody(0) |
913 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->velBody(1) |
914 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->velBody(2); |
915 | } | ||
916 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELNED) |
917 | { | ||
918 | 12 | _filestream << std::setprecision(floatPrecision); | |
919 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->insOutputs->velNed(0) |
920 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->velNed(1) |
921 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->velNed(2); |
922 | } | ||
923 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELECEF) |
924 | { | ||
925 | 12 | _filestream << std::setprecision(floatPrecision); | |
926 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->insOutputs->velEcef(0) |
927 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->velEcef(1) |
928 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->velEcef(2); |
929 | } | ||
930 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_MAGECEF) |
931 | { | ||
932 | 12 | _filestream << std::setprecision(floatPrecision); | |
933 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->insOutputs->magEcef(0) |
934 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->magEcef(1) |
935 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->magEcef(2); |
936 | } | ||
937 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_ACCELECEF) |
938 | { | ||
939 | 12 | _filestream << std::setprecision(floatPrecision); | |
940 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->insOutputs->accelEcef(0) |
941 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->accelEcef(1) |
942 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->accelEcef(2); |
943 | } | ||
944 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_LINEARACCELECEF) |
945 | { | ||
946 | 12 | _filestream << std::setprecision(floatPrecision); | |
947 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->insOutputs->linearAccelEcef(0) |
948 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->linearAccelEcef(1) |
949 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->insOutputs->linearAccelEcef(2); |
950 | } | ||
951 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_POSU) |
952 | { | ||
953 | 12 | _filestream << std::setprecision(floatPrecision); | |
954 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream << "," << obs->insOutputs->posU; |
955 | } | ||
956 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELU) |
957 | { | ||
958 | 12 | _filestream << std::setprecision(floatPrecision); | |
959 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream << "," << obs->insOutputs->velU; |
960 | } | ||
961 | } | ||
962 | // Group 7 (GNSS2) | ||
963 |
2/2✓ Branch 2 taken 12 times.
✓ Branch 3 taken 18 times.
|
30 | if (obs->gnss2Outputs) |
964 | { | ||
965 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_UTC) |
966 | { | ||
967 |
1/2✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
|
12 | _filestream << "," << static_cast<int>(obs->gnss2Outputs->timeUtc.year) |
968 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss2Outputs->timeUtc.month) |
969 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss2Outputs->timeUtc.day) |
970 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss2Outputs->timeUtc.hour) |
971 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss2Outputs->timeUtc.min) |
972 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss2Outputs->timeUtc.sec) |
973 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss2Outputs->timeUtc.ms; |
974 | } | ||
975 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TOW) |
976 | { | ||
977 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream << "," << obs->gnss2Outputs->tow; |
978 | } | ||
979 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_WEEK) |
980 | { | ||
981 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream << "," << obs->gnss2Outputs->week; |
982 | } | ||
983 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_NUMSATS) |
984 | { | ||
985 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream << "," << static_cast<unsigned int>(obs->gnss2Outputs->numSats); |
986 | } | ||
987 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_FIX) |
988 | { | ||
989 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream << "," << static_cast<unsigned int>(obs->gnss2Outputs->fix); |
990 | } | ||
991 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSLLA) |
992 | { | ||
993 | 12 | _filestream << std::setprecision(doublePrecision); | |
994 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->gnss2Outputs->posLla(0) |
995 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss2Outputs->posLla(1) |
996 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss2Outputs->posLla(2); |
997 | } | ||
998 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSECEF) |
999 | { | ||
1000 | 12 | _filestream << std::setprecision(doublePrecision); | |
1001 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->gnss2Outputs->posEcef(0) |
1002 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss2Outputs->posEcef(1) |
1003 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss2Outputs->posEcef(2); |
1004 | } | ||
1005 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELNED) |
1006 | { | ||
1007 | 12 | _filestream << std::setprecision(floatPrecision); | |
1008 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->gnss2Outputs->velNed(0) |
1009 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss2Outputs->velNed(1) |
1010 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss2Outputs->velNed(2); |
1011 | } | ||
1012 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELECEF) |
1013 | { | ||
1014 | 12 | _filestream << std::setprecision(floatPrecision); | |
1015 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->gnss2Outputs->velEcef(0) |
1016 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss2Outputs->velEcef(1) |
1017 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss2Outputs->velEcef(2); |
1018 | } | ||
1019 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSU) |
1020 | { | ||
1021 | 12 | _filestream << std::setprecision(floatPrecision); | |
1022 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | _filestream << "," << obs->gnss2Outputs->posU(0) |
1023 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss2Outputs->posU(1) |
1024 |
3/6✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
|
12 | << "," << obs->gnss2Outputs->posU(2); |
1025 | } | ||
1026 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELU) |
1027 | { | ||
1028 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 12 times.
✗ Branch 9 not taken.
|
12 | _filestream << "," << std::setprecision(floatPrecision) << obs->gnss2Outputs->velU; |
1029 | } | ||
1030 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEU) |
1031 | { | ||
1032 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 8 taken 12 times.
✗ Branch 9 not taken.
|
12 | _filestream << "," << std::setprecision(floatPrecision) << obs->gnss2Outputs->timeU; |
1033 | } | ||
1034 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEINFO) |
1035 | { | ||
1036 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
|
12 | _filestream << "," << static_cast<unsigned int>(obs->gnss2Outputs->timeInfo.status.timeOk()) |
1037 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss2Outputs->timeInfo.status.dateOk()) |
1038 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
|
12 | << "," << static_cast<unsigned int>(obs->gnss2Outputs->timeInfo.status.utcTimeValid()) |
1039 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << static_cast<int>(obs->gnss2Outputs->timeInfo.leapSeconds); |
1040 | } | ||
1041 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_DOP) |
1042 | { | ||
1043 | 12 | _filestream << std::setprecision(floatPrecision); | |
1044 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream << "," << obs->gnss2Outputs->dop.gDop |
1045 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss2Outputs->dop.pDop |
1046 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss2Outputs->dop.tDop |
1047 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss2Outputs->dop.vDop |
1048 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss2Outputs->dop.hDop |
1049 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss2Outputs->dop.nDop |
1050 |
2/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | << "," << obs->gnss2Outputs->dop.eDop; |
1051 | } | ||
1052 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_SATINFO) |
1053 | { | ||
1054 | ✗ | _filestream << "," << static_cast<unsigned int>(obs->gnss2Outputs->satInfo.numSats) | |
1055 | ✗ | << ","; | |
1056 | ✗ | for (auto& satellite : obs->gnss2Outputs->satInfo.satellites) | |
1057 | { | ||
1058 | ✗ | _filestream << "[" | |
1059 | ✗ | << static_cast<int>(satellite.sys) << "|" | |
1060 | ✗ | << static_cast<unsigned int>(satellite.svId) << "|" | |
1061 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::Healthy) ? 1 : 0) << "|" | |
1062 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::Almanac) ? 1 : 0) << "|" | |
1063 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::Ephemeris) ? 1 : 0) << "|" | |
1064 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::DifferentialCorrection) ? 1 : 0) << "|" | |
1065 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::UsedForNavigation) ? 1 : 0) << "|" | |
1066 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::AzimuthElevationValid) ? 1 : 0) << "|" | |
1067 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::SatInfo::SatInfoElement::Flags::UsedForRTK) ? 1 : 0) << "|" | |
1068 | ✗ | << static_cast<unsigned int>(satellite.cno) << "|" | |
1069 | ✗ | << static_cast<unsigned int>(satellite.qi) << "|" | |
1070 | ✗ | << static_cast<int>(satellite.el) << "|" | |
1071 | ✗ | << satellite.az << "]"; | |
1072 | } | ||
1073 | } | ||
1074 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_RAWMEAS) |
1075 | { | ||
1076 | ✗ | _filestream << std::setprecision(gpsTimePrecision); | |
1077 | ✗ | _filestream << "," << obs->gnss2Outputs->raw.tow | |
1078 | ✗ | << "," << obs->gnss2Outputs->raw.week | |
1079 | ✗ | << "," << static_cast<unsigned int>(obs->gnss2Outputs->raw.numSats) | |
1080 | ✗ | << ","; | |
1081 | ✗ | for (auto& satellite : obs->gnss2Outputs->raw.satellites) | |
1082 | { | ||
1083 | ✗ | _filestream << "[" | |
1084 | ✗ | << static_cast<int>(satellite.sys) << "|" | |
1085 | ✗ | << static_cast<unsigned int>(satellite.svId) << "|" | |
1086 | ✗ | << static_cast<unsigned int>(satellite.freq) << "|" | |
1087 | ✗ | << static_cast<unsigned int>(satellite.chan) << "|" | |
1088 | ✗ | << static_cast<int>(satellite.slot) << "|" | |
1089 | ✗ | << static_cast<unsigned int>(satellite.cno) << "|" | |
1090 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::Searching) ? 1 : 0) << "|" | |
1091 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::Tracking) ? 1 : 0) << "|" | |
1092 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::TimeValid) ? 1 : 0) << "|" | |
1093 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::CodeLock) ? 1 : 0) << "|" | |
1094 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::PhaseLock) ? 1 : 0) << "|" | |
1095 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::PhaseHalfAmbiguity) ? 1 : 0) << "|" | |
1096 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::PhaseHalfSub) ? 1 : 0) << "|" | |
1097 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::PhaseSlip) ? 1 : 0) << "|" | |
1098 | ✗ | << (static_cast<unsigned int>(satellite.flags & NAV::vendor::vectornav::RawMeas::SatRawElement::Flags::PseudorangeSmoothed) ? 1 : 0) << "|" | |
1099 | ✗ | << std::setprecision(doublePrecision) << satellite.pr << "|" | |
1100 | ✗ | << std::setprecision(doublePrecision) << satellite.cp << "|" | |
1101 | ✗ | << std::setprecision(floatPrecision) << satellite.dp << "]"; | |
1102 | } | ||
1103 | } | ||
1104 | } | ||
1105 | |||
1106 |
1/2✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
|
30 | _filestream << '\n'; |
1107 | } | ||
1108 | else // if (_fileType == FileType::BINARY) | ||
1109 | { | ||
1110 | 30 | std::array<const char, 8> zeroData{}; | |
1111 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 28 times.
|
30 | if (!_headerWritten) |
1112 | { | ||
1113 |
2/4✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
2 | _filestream.write(obs->timeOutputs ? reinterpret_cast<const char*>(&obs->timeOutputs->timeField) : zeroData.data(), sizeof(vn::protocol::uart::TimeGroup)); |
1114 |
3/4✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
3 | _filestream.write(obs->imuOutputs ? reinterpret_cast<const char*>(&obs->imuOutputs->imuField) : zeroData.data(), sizeof(vn::protocol::uart::ImuGroup)); |
1115 |
2/4✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
2 | _filestream.write(obs->gnss1Outputs ? reinterpret_cast<const char*>(&obs->gnss1Outputs->gnssField) : zeroData.data(), sizeof(vn::protocol::uart::GpsGroup)); |
1116 |
2/4✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
2 | _filestream.write(obs->attitudeOutputs ? reinterpret_cast<const char*>(&obs->attitudeOutputs->attitudeField) : zeroData.data(), sizeof(vn::protocol::uart::AttitudeGroup)); |
1117 |
3/4✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
3 | _filestream.write(obs->insOutputs ? reinterpret_cast<const char*>(&obs->insOutputs->insField) : zeroData.data(), sizeof(vn::protocol::uart::InsGroup)); |
1118 |
3/4✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
3 | _filestream.write(obs->gnss2Outputs ? reinterpret_cast<const char*>(&obs->gnss2Outputs->gnssField) : zeroData.data(), sizeof(vn::protocol::uart::GpsGroup)); |
1119 | 2 | _headerWritten = true; | |
1120 | } | ||
1121 | |||
1122 |
1/2✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
30 | if (!obs->insTime.empty()) |
1123 | { | ||
1124 |
1/2✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
|
30 | auto insTimeGPS = obs->insTime.toGPSweekTow(); |
1125 | 30 | auto tow = static_cast<double>(insTimeGPS.tow); | |
1126 |
1/2✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(&insTimeGPS.gpsCycle), sizeof(insTimeGPS.gpsCycle)); |
1127 |
1/2✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(&insTimeGPS.gpsWeek), sizeof(insTimeGPS.gpsWeek)); |
1128 |
1/2✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(&tow), sizeof(tow)); |
1129 | } | ||
1130 | else | ||
1131 | { | ||
1132 | ✗ | _filestream.write(zeroData.data(), sizeof(int32_t)); | |
1133 | ✗ | _filestream.write(zeroData.data(), sizeof(int32_t)); | |
1134 | ✗ | _filestream.write(zeroData.data(), sizeof(double)); | |
1135 | } | ||
1136 | |||
1137 | // Group 2 (Time) | ||
1138 |
1/2✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
30 | if (obs->timeOutputs) |
1139 | { | ||
1140 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMESTARTUP) |
1141 | { | ||
1142 |
1/2✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timeStartup), sizeof(obs->timeOutputs->timeStartup)); |
1143 | } | ||
1144 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMEGPS) |
1145 | { | ||
1146 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timeGps), sizeof(obs->timeOutputs->timeGps)); | |
1147 | } | ||
1148 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_GPSTOW) |
1149 | { | ||
1150 |
1/2✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->gpsTow), sizeof(obs->timeOutputs->gpsTow)); |
1151 | } | ||
1152 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_GPSWEEK) |
1153 | { | ||
1154 |
1/2✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->gpsWeek), sizeof(obs->timeOutputs->gpsWeek)); |
1155 | } | ||
1156 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMESYNCIN) |
1157 | { | ||
1158 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timeSyncIn), sizeof(obs->timeOutputs->timeSyncIn)); | |
1159 | } | ||
1160 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMEGPSPPS) |
1161 | { | ||
1162 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timePPS), sizeof(obs->timeOutputs->timePPS)); | |
1163 | } | ||
1164 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMEUTC) |
1165 | { | ||
1166 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timeUtc.year), sizeof(obs->timeOutputs->timeUtc.year)); |
1167 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timeUtc.month), sizeof(obs->timeOutputs->timeUtc.month)); |
1168 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timeUtc.day), sizeof(obs->timeOutputs->timeUtc.day)); |
1169 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timeUtc.hour), sizeof(obs->timeOutputs->timeUtc.hour)); |
1170 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timeUtc.min), sizeof(obs->timeOutputs->timeUtc.min)); |
1171 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timeUtc.sec), sizeof(obs->timeOutputs->timeUtc.sec)); |
1172 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timeUtc.ms), sizeof(obs->timeOutputs->timeUtc.ms)); |
1173 | } | ||
1174 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_SYNCINCNT) |
1175 | { | ||
1176 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->syncInCnt), sizeof(obs->timeOutputs->syncInCnt)); | |
1177 | } | ||
1178 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_SYNCOUTCNT) |
1179 | { | ||
1180 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->syncOutCnt), sizeof(obs->timeOutputs->syncOutCnt)); | |
1181 | } | ||
1182 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->timeOutputs->timeField & vn::protocol::uart::TimeGroup::TIMEGROUP_TIMESTATUS) |
1183 | { | ||
1184 |
1/2✓ Branch 4 taken 30 times.
✗ Branch 5 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(&obs->timeOutputs->timeStatus.status()), sizeof(obs->timeOutputs->timeStatus.status())); |
1185 | } | ||
1186 | } | ||
1187 | // Group 3 (IMU) | ||
1188 |
2/2✓ Branch 2 taken 18 times.
✓ Branch 3 taken 12 times.
|
30 | if (obs->imuOutputs) |
1189 | { | ||
1190 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 18 times.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_IMUSTATUS) |
1191 | { | ||
1192 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->imuOutputs->imuStatus), sizeof(obs->imuOutputs->imuStatus)); | |
1193 | } | ||
1194 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_UNCOMPMAG) |
1195 | { | ||
1196 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
|
18 | _filestream.write(reinterpret_cast<const char*>(obs->imuOutputs->uncompMag.data()), sizeof(obs->imuOutputs->uncompMag)); |
1197 | } | ||
1198 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_UNCOMPACCEL) |
1199 | { | ||
1200 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
|
18 | _filestream.write(reinterpret_cast<const char*>(obs->imuOutputs->uncompAccel.data()), sizeof(obs->imuOutputs->uncompAccel)); |
1201 | } | ||
1202 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_UNCOMPGYRO) |
1203 | { | ||
1204 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
|
18 | _filestream.write(reinterpret_cast<const char*>(obs->imuOutputs->uncompGyro.data()), sizeof(obs->imuOutputs->uncompGyro)); |
1205 | } | ||
1206 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_TEMP) |
1207 | { | ||
1208 |
1/2✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
|
18 | _filestream.write(reinterpret_cast<const char*>(&obs->imuOutputs->temp), sizeof(obs->imuOutputs->temp)); |
1209 | } | ||
1210 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_PRES) |
1211 | { | ||
1212 |
1/2✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
|
18 | _filestream.write(reinterpret_cast<const char*>(&obs->imuOutputs->pres), sizeof(obs->imuOutputs->pres)); |
1213 | } | ||
1214 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_DELTATHETA) |
1215 | { | ||
1216 |
1/2✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
|
18 | _filestream.write(reinterpret_cast<const char*>(&obs->imuOutputs->deltaTime), sizeof(obs->imuOutputs->deltaTime)); |
1217 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
|
18 | _filestream.write(reinterpret_cast<const char*>(obs->imuOutputs->deltaTheta.data()), sizeof(obs->imuOutputs->deltaTheta)); |
1218 | } | ||
1219 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_DELTAVEL) |
1220 | { | ||
1221 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
|
18 | _filestream.write(reinterpret_cast<const char*>(obs->imuOutputs->deltaV.data()), sizeof(obs->imuOutputs->deltaV)); |
1222 | } | ||
1223 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_MAG) |
1224 | { | ||
1225 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
|
18 | _filestream.write(reinterpret_cast<const char*>(obs->imuOutputs->mag.data()), sizeof(obs->imuOutputs->mag)); |
1226 | } | ||
1227 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_ACCEL) |
1228 | { | ||
1229 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
|
18 | _filestream.write(reinterpret_cast<const char*>(obs->imuOutputs->accel.data()), sizeof(obs->imuOutputs->accel)); |
1230 | } | ||
1231 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 18 times.
✗ Branch 6 not taken.
|
18 | if (obs->imuOutputs->imuField & vn::protocol::uart::ImuGroup::IMUGROUP_ANGULARRATE) |
1232 | { | ||
1233 |
2/4✓ Branch 3 taken 18 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 18 times.
✗ Branch 7 not taken.
|
18 | _filestream.write(reinterpret_cast<const char*>(obs->imuOutputs->angularRate.data()), sizeof(obs->imuOutputs->angularRate)); |
1234 | } | ||
1235 | } | ||
1236 | // Group 4 (GNSS1) | ||
1237 |
1/2✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
30 | if (obs->gnss1Outputs) |
1238 | { | ||
1239 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_UTC) |
1240 | { | ||
1241 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->timeUtc.year), sizeof(obs->gnss1Outputs->timeUtc.year)); |
1242 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->timeUtc.month), sizeof(obs->gnss1Outputs->timeUtc.month)); |
1243 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->timeUtc.day), sizeof(obs->gnss1Outputs->timeUtc.day)); |
1244 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->timeUtc.hour), sizeof(obs->gnss1Outputs->timeUtc.hour)); |
1245 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->timeUtc.min), sizeof(obs->gnss1Outputs->timeUtc.min)); |
1246 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->timeUtc.sec), sizeof(obs->gnss1Outputs->timeUtc.sec)); |
1247 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->timeUtc.ms), sizeof(obs->gnss1Outputs->timeUtc.ms)); |
1248 | } | ||
1249 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TOW) |
1250 | { | ||
1251 |
1/2✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->tow), sizeof(obs->gnss1Outputs->tow)); |
1252 | } | ||
1253 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_WEEK) |
1254 | { | ||
1255 |
1/2✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->week), sizeof(obs->gnss1Outputs->week)); |
1256 | } | ||
1257 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_NUMSATS) |
1258 | { | ||
1259 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->numSats), sizeof(obs->gnss1Outputs->numSats)); |
1260 | } | ||
1261 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_FIX) |
1262 | { | ||
1263 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->fix), sizeof(obs->gnss1Outputs->fix)); |
1264 | } | ||
1265 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSLLA) |
1266 | { | ||
1267 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->gnss1Outputs->posLla.data()), sizeof(obs->gnss1Outputs->posLla)); |
1268 | } | ||
1269 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSECEF) |
1270 | { | ||
1271 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->gnss1Outputs->posEcef.data()), sizeof(obs->gnss1Outputs->posEcef)); |
1272 | } | ||
1273 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELNED) |
1274 | { | ||
1275 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->gnss1Outputs->velNed.data()), sizeof(obs->gnss1Outputs->velNed)); |
1276 | } | ||
1277 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELECEF) |
1278 | { | ||
1279 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->gnss1Outputs->velEcef.data()), sizeof(obs->gnss1Outputs->velEcef)); |
1280 | } | ||
1281 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSU) |
1282 | { | ||
1283 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->gnss1Outputs->posU.data()), sizeof(obs->gnss1Outputs->posU)); |
1284 | } | ||
1285 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELU) |
1286 | { | ||
1287 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->velU), sizeof(obs->gnss1Outputs->velU)); |
1288 | } | ||
1289 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEU) |
1290 | { | ||
1291 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->timeU), sizeof(obs->gnss1Outputs->timeU)); |
1292 | } | ||
1293 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEINFO) |
1294 | { | ||
1295 |
1/2✓ Branch 4 taken 30 times.
✗ Branch 5 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->timeInfo.status.status()), sizeof(obs->gnss1Outputs->timeInfo.status.status())); |
1296 |
1/2✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->timeInfo.leapSeconds), sizeof(obs->gnss1Outputs->timeInfo.leapSeconds)); |
1297 | } | ||
1298 |
3/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 18 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_DOP) |
1299 | { | ||
1300 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->dop.gDop), sizeof(obs->gnss1Outputs->dop.gDop)); |
1301 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->dop.pDop), sizeof(obs->gnss1Outputs->dop.pDop)); |
1302 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->dop.tDop), sizeof(obs->gnss1Outputs->dop.tDop)); |
1303 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->dop.vDop), sizeof(obs->gnss1Outputs->dop.vDop)); |
1304 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->dop.hDop), sizeof(obs->gnss1Outputs->dop.hDop)); |
1305 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->dop.nDop), sizeof(obs->gnss1Outputs->dop.nDop)); |
1306 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->dop.eDop), sizeof(obs->gnss1Outputs->dop.eDop)); |
1307 | } | ||
1308 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_SATINFO) |
1309 | { | ||
1310 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->satInfo.numSats), sizeof(obs->gnss1Outputs->satInfo.numSats)); | |
1311 | |||
1312 | ✗ | for (auto& satellite : obs->gnss1Outputs->satInfo.satellites) | |
1313 | { | ||
1314 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.sys), sizeof(satellite.sys)); | |
1315 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.svId), sizeof(satellite.svId)); | |
1316 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.flags), sizeof(satellite.flags)); | |
1317 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.cno), sizeof(satellite.cno)); | |
1318 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.qi), sizeof(satellite.qi)); | |
1319 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.el), sizeof(satellite.el)); | |
1320 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.az), sizeof(satellite.az)); | |
1321 | } | ||
1322 | } | ||
1323 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->gnss1Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_RAWMEAS) |
1324 | { | ||
1325 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->raw.tow), sizeof(obs->gnss1Outputs->raw.tow)); | |
1326 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->raw.week), sizeof(obs->gnss1Outputs->raw.week)); | |
1327 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->gnss1Outputs->raw.numSats), sizeof(obs->gnss1Outputs->raw.numSats)); | |
1328 | |||
1329 | ✗ | for (auto& satellite : obs->gnss1Outputs->raw.satellites) | |
1330 | { | ||
1331 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.sys), sizeof(satellite.sys)); | |
1332 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.svId), sizeof(satellite.svId)); | |
1333 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.freq), sizeof(satellite.freq)); | |
1334 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.chan), sizeof(satellite.chan)); | |
1335 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.slot), sizeof(satellite.slot)); | |
1336 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.cno), sizeof(satellite.cno)); | |
1337 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.flags), sizeof(satellite.flags)); | |
1338 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.pr), sizeof(satellite.pr)); | |
1339 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.cp), sizeof(satellite.cp)); | |
1340 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.dp), sizeof(satellite.dp)); | |
1341 | } | ||
1342 | } | ||
1343 | } | ||
1344 | // Group 5 (Attitude) | ||
1345 |
1/2✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
30 | if (obs->attitudeOutputs) |
1346 | { | ||
1347 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_VPESTATUS) |
1348 | { | ||
1349 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->attitudeOutputs->vpeStatus.status()), sizeof(obs->attitudeOutputs->vpeStatus.status())); | |
1350 | } | ||
1351 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_YAWPITCHROLL) |
1352 | { | ||
1353 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(obs->attitudeOutputs->ypr.data()), sizeof(obs->attitudeOutputs->ypr)); |
1354 | } | ||
1355 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_QUATERNION) |
1356 | { | ||
1357 |
2/4✓ Branch 4 taken 30 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 30 times.
✗ Branch 8 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(obs->attitudeOutputs->qtn.coeffs().data()), sizeof(obs->attitudeOutputs->qtn)); |
1358 | } | ||
1359 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_DCM) |
1360 | { | ||
1361 | ✗ | _filestream.write(reinterpret_cast<const char*>(obs->attitudeOutputs->dcm.data()), sizeof(obs->attitudeOutputs->dcm)); | |
1362 | } | ||
1363 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_MAGNED) |
1364 | { | ||
1365 | ✗ | _filestream.write(reinterpret_cast<const char*>(obs->attitudeOutputs->magNed.data()), sizeof(obs->attitudeOutputs->magNed)); | |
1366 | } | ||
1367 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_ACCELNED) |
1368 | { | ||
1369 | ✗ | _filestream.write(reinterpret_cast<const char*>(obs->attitudeOutputs->accelNed.data()), sizeof(obs->attitudeOutputs->accelNed)); | |
1370 | } | ||
1371 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_LINEARACCELBODY) |
1372 | { | ||
1373 | ✗ | _filestream.write(reinterpret_cast<const char*>(obs->attitudeOutputs->linearAccelBody.data()), sizeof(obs->attitudeOutputs->linearAccelBody)); | |
1374 | } | ||
1375 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 30 times.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_LINEARACCELNED) |
1376 | { | ||
1377 | ✗ | _filestream.write(reinterpret_cast<const char*>(obs->attitudeOutputs->linearAccelNed.data()), sizeof(obs->attitudeOutputs->linearAccelNed)); | |
1378 | } | ||
1379 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
|
30 | if (obs->attitudeOutputs->attitudeField & vn::protocol::uart::AttitudeGroup::ATTITUDEGROUP_YPRU) |
1380 | { | ||
1381 |
2/4✓ Branch 3 taken 30 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 30 times.
✗ Branch 7 not taken.
|
30 | _filestream.write(reinterpret_cast<const char*>(obs->attitudeOutputs->yprU.data()), sizeof(obs->attitudeOutputs->yprU)); |
1382 | } | ||
1383 | } | ||
1384 | // Group 6 (INS) | ||
1385 |
2/2✓ Branch 2 taken 12 times.
✓ Branch 3 taken 18 times.
|
30 | if (obs->insOutputs) |
1386 | { | ||
1387 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_INSSTATUS) |
1388 | { | ||
1389 |
1/2✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->insOutputs->insStatus.status()), sizeof(obs->insOutputs->insStatus.status())); |
1390 | } | ||
1391 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_POSLLA) |
1392 | { | ||
1393 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->insOutputs->posLla.data()), sizeof(obs->insOutputs->posLla)); |
1394 | } | ||
1395 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_POSECEF) |
1396 | { | ||
1397 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->insOutputs->posEcef.data()), sizeof(obs->insOutputs->posEcef)); |
1398 | } | ||
1399 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELBODY) |
1400 | { | ||
1401 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->insOutputs->velBody.data()), sizeof(obs->insOutputs->velBody)); |
1402 | } | ||
1403 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELNED) |
1404 | { | ||
1405 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->insOutputs->velNed.data()), sizeof(obs->insOutputs->velNed)); |
1406 | } | ||
1407 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELECEF) |
1408 | { | ||
1409 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->insOutputs->velEcef.data()), sizeof(obs->insOutputs->velEcef)); |
1410 | } | ||
1411 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_MAGECEF) |
1412 | { | ||
1413 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->insOutputs->magEcef.data()), sizeof(obs->insOutputs->magEcef)); |
1414 | } | ||
1415 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_ACCELECEF) |
1416 | { | ||
1417 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->insOutputs->accelEcef.data()), sizeof(obs->insOutputs->accelEcef)); |
1418 | } | ||
1419 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_LINEARACCELECEF) |
1420 | { | ||
1421 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->insOutputs->linearAccelEcef.data()), sizeof(obs->insOutputs->linearAccelEcef)); |
1422 | } | ||
1423 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_POSU) |
1424 | { | ||
1425 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->insOutputs->posU), sizeof(obs->insOutputs->posU)); |
1426 | } | ||
1427 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->insOutputs->insField & vn::protocol::uart::InsGroup::INSGROUP_VELU) |
1428 | { | ||
1429 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->insOutputs->velU), sizeof(obs->insOutputs->velU)); |
1430 | } | ||
1431 | } | ||
1432 | // Group 7 (GNSS2) | ||
1433 |
2/2✓ Branch 2 taken 12 times.
✓ Branch 3 taken 18 times.
|
30 | if (obs->gnss2Outputs) |
1434 | { | ||
1435 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_UTC) |
1436 | { | ||
1437 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->timeUtc.year), sizeof(obs->gnss2Outputs->timeUtc.year)); |
1438 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->timeUtc.month), sizeof(obs->gnss2Outputs->timeUtc.month)); |
1439 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->timeUtc.day), sizeof(obs->gnss2Outputs->timeUtc.day)); |
1440 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->timeUtc.hour), sizeof(obs->gnss2Outputs->timeUtc.hour)); |
1441 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->timeUtc.min), sizeof(obs->gnss2Outputs->timeUtc.min)); |
1442 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->timeUtc.sec), sizeof(obs->gnss2Outputs->timeUtc.sec)); |
1443 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->timeUtc.ms), sizeof(obs->gnss2Outputs->timeUtc.ms)); |
1444 | } | ||
1445 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TOW) |
1446 | { | ||
1447 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->tow), sizeof(obs->gnss2Outputs->tow)); |
1448 | } | ||
1449 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_WEEK) |
1450 | { | ||
1451 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->week), sizeof(obs->gnss2Outputs->week)); |
1452 | } | ||
1453 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_NUMSATS) |
1454 | { | ||
1455 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->numSats), sizeof(obs->gnss2Outputs->numSats)); |
1456 | } | ||
1457 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_FIX) |
1458 | { | ||
1459 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->fix), sizeof(obs->gnss2Outputs->fix)); |
1460 | } | ||
1461 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSLLA) |
1462 | { | ||
1463 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->gnss2Outputs->posLla.data()), sizeof(obs->gnss2Outputs->posLla)); |
1464 | } | ||
1465 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSECEF) |
1466 | { | ||
1467 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->gnss2Outputs->posEcef.data()), sizeof(obs->gnss2Outputs->posEcef)); |
1468 | } | ||
1469 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELNED) |
1470 | { | ||
1471 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->gnss2Outputs->velNed.data()), sizeof(obs->gnss2Outputs->velNed)); |
1472 | } | ||
1473 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELECEF) |
1474 | { | ||
1475 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->gnss2Outputs->velEcef.data()), sizeof(obs->gnss2Outputs->velEcef)); |
1476 | } | ||
1477 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_POSU) |
1478 | { | ||
1479 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(obs->gnss2Outputs->posU.data()), sizeof(obs->gnss2Outputs->posU)); |
1480 | } | ||
1481 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_VELU) |
1482 | { | ||
1483 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->velU), sizeof(obs->gnss2Outputs->velU)); |
1484 | } | ||
1485 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEU) |
1486 | { | ||
1487 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->timeU), sizeof(obs->gnss2Outputs->timeU)); |
1488 | } | ||
1489 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_TIMEINFO) |
1490 | { | ||
1491 |
1/2✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->timeInfo.status.status()), sizeof(obs->gnss2Outputs->timeInfo.status.status())); |
1492 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->timeInfo.leapSeconds), sizeof(obs->gnss2Outputs->timeInfo.leapSeconds)); |
1493 | } | ||
1494 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_DOP) |
1495 | { | ||
1496 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->dop.gDop), sizeof(obs->gnss2Outputs->dop.gDop)); |
1497 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->dop.pDop), sizeof(obs->gnss2Outputs->dop.pDop)); |
1498 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->dop.tDop), sizeof(obs->gnss2Outputs->dop.tDop)); |
1499 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->dop.vDop), sizeof(obs->gnss2Outputs->dop.vDop)); |
1500 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->dop.hDop), sizeof(obs->gnss2Outputs->dop.hDop)); |
1501 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->dop.nDop), sizeof(obs->gnss2Outputs->dop.nDop)); |
1502 |
1/2✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
|
12 | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->dop.eDop), sizeof(obs->gnss2Outputs->dop.eDop)); |
1503 | } | ||
1504 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_SATINFO) |
1505 | { | ||
1506 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->satInfo.numSats), sizeof(obs->gnss2Outputs->satInfo.numSats)); | |
1507 | |||
1508 | ✗ | for (auto& satellite : obs->gnss2Outputs->satInfo.satellites) | |
1509 | { | ||
1510 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.sys), sizeof(satellite.sys)); | |
1511 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.svId), sizeof(satellite.svId)); | |
1512 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.flags), sizeof(satellite.flags)); | |
1513 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.cno), sizeof(satellite.cno)); | |
1514 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.qi), sizeof(satellite.qi)); | |
1515 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.el), sizeof(satellite.el)); | |
1516 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.az), sizeof(satellite.az)); | |
1517 | } | ||
1518 | } | ||
1519 |
2/4✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 12 times.
|
12 | if (obs->gnss2Outputs->gnssField & vn::protocol::uart::GpsGroup::GPSGROUP_RAWMEAS) |
1520 | { | ||
1521 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->raw.tow), sizeof(obs->gnss2Outputs->raw.tow)); | |
1522 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->raw.week), sizeof(obs->gnss2Outputs->raw.week)); | |
1523 | ✗ | _filestream.write(reinterpret_cast<const char*>(&obs->gnss2Outputs->raw.numSats), sizeof(obs->gnss2Outputs->raw.numSats)); | |
1524 | |||
1525 | ✗ | for (auto& satellite : obs->gnss2Outputs->raw.satellites) | |
1526 | { | ||
1527 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.sys), sizeof(satellite.sys)); | |
1528 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.svId), sizeof(satellite.svId)); | |
1529 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.freq), sizeof(satellite.freq)); | |
1530 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.chan), sizeof(satellite.chan)); | |
1531 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.slot), sizeof(satellite.slot)); | |
1532 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.cno), sizeof(satellite.cno)); | |
1533 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.flags), sizeof(satellite.flags)); | |
1534 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.pr), sizeof(satellite.pr)); | |
1535 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.cp), sizeof(satellite.cp)); | |
1536 | ✗ | _filestream.write(reinterpret_cast<const char*>(&satellite.dp), sizeof(satellite.dp)); | |
1537 | } | ||
1538 | } | ||
1539 | } | ||
1540 | } | ||
1541 | |||
1542 | LOG_DATA("{}: Message logged", nameId()); | ||
1543 | 60 | } | |
1544 |