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 "RtklibPosFile.hpp" | ||
10 | |||
11 | #include "util/Logger.hpp" | ||
12 | #include "Navigation/Transformations/CoordinateFrames.hpp" | ||
13 | #include "Navigation/Transformations/Units.hpp" | ||
14 | #include "util/Time/TimeBase.hpp" | ||
15 | #include "util/StringUtil.hpp" | ||
16 | |||
17 | #include "internal/NodeManager.hpp" | ||
18 | namespace nm = NAV::NodeManager; | ||
19 | #include "internal/FlowManager.hpp" | ||
20 | |||
21 | #include "NodeData/GNSS/RtklibPosObs.hpp" | ||
22 | |||
23 | 126 | NAV::RtklibPosFile::RtklibPosFile() | |
24 |
3/6✓ Branch 1 taken 126 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 126 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 126 times.
✗ Branch 9 not taken.
|
126 | : Node(typeStatic()) |
25 | { | ||
26 | LOG_TRACE("{}: called", name); | ||
27 | |||
28 | 126 | _hasConfig = true; | |
29 | 126 | _guiConfigDefaultWindowSize = { 380, 290 }; | |
30 | |||
31 |
4/8✓ Branch 1 taken 126 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 126 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 126 times.
✓ Branch 9 taken 126 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
378 | nm::CreateOutputPin(this, "RtklibPosObs", Pin::Type::Flow, { NAV::RtklibPosObs::type() }, &RtklibPosFile::pollData); |
32 | 252 | } | |
33 | |||
34 | 276 | NAV::RtklibPosFile::~RtklibPosFile() | |
35 | { | ||
36 | LOG_TRACE("{}: called", nameId()); | ||
37 | 276 | } | |
38 | |||
39 | 238 | std::string NAV::RtklibPosFile::typeStatic() | |
40 | { | ||
41 |
1/2✓ Branch 1 taken 238 times.
✗ Branch 2 not taken.
|
476 | return "RtklibPosFile"; |
42 | } | ||
43 | |||
44 | ✗ | std::string NAV::RtklibPosFile::type() const | |
45 | { | ||
46 | ✗ | return typeStatic(); | |
47 | } | ||
48 | |||
49 | 112 | std::string NAV::RtklibPosFile::category() | |
50 | { | ||
51 |
1/2✓ Branch 1 taken 112 times.
✗ Branch 2 not taken.
|
224 | return "Data Provider"; |
52 | } | ||
53 | |||
54 | ✗ | void NAV::RtklibPosFile::guiConfig() | |
55 | { | ||
56 | ✗ | if (auto res = FileReader::guiConfig(".pos,.*", { ".pos" }, size_t(id), nameId())) | |
57 | { | ||
58 | ✗ | LOG_DEBUG("{}: Path changed to {}", nameId(), _path); | |
59 | ✗ | flow::ApplyChanges(); | |
60 | ✗ | if (res == FileReader::PATH_CHANGED) | |
61 | { | ||
62 | ✗ | doReinitialize(); | |
63 | } | ||
64 | else | ||
65 | { | ||
66 | ✗ | doDeinitialize(); | |
67 | } | ||
68 | } | ||
69 | |||
70 | /// Header info | ||
71 | ✗ | if (ImGui::BeginTable(fmt::format("##RtklibPos ({})", id.AsPointer()).c_str(), 4, | |
72 | ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg | ImGuiTableFlags_NoHostExtendX)) | ||
73 | { | ||
74 | ✗ | ImGui::TableSetupColumn("Basic", ImGuiTableColumnFlags_WidthFixed); | |
75 | ✗ | ImGui::TableSetupColumn("LLA", ImGuiTableColumnFlags_WidthFixed); | |
76 | ✗ | ImGui::TableSetupColumn("XYZ", ImGuiTableColumnFlags_WidthFixed); | |
77 | ✗ | ImGui::TableSetupColumn("Velocity", ImGuiTableColumnFlags_WidthFixed); | |
78 | ✗ | ImGui::TableHeadersRow(); | |
79 | |||
80 | ✗ | auto TextColoredIfExists = [this](int index, const char* displayText, const char* searchText, bool alwaysNormal = false) { | |
81 | ✗ | ImGui::TableSetColumnIndex(index); | |
82 | ✗ | if (alwaysNormal || std::ranges::find_if(_headerColumns, [&searchText](const std::string& header) { return header.starts_with(searchText); }) != _headerColumns.end()) | |
83 | { | ||
84 | ✗ | ImGui::TextUnformatted(displayText); | |
85 | } | ||
86 | else | ||
87 | { | ||
88 | ✗ | ImGui::TextDisabled("%s", displayText); | |
89 | } | ||
90 | ✗ | }; | |
91 | |||
92 | ✗ | ImGui::TableNextRow(); | |
93 | ✗ | TextColoredIfExists(0, "Date", "Date"); | |
94 | ✗ | TextColoredIfExists(1, "latitude(deg)", "latitude(deg)"); | |
95 | ✗ | TextColoredIfExists(2, "x-ecef(m)", "x-ecef(m)"); | |
96 | ✗ | TextColoredIfExists(3, "vn(m/s)", "vn(m/s)"); | |
97 | ✗ | ImGui::TableNextRow(); | |
98 | ✗ | TextColoredIfExists(0, "Time", "Time"); | |
99 | ✗ | TextColoredIfExists(1, "longitude(deg)", "longitude(deg)"); | |
100 | ✗ | TextColoredIfExists(2, "y-ecef(m)", "y-ecef(m)"); | |
101 | ✗ | TextColoredIfExists(3, "ve(m/s)", "ve(m/s)"); | |
102 | ✗ | ImGui::TableNextRow(); | |
103 | ✗ | TextColoredIfExists(0, "age(s)", "age(s)"); | |
104 | ✗ | TextColoredIfExists(1, "height(m)", "height(m)"); | |
105 | ✗ | TextColoredIfExists(2, "z-ecef(m)", "z-ecef(m)"); | |
106 | ✗ | TextColoredIfExists(3, "vu(m/s)", "vu(m/s)"); | |
107 | ✗ | ImGui::TableNextRow(); | |
108 | ✗ | TextColoredIfExists(0, "ratio", "ratio"); | |
109 | ✗ | TextColoredIfExists(1, "sdn(m)", "sdn(m)"); | |
110 | ✗ | TextColoredIfExists(2, "sdx(m)", "sdx(m)"); | |
111 | ✗ | TextColoredIfExists(3, "sdvn", "sdvn"); | |
112 | ✗ | ImGui::TableNextRow(); | |
113 | ✗ | TextColoredIfExists(0, "Q", "Q"); | |
114 | ✗ | TextColoredIfExists(1, "sde(m)", "sde(m)"); | |
115 | ✗ | TextColoredIfExists(2, "sdy(m)", "sdy(m)"); | |
116 | ✗ | TextColoredIfExists(3, "sdve", "sdve"); | |
117 | ✗ | ImGui::TableNextRow(); | |
118 | ✗ | TextColoredIfExists(0, "ns", "ns"); | |
119 | ✗ | TextColoredIfExists(1, "sdu(m)", "sdu(m)"); | |
120 | ✗ | TextColoredIfExists(2, "sdz(m)", "sdz(m)"); | |
121 | ✗ | TextColoredIfExists(3, "sdvu", "sdvu"); | |
122 | ✗ | ImGui::TableNextRow(); | |
123 | ✗ | TextColoredIfExists(1, "sdne(m)", "sdne(m)"); | |
124 | ✗ | TextColoredIfExists(2, "sdxy(m)", "sdxy(m)"); | |
125 | ✗ | TextColoredIfExists(3, "sdvne", "sdvne"); | |
126 | ✗ | ImGui::TableNextRow(); | |
127 | ✗ | TextColoredIfExists(1, "sdeu(m)", "sdeu(m)"); | |
128 | ✗ | TextColoredIfExists(2, "sdyz(m)", "sdyz(m)"); | |
129 | ✗ | TextColoredIfExists(3, "sdveu", "sdveu"); | |
130 | ✗ | ImGui::TableNextRow(); | |
131 | ✗ | TextColoredIfExists(1, "sdun(m)", "sdun(m)"); | |
132 | ✗ | TextColoredIfExists(2, "sdzx(m)", "sdzx(m)"); | |
133 | ✗ | TextColoredIfExists(3, "sdvun", "sdvun"); | |
134 | |||
135 | ✗ | ImGui::EndTable(); | |
136 | } | ||
137 | ✗ | } | |
138 | |||
139 | ✗ | [[nodiscard]] json NAV::RtklibPosFile::save() const | |
140 | { | ||
141 | LOG_TRACE("{}: called", nameId()); | ||
142 | |||
143 | ✗ | json j; | |
144 | |||
145 | ✗ | j["FileReader"] = FileReader::save(); | |
146 | |||
147 | ✗ | return j; | |
148 | ✗ | } | |
149 | |||
150 | 14 | void NAV::RtklibPosFile::restore(json const& j) | |
151 | { | ||
152 | LOG_TRACE("{}: called", nameId()); | ||
153 | |||
154 |
1/2✓ Branch 1 taken 14 times.
✗ Branch 2 not taken.
|
14 | if (j.contains("FileReader")) |
155 | { | ||
156 | 14 | FileReader::restore(j.at("FileReader")); | |
157 | } | ||
158 | 14 | } | |
159 | |||
160 | 14 | bool NAV::RtklibPosFile::initialize() | |
161 | { | ||
162 | LOG_TRACE("{}: called", nameId()); | ||
163 | |||
164 | 14 | return FileReader::initialize(); | |
165 | } | ||
166 | |||
167 | 13 | void NAV::RtklibPosFile::deinitialize() | |
168 | { | ||
169 | LOG_TRACE("{}: called", nameId()); | ||
170 | |||
171 | 13 | FileReader::deinitialize(); | |
172 | 13 | } | |
173 | |||
174 | 26 | bool NAV::RtklibPosFile::resetNode() | |
175 | { | ||
176 | 26 | FileReader::resetReader(); | |
177 | |||
178 | 26 | return true; | |
179 | } | ||
180 | |||
181 | 367 | std::shared_ptr<const NAV::NodeData> NAV::RtklibPosFile::pollData() | |
182 | { | ||
183 |
1/2✓ Branch 1 taken 365 times.
✗ Branch 2 not taken.
|
367 | auto obs = std::make_shared<RtklibPosObs>(); |
184 | |||
185 | // Read line | ||
186 | 365 | std::string line; | |
187 |
1/2✓ Branch 1 taken 363 times.
✗ Branch 2 not taken.
|
361 | getline(line); |
188 | // Remove any starting non text characters | ||
189 |
2/4✓ Branch 1 taken 364 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 364 times.
✗ Branch 8 not taken.
|
712 | line.erase(line.begin(), std::ranges::find_if(line, [](int ch) { return std::isgraph(ch); })); |
190 | |||
191 |
2/2✓ Branch 1 taken 12 times.
✓ Branch 2 taken 353 times.
|
364 | if (line.empty()) |
192 | { | ||
193 | 12 | return nullptr; | |
194 | } | ||
195 | |||
196 |
1/2✓ Branch 1 taken 352 times.
✗ Branch 2 not taken.
|
353 | std::istringstream lineStream(line); |
197 | 352 | std::string cell; | |
198 | |||
199 | 350 | TimeSystem timeSystem = GPST; | |
200 | 350 | std::optional<uint16_t> year; | |
201 | 350 | std::optional<uint16_t> month; | |
202 | 350 | std::optional<uint16_t> day; | |
203 | 350 | std::optional<int32_t> hour; | |
204 | 350 | std::optional<uint16_t> minute; | |
205 | 350 | std::optional<long double> second = 0L; | |
206 | 350 | std::optional<uint16_t> gpsWeek; | |
207 | 350 | std::optional<long double> gpsToW; | |
208 |
1/2✓ Branch 1 taken 351 times.
✗ Branch 2 not taken.
|
350 | Eigen::Vector3d lla_position{ std::nan(""), std::nan(""), std::nan("") }; |
209 |
1/2✓ Branch 1 taken 353 times.
✗ Branch 2 not taken.
|
351 | Eigen::Vector3d e_position{ std::nan(""), std::nan(""), std::nan("") }; |
210 |
1/2✓ Branch 1 taken 354 times.
✗ Branch 2 not taken.
|
353 | Eigen::Vector3d n_velocity{ std::nan(""), std::nan(""), std::nan("") }; |
211 |
1/2✓ Branch 1 taken 353 times.
✗ Branch 2 not taken.
|
354 | Eigen::Vector3d e_velocity{ std::nan(""), std::nan(""), std::nan("") }; |
212 | |||
213 |
3/6✓ Branch 1 taken 351 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 352 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 346 times.
✗ Branch 8 not taken.
|
353 | Eigen::Matrix3d e_posVar = Eigen::Matrix3d::Zero() * std::nan(""); |
214 |
3/6✓ Branch 1 taken 350 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 352 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 350 times.
✗ Branch 8 not taken.
|
346 | Eigen::Matrix3d e_velVar = Eigen::Matrix3d::Zero() * std::nan(""); |
215 |
3/6✓ Branch 1 taken 350 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 353 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 352 times.
✗ Branch 8 not taken.
|
350 | Eigen::Matrix3d n_posVar = Eigen::Matrix3d::Zero() * std::nan(""); |
216 |
3/6✓ Branch 1 taken 353 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 353 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 352 times.
✗ Branch 8 not taken.
|
352 | Eigen::Matrix3d n_velVar = Eigen::Matrix3d::Zero() * std::nan(""); |
217 | |||
218 | try | ||
219 | { | ||
220 |
2/2✓ Branch 5 taken 8355 times.
✓ Branch 6 taken 346 times.
|
8681 | for (const auto& column : _headerColumns) |
221 | { | ||
222 |
4/6✓ Branch 1 taken 8303 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8322 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 8317 times.
✓ Branch 7 taken 5 times.
|
8316 | if (lineStream >> cell) |
223 | { | ||
224 | // Remove any trailing non text characters | ||
225 |
2/4✓ Branch 3 taken 8395 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 8340 times.
✗ Branch 8 not taken.
|
65525 | cell.erase(std::ranges::find_if(cell, [](int ch) { return std::iscntrl(ch); }), cell.end()); |
226 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 8355 times.
|
8340 | if (cell.empty()) |
227 | { | ||
228 | ✗ | continue; | |
229 | } | ||
230 | |||
231 | // % GPST latitude(deg) longitude(deg) ... | ||
232 | // 2120 216180.000 XX.XXXXXXXXX ... | ||
233 |
3/4✓ Branch 1 taken 8350 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 8348 times.
|
8355 | if (column == "GpsWeek") |
234 | { | ||
235 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | gpsWeek = static_cast<uint16_t>(std::stoul(cell)); |
236 | } | ||
237 |
3/4✓ Branch 1 taken 8328 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 8326 times.
|
8348 | else if (column == "GpsToW") |
238 | { | ||
239 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | gpsToW = std::stold(cell); |
240 | } | ||
241 | // % GPST latitude(deg) longitude(deg) ... | ||
242 | // 2020/08/25 12:03:00.000 XX.XXXXXXXXX ... | ||
243 | // % UTC latitude(deg) longitude(deg) ... | ||
244 | // 2020/08/25 12:02:42.000 XX.XXXXXXXXX ... | ||
245 |
2/2✓ Branch 1 taken 346 times.
✓ Branch 2 taken 7948 times.
|
8326 | else if (column.starts_with("Date")) |
246 | { | ||
247 |
2/2✓ Branch 1 taken 341 times.
✓ Branch 2 taken 6 times.
|
346 | timeSystem = column.ends_with("-GPST") ? GPST : UTC; |
248 | |||
249 |
2/4✓ Branch 1 taken 347 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 351 times.
✗ Branch 5 not taken.
|
346 | auto ymd = str::split(cell, "/"); |
250 |
1/2✓ Branch 1 taken 349 times.
✗ Branch 2 not taken.
|
349 | if (ymd.size() == 3) |
251 | { | ||
252 |
2/4✓ Branch 1 taken 343 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 344 times.
✗ Branch 5 not taken.
|
349 | year = static_cast<uint16_t>(std::stoi(ymd.at(0))); |
253 |
2/4✓ Branch 1 taken 343 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 335 times.
✗ Branch 5 not taken.
|
343 | month = static_cast<uint16_t>(std::stoi(ymd.at(1))); |
254 |
2/4✓ Branch 1 taken 347 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 346 times.
✗ Branch 5 not taken.
|
345 | day = static_cast<uint16_t>(std::stoi(ymd.at(2))); |
255 | } | ||
256 | 349 | } | |
257 |
2/2✓ Branch 1 taken 347 times.
✓ Branch 2 taken 7661 times.
|
7948 | else if (column.starts_with("Time")) |
258 | { | ||
259 |
2/4✓ Branch 1 taken 345 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 350 times.
✗ Branch 5 not taken.
|
347 | auto hms = str::split(cell, ":"); |
260 |
1/2✓ Branch 1 taken 349 times.
✗ Branch 2 not taken.
|
351 | if (hms.size() == 3) |
261 | { | ||
262 |
2/4✓ Branch 1 taken 347 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 346 times.
✗ Branch 5 not taken.
|
349 | hour = static_cast<uint16_t>(std::stoi(hms.at(0))); |
263 |
2/2✓ Branch 1 taken 2 times.
✓ Branch 2 taken 343 times.
|
342 | if (column.ends_with("-JST")) { *hour -= 9; } |
264 |
2/4✓ Branch 1 taken 343 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 347 times.
✗ Branch 5 not taken.
|
345 | minute = static_cast<uint16_t>(std::stoi(hms.at(1))); |
265 |
2/4✓ Branch 1 taken 350 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 348 times.
✗ Branch 5 not taken.
|
349 | second = std::stold(hms.at(2)); |
266 | } | ||
267 | 348 | } | |
268 |
6/10✓ Branch 1 taken 7642 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7642 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 7655 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 7655 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 7653 times.
|
7661 | else if (column == "x-ecef(m)" || column == "x-ecef") |
269 | { | ||
270 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_position.x() = std::stod(cell); |
271 | } | ||
272 |
7/10✓ Branch 1 taken 7640 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7643 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 7644 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 10 times.
✓ Branch 9 taken 7634 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 7639 times.
|
7653 | else if (column == "y-ecef(m)" || column == "y-ecef") |
273 | { | ||
274 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_position.y() = std::stod(cell); |
275 | } | ||
276 |
7/10✓ Branch 1 taken 7646 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7641 times.
✓ Branch 4 taken 5 times.
✓ Branch 6 taken 7643 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 7645 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 7646 times.
|
7639 | else if (column == "z-ecef(m)" || column == "z-ecef") |
277 | { | ||
278 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_position.z() = std::stod(cell); |
279 | } | ||
280 |
7/10✓ Branch 1 taken 7636 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7300 times.
✓ Branch 4 taken 336 times.
✓ Branch 6 taken 7312 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 7314 times.
✓ Branch 10 taken 344 times.
✓ Branch 11 taken 7304 times.
|
7646 | else if (column == "latitude(deg)" || column == "latitude") |
281 | { | ||
282 |
3/4✓ Branch 1 taken 350 times.
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 335 times.
✗ Branch 6 not taken.
|
344 | lla_position(0) = deg2rad(std::stod(cell)); |
283 | } | ||
284 |
7/10✓ Branch 1 taken 7310 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6966 times.
✓ Branch 4 taken 344 times.
✓ Branch 6 taken 6953 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 6957 times.
✓ Branch 10 taken 348 times.
✓ Branch 11 taken 6949 times.
|
7304 | else if (column == "longitude(deg)" || column == "longitude") |
285 | { | ||
286 |
2/4✓ Branch 1 taken 346 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 342 times.
✗ Branch 6 not taken.
|
348 | lla_position(1) = deg2rad(std::stod(cell)); |
287 | } | ||
288 |
7/10✓ Branch 1 taken 6967 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6626 times.
✓ Branch 4 taken 341 times.
✓ Branch 6 taken 6623 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 6623 times.
✓ Branch 10 taken 349 times.
✓ Branch 11 taken 6615 times.
|
6949 | else if (column == "height(m)" || column == "height") |
289 | { | ||
290 |
2/4✓ Branch 1 taken 343 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 344 times.
✗ Branch 5 not taken.
|
349 | lla_position(2) = std::stod(cell); |
291 | } | ||
292 |
3/4✓ Branch 1 taken 6337 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 347 times.
✓ Branch 4 taken 5990 times.
|
6615 | else if (column == "Q") |
293 | { | ||
294 |
1/2✓ Branch 1 taken 344 times.
✗ Branch 2 not taken.
|
347 | obs->Q = static_cast<uint8_t>(std::stoul(cell)); |
295 | } | ||
296 |
3/4✓ Branch 1 taken 6264 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 352 times.
✓ Branch 4 taken 5912 times.
|
5990 | else if (column == "ns") |
297 | { | ||
298 |
1/2✓ Branch 1 taken 350 times.
✗ Branch 2 not taken.
|
352 | obs->ns = static_cast<uint8_t>(std::stoul(cell)); |
299 | } | ||
300 |
7/10✓ Branch 1 taken 5922 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5915 times.
✓ Branch 4 taken 7 times.
✓ Branch 6 taken 5916 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5920 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 5921 times.
|
5912 | else if (column == "sdx(m)" || column == "sdx") |
301 | { | ||
302 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | e_posVar(0, 0) = std::pow(std::stod(cell), 2); |
303 | } | ||
304 |
6/10✓ Branch 1 taken 5918 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5918 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 5925 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5929 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 5923 times.
|
5921 | else if (column == "sdy(m)" || column == "sdy") |
305 | { | ||
306 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | e_posVar(1, 1) = std::pow(std::stod(cell), 2); |
307 | } | ||
308 |
7/10✓ Branch 1 taken 5921 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5920 times.
✓ Branch 4 taken 1 times.
✓ Branch 6 taken 5910 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5912 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 5909 times.
|
5923 | else if (column == "sdz(m)" || column == "sdz") |
309 | { | ||
310 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | e_posVar(2, 2) = std::pow(std::stod(cell), 2); |
311 | } | ||
312 |
7/10✓ Branch 1 taken 5910 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5565 times.
✓ Branch 4 taken 345 times.
✓ Branch 6 taken 5567 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5569 times.
✓ Branch 10 taken 349 times.
✓ Branch 11 taken 5563 times.
|
5909 | else if (column == "sdn(m)" || column == "sdn") |
313 | { | ||
314 |
2/4✓ Branch 1 taken 346 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 343 times.
✗ Branch 6 not taken.
|
349 | n_posVar(0, 0) = std::pow(std::stod(cell), 2); |
315 | } | ||
316 |
7/10✓ Branch 1 taken 5568 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5224 times.
✓ Branch 4 taken 344 times.
✓ Branch 6 taken 5220 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5220 times.
✓ Branch 10 taken 348 times.
✓ Branch 11 taken 5216 times.
|
5563 | else if (column == "sde(m)" || column == "sde") |
317 | { | ||
318 |
2/4✓ Branch 1 taken 342 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 345 times.
✗ Branch 6 not taken.
|
348 | n_posVar(1, 1) = std::pow(std::stod(cell), 2); |
319 | } | ||
320 |
7/10✓ Branch 1 taken 5227 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4882 times.
✓ Branch 4 taken 345 times.
✓ Branch 6 taken 4883 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 4884 times.
✓ Branch 10 taken 350 times.
✓ Branch 11 taken 4878 times.
|
5216 | else if (column == "sdu(m)" || column == "sdu") |
321 | { | ||
322 |
2/4✓ Branch 1 taken 349 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 348 times.
✗ Branch 6 not taken.
|
350 | n_posVar(2, 2) = std::pow(std::stod(cell), 2); |
323 | } | ||
324 |
8/10✓ Branch 1 taken 4874 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4871 times.
✓ Branch 4 taken 3 times.
✓ Branch 6 taken 4876 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✓ Branch 9 taken 4875 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 4877 times.
|
4878 | else if (column == "sdxy(m)" || column == "sdxy") |
325 | { | ||
326 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_posVar(0, 1) = std::stod(cell); |
327 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
|
2 | e_posVar(0, 1) = gcem::sgn(e_posVar(0, 1)) * std::pow(e_posVar(0, 1), 2); |
328 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_posVar(1, 0) = -e_posVar(0, 1); |
329 | } | ||
330 |
8/10✓ Branch 1 taken 4887 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4885 times.
✓ Branch 4 taken 2 times.
✓ Branch 6 taken 4886 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✓ Branch 9 taken 4884 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 4886 times.
|
4877 | else if (column == "sdyz(m)" || column == "sdyz") |
331 | { | ||
332 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_posVar(1, 2) = std::stod(cell); |
333 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
|
2 | e_posVar(1, 2) = gcem::sgn(e_posVar(1, 2)) * std::pow(e_posVar(1, 2), 2); |
334 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_posVar(2, 1) = -e_posVar(1, 2); |
335 | } | ||
336 |
6/10✓ Branch 1 taken 4873 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4877 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 4875 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 4879 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 4869 times.
|
4886 | else if (column == "sdzx(m)" || column == "sdzx") |
337 | { | ||
338 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_posVar(2, 0) = std::stod(cell); |
339 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
|
2 | e_posVar(2, 0) = gcem::sgn(e_posVar(2, 0)) * std::pow(e_posVar(2, 0), 2); |
340 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_posVar(0, 2) = -e_posVar(2, 0); |
341 | } | ||
342 |
7/10✓ Branch 1 taken 4878 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4538 times.
✓ Branch 4 taken 340 times.
✓ Branch 6 taken 4537 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 4538 times.
✓ Branch 10 taken 347 times.
✓ Branch 11 taken 4530 times.
|
4869 | else if (column == "sdne(m)" || column == "sdne") |
343 | { | ||
344 |
2/4✓ Branch 1 taken 344 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 346 times.
✗ Branch 5 not taken.
|
347 | n_posVar(0, 1) = std::stod(cell); |
345 |
3/6✓ Branch 1 taken 347 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 352 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 352 times.
✗ Branch 10 not taken.
|
346 | n_posVar(0, 1) = gcem::sgn(n_posVar(0, 1)) * std::pow(n_posVar(0, 1), 2); |
346 |
2/4✓ Branch 1 taken 349 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 350 times.
✗ Branch 5 not taken.
|
352 | n_posVar(1, 0) = -n_posVar(0, 1); |
347 | } | ||
348 |
7/10✓ Branch 1 taken 4538 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4188 times.
✓ Branch 4 taken 350 times.
✓ Branch 6 taken 4190 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 4190 times.
✓ Branch 10 taken 351 times.
✓ Branch 11 taken 4189 times.
|
4530 | else if (column == "sdeu(m)" || column == "sdeu") |
349 | { | ||
350 |
2/4✓ Branch 1 taken 350 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 347 times.
✗ Branch 5 not taken.
|
351 | n_posVar(1, 2) = std::stod(cell); |
351 |
3/6✓ Branch 1 taken 349 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 350 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 349 times.
✗ Branch 10 not taken.
|
347 | n_posVar(1, 2) = gcem::sgn(n_posVar(1, 2)) * std::pow(n_posVar(1, 2), 2); |
352 |
2/4✓ Branch 1 taken 349 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 348 times.
✗ Branch 5 not taken.
|
349 | n_posVar(2, 1) = -n_posVar(1, 2); |
353 | } | ||
354 |
7/10✓ Branch 1 taken 4182 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 3832 times.
✓ Branch 4 taken 350 times.
✓ Branch 6 taken 3830 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 3831 times.
✓ Branch 10 taken 351 times.
✓ Branch 11 taken 3829 times.
|
4189 | else if (column == "sdun(m)" || column == "sdun") |
355 | { | ||
356 |
2/4✓ Branch 1 taken 349 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 348 times.
✗ Branch 5 not taken.
|
351 | n_posVar(2, 0) = std::stod(cell); |
357 |
3/6✓ Branch 1 taken 345 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 350 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 352 times.
✗ Branch 10 not taken.
|
348 | n_posVar(2, 0) = gcem::sgn(n_posVar(2, 0)) * std::pow(n_posVar(2, 0), 2); |
358 |
2/4✓ Branch 1 taken 348 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 349 times.
✗ Branch 5 not taken.
|
352 | n_posVar(0, 2) = -n_posVar(2, 0); |
359 | } | ||
360 |
7/10✓ Branch 1 taken 3831 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 3485 times.
✓ Branch 4 taken 346 times.
✓ Branch 6 taken 3490 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 3490 times.
✓ Branch 10 taken 351 times.
✓ Branch 11 taken 3485 times.
|
3829 | else if (column == "age(s)" || column == "age") |
361 | { | ||
362 |
1/2✓ Branch 1 taken 348 times.
✗ Branch 2 not taken.
|
351 | obs->age = std::stod(cell); |
363 | } | ||
364 |
3/4✓ Branch 1 taken 3488 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 351 times.
✓ Branch 4 taken 3137 times.
|
3485 | else if (column == "ratio") |
365 | { | ||
366 |
1/2✓ Branch 1 taken 348 times.
✗ Branch 2 not taken.
|
351 | obs->ratio = std::stod(cell); |
367 | } | ||
368 |
7/10✓ Branch 1 taken 3147 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2801 times.
✓ Branch 4 taken 346 times.
✓ Branch 6 taken 2803 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2804 times.
✓ Branch 10 taken 348 times.
✓ Branch 11 taken 2801 times.
|
3137 | else if (column == "vn(m/s)" || column == "vn") |
369 | { | ||
370 |
2/4✓ Branch 1 taken 345 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 342 times.
✗ Branch 5 not taken.
|
348 | n_velocity(0) = std::stod(cell); |
371 | } | ||
372 |
7/10✓ Branch 1 taken 2798 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2456 times.
✓ Branch 4 taken 342 times.
✓ Branch 6 taken 2448 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2450 times.
✓ Branch 10 taken 344 times.
✓ Branch 11 taken 2446 times.
|
2801 | else if (column == "ve(m/s)" || column == "ve") |
373 | { | ||
374 |
2/4✓ Branch 1 taken 345 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 341 times.
✗ Branch 5 not taken.
|
344 | n_velocity(1) = std::stod(cell); |
375 | } | ||
376 |
7/10✓ Branch 1 taken 2445 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2099 times.
✓ Branch 4 taken 346 times.
✓ Branch 6 taken 2098 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2098 times.
✓ Branch 10 taken 346 times.
✓ Branch 11 taken 2098 times.
|
2446 | else if (column == "vu(m/s)" || column == "vu") |
377 | { | ||
378 |
2/4✓ Branch 1 taken 348 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 341 times.
✗ Branch 5 not taken.
|
346 | n_velocity(2) = -std::stod(cell); |
379 | } | ||
380 |
7/10✓ Branch 1 taken 2098 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2096 times.
✓ Branch 4 taken 2 times.
✓ Branch 6 taken 2097 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2098 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 2097 times.
|
2098 | else if (column == "vx(m/s)" || column == "vx") |
381 | { | ||
382 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_velocity(0) = std::stod(cell); |
383 | } | ||
384 |
6/10✓ Branch 1 taken 2098 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2098 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2099 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2099 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 2097 times.
|
2097 | else if (column == "vy(m/s)" || column == "vy") |
385 | { | ||
386 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_velocity(1) = std::stod(cell); |
387 | } | ||
388 |
7/10✓ Branch 1 taken 2094 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2093 times.
✓ Branch 4 taken 1 times.
✓ Branch 6 taken 2095 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2096 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 2094 times.
|
2097 | else if (column == "vz(m/s)" || column == "vz") |
389 | { | ||
390 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_velocity(2) = std::stod(cell); |
391 | } | ||
392 |
7/10✓ Branch 1 taken 2095 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2095 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2097 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 345 times.
✓ Branch 9 taken 1752 times.
✓ Branch 10 taken 345 times.
✓ Branch 11 taken 1752 times.
|
2094 | else if (column == "sdvn(m/s)" || column == "sdvn") |
393 | { | ||
394 |
2/4✓ Branch 1 taken 347 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 346 times.
✗ Branch 6 not taken.
|
345 | n_velVar(0, 0) = std::pow(std::stod(cell), 2); |
395 | } | ||
396 |
7/10✓ Branch 1 taken 1751 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1752 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1750 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 347 times.
✓ Branch 9 taken 1403 times.
✓ Branch 10 taken 347 times.
✓ Branch 11 taken 1402 times.
|
1752 | else if (column == "sdve(m/s)" || column == "sdve") |
397 | { | ||
398 |
2/4✓ Branch 1 taken 342 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 343 times.
✗ Branch 6 not taken.
|
347 | n_velVar(1, 1) = std::pow(std::stod(cell), 2); |
399 | } | ||
400 |
7/10✓ Branch 1 taken 1399 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1400 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1399 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 346 times.
✓ Branch 9 taken 1053 times.
✓ Branch 10 taken 346 times.
✓ Branch 11 taken 1052 times.
|
1402 | else if (column == "sdvu(m/s)" || column == "sdvu") |
401 | { | ||
402 |
2/4✓ Branch 1 taken 348 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 345 times.
✗ Branch 6 not taken.
|
346 | n_velVar(2, 2) = std::pow(std::stod(cell), 2); |
403 | } | ||
404 |
7/10✓ Branch 1 taken 1050 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1050 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1051 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 345 times.
✓ Branch 9 taken 706 times.
✓ Branch 10 taken 346 times.
✓ Branch 11 taken 705 times.
|
1052 | else if (column == "sdvne(m/s)" || column == "sdvne") |
405 | { | ||
406 |
2/4✓ Branch 1 taken 347 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 343 times.
✗ Branch 5 not taken.
|
346 | n_velVar(0, 1) = std::stod(cell); |
407 |
3/6✓ Branch 1 taken 346 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 347 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 347 times.
✗ Branch 10 not taken.
|
343 | n_velVar(0, 1) = gcem::sgn(n_velVar(0, 1)) * std::pow(n_velVar(0, 1), 2); |
408 |
2/4✓ Branch 1 taken 347 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 346 times.
✗ Branch 5 not taken.
|
347 | n_velVar(1, 0) = -n_velVar(0, 1); |
409 | } | ||
410 |
7/10✓ Branch 1 taken 705 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 705 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 705 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 345 times.
✓ Branch 9 taken 360 times.
✓ Branch 10 taken 347 times.
✓ Branch 11 taken 358 times.
|
705 | else if (column == "sdveu(m/s)" || column == "sdveu") |
411 | { | ||
412 |
2/4✓ Branch 1 taken 349 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 345 times.
✗ Branch 5 not taken.
|
347 | n_velVar(1, 2) = std::stod(cell); |
413 |
3/6✓ Branch 1 taken 347 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 348 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 344 times.
✗ Branch 10 not taken.
|
345 | n_velVar(1, 2) = gcem::sgn(n_velVar(1, 2)) * std::pow(n_velVar(1, 2), 2); |
414 |
2/4✓ Branch 1 taken 347 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 347 times.
✗ Branch 5 not taken.
|
344 | n_velVar(2, 1) = -n_velVar(1, 2); |
415 | } | ||
416 |
7/10✓ Branch 1 taken 360 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 361 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 361 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 349 times.
✓ Branch 9 taken 12 times.
✓ Branch 10 taken 349 times.
✓ Branch 11 taken 11 times.
|
358 | else if (column == "sdvun(m/s)" || column == "sdvun") |
417 | { | ||
418 |
2/4✓ Branch 1 taken 349 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 345 times.
✗ Branch 5 not taken.
|
349 | n_velVar(2, 0) = std::stod(cell); |
419 |
3/6✓ Branch 1 taken 345 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 344 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 348 times.
✗ Branch 10 not taken.
|
345 | n_velVar(2, 0) = gcem::sgn(n_velVar(2, 0)) * std::pow(n_velVar(2, 0), 2); |
420 |
2/4✓ Branch 1 taken 349 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 350 times.
✗ Branch 5 not taken.
|
348 | n_velVar(0, 2) = -n_velVar(2, 0); |
421 | } | ||
422 |
7/10✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 12 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✓ Branch 9 taken 10 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 10 times.
|
11 | else if (column == "sdvx(m/s)" || column == "sdvx") |
423 | { | ||
424 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | e_velVar(0, 0) = std::pow(std::stod(cell), 2); |
425 | } | ||
426 |
7/10✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 10 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✓ Branch 9 taken 8 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 8 times.
|
10 | else if (column == "sdvy(m/s)" || column == "sdvy") |
427 | { | ||
428 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | e_velVar(1, 1) = std::pow(std::stod(cell), 2); |
429 | } | ||
430 |
7/10✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 8 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✓ Branch 9 taken 6 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 6 times.
|
8 | else if (column == "sdvz(m/s)" || column == "sdvz") |
431 | { | ||
432 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
2 | e_velVar(2, 2) = std::pow(std::stod(cell), 2); |
433 | } | ||
434 |
7/10✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 6 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✓ Branch 9 taken 4 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 4 times.
|
6 | else if (column == "sdvxy(m/s)" || column == "sdvxy") |
435 | { | ||
436 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_velVar(0, 1) = std::stod(cell); |
437 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
|
2 | e_velVar(0, 1) = gcem::sgn(e_velVar(0, 1)) * std::pow(e_velVar(0, 1), 2); |
438 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_velVar(1, 0) = -e_velVar(0, 1); |
439 | } | ||
440 |
7/10✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 4 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✓ Branch 9 taken 2 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 2 times.
|
4 | else if (column == "sdvyz(m/s)" || column == "sdvyz") |
441 | { | ||
442 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_velVar(1, 2) = std::stod(cell); |
443 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
|
2 | e_velVar(1, 2) = gcem::sgn(e_velVar(1, 2)) * std::pow(e_velVar(1, 2), 2); |
444 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_velVar(2, 1) = -e_velVar(1, 2); |
445 | } | ||
446 |
5/10✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
|
2 | else if (column == "sdvzx(m/s)" || column == "sdvzx") |
447 | { | ||
448 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_velVar(2, 0) = std::stod(cell); |
449 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
|
2 | e_velVar(2, 0) = gcem::sgn(e_velVar(2, 0)) * std::pow(e_velVar(2, 0), 2); |
450 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | e_velVar(0, 2) = -e_velVar(2, 0); |
451 | } | ||
452 | } | ||
453 | } | ||
454 | } | ||
455 | 1 | catch (...) | |
456 | { | ||
457 | 1 | return nullptr; | |
458 | 1 | } | |
459 | |||
460 |
5/6✓ Branch 1 taken 2 times.
✓ Branch 2 taken 351 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 351 times.
|
346 | if (gpsWeek.has_value() && gpsToW.has_value()) |
461 | { | ||
462 |
3/6✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
|
2 | obs->insTime = InsTime(0, gpsWeek.value(), gpsToW.value()); |
463 | } | ||
464 |
2/4✓ Branch 2 taken 347 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 348 times.
✗ Branch 6 not taken.
|
697 | else if (year.has_value() && month.has_value() && day.has_value() |
465 |
6/10✓ Branch 0 taken 346 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 346 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 343 times.
✓ Branch 7 taken 2 times.
✓ Branch 9 taken 344 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 344 times.
✗ Branch 12 not taken.
|
693 | && hour.has_value() && minute.has_value() && second.has_value()) |
466 | { | ||
467 |
3/6✓ Branch 1 taken 340 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 342 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 348 times.
✗ Branch 8 not taken.
|
338 | obs->insTime = InsTime(year.value(), month.value(), day.value(), |
468 |
4/8✓ Branch 1 taken 336 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 340 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 341 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 338 times.
✗ Branch 11 not taken.
|
344 | hour.value(), minute.value(), second.value(), |
469 | timeSystem); | ||
470 | } | ||
471 | |||
472 |
8/12✓ Branch 1 taken 346 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 344 times.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 344 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
|
343 | if (!e_position.hasNaN() && !e_posVar.hasNaN()) { obs->setPositionAndStdDev_e(e_position, e_posVar); } |
473 |
7/12✓ Branch 1 taken 350 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 350 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 346 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 346 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 343 times.
✓ Branch 11 taken 3 times.
✓ Branch 14 taken 351 times.
✗ Branch 15 not taken.
|
344 | else if (!lla_position.hasNaN() && !n_posVar.hasNaN()) { obs->setPositionAndStdDev_lla(lla_position, n_posVar); } |
474 |
0/6✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
|
3 | else if (!e_position.hasNaN()) { obs->setPosition_e(e_position); } |
475 | ✗ | else if (!lla_position.hasNaN()) { obs->setPosition_lla(lla_position); } | |
476 | |||
477 |
8/12✓ Branch 1 taken 343 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 341 times.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 341 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
|
353 | if (!e_velocity.hasNaN() && !e_velVar.hasNaN()) { obs->setVelocityAndStdDev_e(e_velocity, e_velVar); } |
478 |
8/12✓ Branch 1 taken 348 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 344 times.
✓ Branch 4 taken 4 times.
✓ Branch 6 taken 345 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 345 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 345 times.
✓ Branch 11 taken 4 times.
✓ Branch 14 taken 348 times.
✗ Branch 15 not taken.
|
343 | if (!n_velocity.hasNaN() && !n_velVar.hasNaN()) { obs->setVelocityAndStdDev_n(n_velocity, n_velVar); } |
479 |
4/6✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
4 | else if (!e_velocity.hasNaN()) { obs->setVelocity_e(e_velocity); } |
480 |
2/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
|
2 | else if (!n_velocity.hasNaN()) { obs->setVelocity_n(n_velocity); } |
481 | |||
482 |
7/10✓ Branch 1 taken 339 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 337 times.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 337 times.
|
352 | if (!e_velVar.hasNaN() && !e_posVar.hasNaN()) |
483 | { | ||
484 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | Eigen::MatrixXd cov = Eigen::MatrixXd::Zero(6, 6); |
485 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | cov.block<3, 3>(0, 0) = e_posVar; |
486 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | cov.block<3, 3>(3, 3) = e_velVar; |
487 |
1/2✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
2 | obs->setPosVelCovarianceMatrix_e(cov); |
488 | 2 | } | |
489 |
7/10✓ Branch 1 taken 344 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 342 times.
✓ Branch 4 taken 2 times.
✓ Branch 6 taken 347 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 347 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 347 times.
✓ Branch 11 taken 2 times.
|
337 | else if (!n_velVar.hasNaN() && !n_posVar.hasNaN()) |
490 | { | ||
491 |
2/4✓ Branch 1 taken 341 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 335 times.
✗ Branch 5 not taken.
|
347 | Eigen::MatrixXd cov = Eigen::MatrixXd::Zero(6, 6); |
492 |
2/4✓ Branch 1 taken 336 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 333 times.
✗ Branch 5 not taken.
|
335 | cov.block<3, 3>(0, 0) = n_posVar; |
493 |
2/4✓ Branch 1 taken 342 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 344 times.
✗ Branch 5 not taken.
|
333 | cov.block<3, 3>(3, 3) = n_velVar; |
494 |
1/2✓ Branch 2 taken 349 times.
✗ Branch 3 not taken.
|
344 | obs->setPosVelCovarianceMatrix_n(cov); |
495 | 349 | } | |
496 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
|
2 | else if (!e_posVar.hasNaN()) |
497 | { | ||
498 | ✗ | obs->setPosCovarianceMatrix_e(e_posVar); | |
499 | } | ||
500 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
2 | else if (!n_posVar.hasNaN()) |
501 | { | ||
502 |
1/2✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
2 | obs->setPosCovarianceMatrix_n(n_posVar); |
503 | } | ||
504 | |||
505 |
1/2✓ Branch 2 taken 353 times.
✗ Branch 3 not taken.
|
350 | invokeCallbacks(OUTPUT_PORT_INDEX_RTKLIB_POS_OBS, obs); |
506 | 351 | return obs; | |
507 | 361 | } | |
508 | |||
509 | 14 | NAV::FileReader::FileType NAV::RtklibPosFile::determineFileType() | |
510 | { | ||
511 |
1/2✓ Branch 1 taken 14 times.
✗ Branch 2 not taken.
|
14 | std::filesystem::path filepath = getFilepath(); |
512 | |||
513 |
1/2✓ Branch 1 taken 14 times.
✗ Branch 2 not taken.
|
14 | auto filestreamHeader = std::ifstream(filepath); |
514 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 14 times.
|
14 | if (!filestreamHeader.good()) |
515 | { | ||
516 | ✗ | return FileReader::FileType::NONE; | |
517 | } | ||
518 | |||
519 | 14 | std::string line; | |
520 | do | ||
521 | { | ||
522 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 2 taken 185 times.
|
186 | if (filestreamHeader.eof()) |
523 | { | ||
524 | 1 | return FileReader::FileType::NONE; | |
525 | } | ||
526 | |||
527 |
1/2✓ Branch 1 taken 185 times.
✗ Branch 2 not taken.
|
185 | std::getline(filestreamHeader, line); |
528 | // Remove any starting non text characters | ||
529 |
2/4✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 185 times.
✗ Branch 8 not taken.
|
369 | line.erase(line.begin(), std::ranges::find_if(line, [](int ch) { return std::isgraph(ch); })); |
530 |
5/6✓ Branch 1 taken 184 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 172 times.
✓ Branch 5 taken 13 times.
✓ Branch 6 taken 172 times.
✓ Branch 7 taken 13 times.
|
185 | } while (!line.empty() && line.find("% ") == std::string::npos); |
531 | |||
532 | 13 | return FileReader::FileType::ASCII; | |
533 | 14 | } | |
534 | |||
535 | 13 | void NAV::RtklibPosFile::readHeader() | |
536 | { | ||
537 | // Read header line | ||
538 | 13 | std::string line; | |
539 | do | ||
540 | { | ||
541 |
1/2✓ Branch 1 taken 183 times.
✗ Branch 2 not taken.
|
183 | getline(line); |
542 | // Remove any starting non text characters | ||
543 |
2/4✓ Branch 1 taken 183 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 182 times.
✗ Branch 8 not taken.
|
365 | line.erase(line.begin(), std::ranges::find_if(line, [](int ch) { return std::isgraph(ch); })); |
544 |
5/6✓ Branch 1 taken 183 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 170 times.
✓ Branch 5 taken 13 times.
✓ Branch 6 taken 170 times.
✓ Branch 7 taken 13 times.
|
182 | } while (!line.empty() && line.find("% ") == std::string::npos); |
545 | |||
546 | // Convert line into stream | ||
547 |
1/2✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
|
13 | std::istringstream lineStream(line); |
548 | |||
549 |
4/6✓ Branch 2 taken 316 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 316 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 303 times.
✓ Branch 8 taken 13 times.
|
329 | for (std::string cell; lineStream >> cell;) // split at 'space' |
550 | { | ||
551 |
3/4✓ Branch 1 taken 302 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 13 times.
✓ Branch 4 taken 289 times.
|
303 | if (cell != "%") |
552 | { | ||
553 |
3/4✓ Branch 1 taken 290 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 280 times.
|
289 | if (cell == "GPST") // When RTKLIB selected 'ww ssss GPST' or 'hh:mm:ss GPST' |
554 | { | ||
555 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | auto pos = tellg(); |
556 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | getline(line); |
557 |
1/2✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
|
10 | seekg(pos, std::ios::beg); |
558 | |||
559 |
3/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 9 times.
|
10 | if (line.substr(0, 7).find('/') == std::string::npos) |
560 | { | ||
561 | // % GPST latitude(deg) longitude(deg) ... | ||
562 | // 2120 216180.000 XX.XXXXXXXXX ... | ||
563 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _headerColumns.emplace_back("GpsWeek"); |
564 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _headerColumns.emplace_back("GpsToW"); |
565 | } | ||
566 | else | ||
567 | { | ||
568 | // % GPST latitude(deg) longitude(deg) ... | ||
569 | // 2020/08/25 12:03:00.000 XX.XXXXXXXXX ... | ||
570 |
1/2✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
|
9 | _headerColumns.emplace_back("Date-GPST"); |
571 |
1/2✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
|
9 | _headerColumns.emplace_back("Time-GPST"); |
572 | } | ||
573 | } | ||
574 |
3/4✓ Branch 1 taken 279 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 277 times.
|
280 | else if (cell == "UTC") // When RTKLIB selected 'hh:mm:ss UTC' |
575 | { | ||
576 | // % UTC latitude(deg) longitude(deg) ... | ||
577 | // 2020/08/25 12:02:42.000 XX.XXXXXXXXX ... | ||
578 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _headerColumns.emplace_back("Date-UTC"); |
579 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _headerColumns.emplace_back("Time-UTC"); |
580 | } | ||
581 |
3/4✓ Branch 1 taken 278 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 277 times.
|
277 | else if (cell == "JST") // When RTKLIB selected 'hh:mm:ss JST' |
582 | { | ||
583 | // % JST latitude(deg) longitude(deg) ... | ||
584 | // 2020/08/25 21:02:42.000 XX.XXXXXXXXX ... | ||
585 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _headerColumns.emplace_back("Date-JST"); |
586 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _headerColumns.emplace_back("Time-JST"); |
587 | } | ||
588 | else | ||
589 | { | ||
590 |
1/2✓ Branch 1 taken 277 times.
✗ Branch 2 not taken.
|
277 | _headerColumns.push_back(cell); |
591 | } | ||
592 | } | ||
593 | 13 | } | |
594 | 13 | } | |
595 |