| 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/FlowManager.hpp" | ||
| 18 | |||
| 19 | #include "NodeData/GNSS/RtklibPosObs.hpp" | ||
| 20 | |||
| 21 | 129 | NAV::RtklibPosFile::RtklibPosFile() | |
| 22 |
3/6✓ Branch 1 taken 129 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 129 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 129 times.
✗ Branch 9 not taken.
|
129 | : Node(typeStatic()) |
| 23 | { | ||
| 24 | LOG_TRACE("{}: called", name); | ||
| 25 | |||
| 26 | 129 | _hasConfig = true; | |
| 27 | 129 | _guiConfigDefaultWindowSize = { 380, 290 }; | |
| 28 | |||
| 29 |
4/8✓ Branch 1 taken 129 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 129 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 129 times.
✓ Branch 9 taken 129 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
387 | CreateOutputPin("RtklibPosObs", Pin::Type::Flow, { NAV::RtklibPosObs::type() }, &RtklibPosFile::pollData); |
| 30 | 258 | } | |
| 31 | |||
| 32 | 284 | NAV::RtklibPosFile::~RtklibPosFile() | |
| 33 | { | ||
| 34 | LOG_TRACE("{}: called", nameId()); | ||
| 35 | 284 | } | |
| 36 | |||
| 37 | 243 | std::string NAV::RtklibPosFile::typeStatic() | |
| 38 | { | ||
| 39 |
1/2✓ Branch 1 taken 243 times.
✗ Branch 2 not taken.
|
486 | return "RtklibPosFile"; |
| 40 | } | ||
| 41 | |||
| 42 | ✗ | std::string NAV::RtklibPosFile::type() const | |
| 43 | { | ||
| 44 | ✗ | return typeStatic(); | |
| 45 | } | ||
| 46 | |||
| 47 | 114 | std::string NAV::RtklibPosFile::category() | |
| 48 | { | ||
| 49 |
1/2✓ Branch 1 taken 114 times.
✗ Branch 2 not taken.
|
228 | return "Data Provider"; |
| 50 | } | ||
| 51 | |||
| 52 | ✗ | void NAV::RtklibPosFile::guiConfig() | |
| 53 | { | ||
| 54 | ✗ | if (auto res = FileReader::guiConfig(".pos,.*", { ".pos" }, size_t(id), nameId())) | |
| 55 | { | ||
| 56 | ✗ | LOG_DEBUG("{}: Path changed to {}", nameId(), _path); | |
| 57 | ✗ | flow::ApplyChanges(); | |
| 58 | ✗ | if (res == FileReader::PATH_CHANGED) | |
| 59 | { | ||
| 60 | ✗ | doReinitialize(); | |
| 61 | } | ||
| 62 | else | ||
| 63 | { | ||
| 64 | ✗ | doDeinitialize(); | |
| 65 | } | ||
| 66 | } | ||
| 67 | |||
| 68 | /// Header info | ||
| 69 | ✗ | if (ImGui::BeginTable(fmt::format("##RtklibPos ({})", id.AsPointer()).c_str(), 4, | |
| 70 | ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg | ImGuiTableFlags_NoHostExtendX)) | ||
| 71 | { | ||
| 72 | ✗ | ImGui::TableSetupColumn("Basic", ImGuiTableColumnFlags_WidthFixed); | |
| 73 | ✗ | ImGui::TableSetupColumn("LLA", ImGuiTableColumnFlags_WidthFixed); | |
| 74 | ✗ | ImGui::TableSetupColumn("XYZ", ImGuiTableColumnFlags_WidthFixed); | |
| 75 | ✗ | ImGui::TableSetupColumn("Velocity", ImGuiTableColumnFlags_WidthFixed); | |
| 76 | ✗ | ImGui::TableHeadersRow(); | |
| 77 | |||
| 78 | ✗ | auto TextColoredIfExists = [this](int index, const char* displayText, const char* searchText, bool alwaysNormal = false) { | |
| 79 | ✗ | ImGui::TableSetColumnIndex(index); | |
| 80 | ✗ | if (alwaysNormal || std::ranges::find_if(_headerColumns, [&searchText](const std::string& header) { return header.starts_with(searchText); }) != _headerColumns.end()) | |
| 81 | { | ||
| 82 | ✗ | ImGui::TextUnformatted(displayText); | |
| 83 | } | ||
| 84 | else | ||
| 85 | { | ||
| 86 | ✗ | ImGui::TextDisabled("%s", displayText); | |
| 87 | } | ||
| 88 | ✗ | }; | |
| 89 | |||
| 90 | ✗ | ImGui::TableNextRow(); | |
| 91 | ✗ | TextColoredIfExists(0, "Date", "Date"); | |
| 92 | ✗ | TextColoredIfExists(1, "latitude(deg)", "latitude(deg)"); | |
| 93 | ✗ | TextColoredIfExists(2, "x-ecef(m)", "x-ecef(m)"); | |
| 94 | ✗ | TextColoredIfExists(3, "vn(m/s)", "vn(m/s)"); | |
| 95 | ✗ | ImGui::TableNextRow(); | |
| 96 | ✗ | TextColoredIfExists(0, "Time", "Time"); | |
| 97 | ✗ | TextColoredIfExists(1, "longitude(deg)", "longitude(deg)"); | |
| 98 | ✗ | TextColoredIfExists(2, "y-ecef(m)", "y-ecef(m)"); | |
| 99 | ✗ | TextColoredIfExists(3, "ve(m/s)", "ve(m/s)"); | |
| 100 | ✗ | ImGui::TableNextRow(); | |
| 101 | ✗ | TextColoredIfExists(0, "age(s)", "age(s)"); | |
| 102 | ✗ | TextColoredIfExists(1, "height(m)", "height(m)"); | |
| 103 | ✗ | TextColoredIfExists(2, "z-ecef(m)", "z-ecef(m)"); | |
| 104 | ✗ | TextColoredIfExists(3, "vu(m/s)", "vu(m/s)"); | |
| 105 | ✗ | ImGui::TableNextRow(); | |
| 106 | ✗ | TextColoredIfExists(0, "ratio", "ratio"); | |
| 107 | ✗ | TextColoredIfExists(1, "sdn(m)", "sdn(m)"); | |
| 108 | ✗ | TextColoredIfExists(2, "sdx(m)", "sdx(m)"); | |
| 109 | ✗ | TextColoredIfExists(3, "sdvn", "sdvn"); | |
| 110 | ✗ | ImGui::TableNextRow(); | |
| 111 | ✗ | TextColoredIfExists(0, "Q", "Q"); | |
| 112 | ✗ | TextColoredIfExists(1, "sde(m)", "sde(m)"); | |
| 113 | ✗ | TextColoredIfExists(2, "sdy(m)", "sdy(m)"); | |
| 114 | ✗ | TextColoredIfExists(3, "sdve", "sdve"); | |
| 115 | ✗ | ImGui::TableNextRow(); | |
| 116 | ✗ | TextColoredIfExists(0, "ns", "ns"); | |
| 117 | ✗ | TextColoredIfExists(1, "sdu(m)", "sdu(m)"); | |
| 118 | ✗ | TextColoredIfExists(2, "sdz(m)", "sdz(m)"); | |
| 119 | ✗ | TextColoredIfExists(3, "sdvu", "sdvu"); | |
| 120 | ✗ | ImGui::TableNextRow(); | |
| 121 | ✗ | TextColoredIfExists(1, "sdne(m)", "sdne(m)"); | |
| 122 | ✗ | TextColoredIfExists(2, "sdxy(m)", "sdxy(m)"); | |
| 123 | ✗ | TextColoredIfExists(3, "sdvne", "sdvne"); | |
| 124 | ✗ | ImGui::TableNextRow(); | |
| 125 | ✗ | TextColoredIfExists(1, "sdeu(m)", "sdeu(m)"); | |
| 126 | ✗ | TextColoredIfExists(2, "sdyz(m)", "sdyz(m)"); | |
| 127 | ✗ | TextColoredIfExists(3, "sdveu", "sdveu"); | |
| 128 | ✗ | ImGui::TableNextRow(); | |
| 129 | ✗ | TextColoredIfExists(1, "sdun(m)", "sdun(m)"); | |
| 130 | ✗ | TextColoredIfExists(2, "sdzx(m)", "sdzx(m)"); | |
| 131 | ✗ | TextColoredIfExists(3, "sdvun", "sdvun"); | |
| 132 | |||
| 133 | ✗ | ImGui::EndTable(); | |
| 134 | } | ||
| 135 | ✗ | } | |
| 136 | |||
| 137 | ✗ | [[nodiscard]] json NAV::RtklibPosFile::save() const | |
| 138 | { | ||
| 139 | LOG_TRACE("{}: called", nameId()); | ||
| 140 | |||
| 141 | ✗ | json j; | |
| 142 | |||
| 143 | ✗ | j["FileReader"] = FileReader::save(); | |
| 144 | |||
| 145 | ✗ | return j; | |
| 146 | ✗ | } | |
| 147 | |||
| 148 | 15 | void NAV::RtklibPosFile::restore(json const& j) | |
| 149 | { | ||
| 150 | LOG_TRACE("{}: called", nameId()); | ||
| 151 | |||
| 152 |
1/2✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
|
15 | if (j.contains("FileReader")) |
| 153 | { | ||
| 154 | 15 | FileReader::restore(j.at("FileReader")); | |
| 155 | } | ||
| 156 | 15 | } | |
| 157 | |||
| 158 | 15 | bool NAV::RtklibPosFile::initialize() | |
| 159 | { | ||
| 160 | LOG_TRACE("{}: called", nameId()); | ||
| 161 | |||
| 162 | 15 | return FileReader::initialize(); | |
| 163 | } | ||
| 164 | |||
| 165 | 14 | void NAV::RtklibPosFile::deinitialize() | |
| 166 | { | ||
| 167 | LOG_TRACE("{}: called", nameId()); | ||
| 168 | |||
| 169 | 14 | FileReader::deinitialize(); | |
| 170 | 14 | } | |
| 171 | |||
| 172 | 28 | bool NAV::RtklibPosFile::resetNode() | |
| 173 | { | ||
| 174 | 28 | FileReader::resetReader(); | |
| 175 | |||
| 176 | 28 | return true; | |
| 177 | } | ||
| 178 | |||
| 179 | 966 | std::shared_ptr<const NAV::NodeData> NAV::RtklibPosFile::pollData() | |
| 180 | { | ||
| 181 |
1/2✓ Branch 1 taken 957 times.
✗ Branch 2 not taken.
|
966 | auto obs = std::make_shared<RtklibPosObs>(); |
| 182 | |||
| 183 | // Read line | ||
| 184 | 957 | std::string line; | |
| 185 |
1/2✓ Branch 1 taken 964 times.
✗ Branch 2 not taken.
|
960 | getline(line); |
| 186 | // Remove any starting non text characters | ||
| 187 |
2/4✓ Branch 1 taken 958 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 962 times.
✗ Branch 8 not taken.
|
1909 | line.erase(line.begin(), std::ranges::find_if(line, [](int ch) { return std::isgraph(ch); })); |
| 188 | |||
| 189 |
2/2✓ Branch 1 taken 13 times.
✓ Branch 2 taken 949 times.
|
962 | if (line.empty()) |
| 190 | { | ||
| 191 | 13 | return nullptr; | |
| 192 | } | ||
| 193 | |||
| 194 |
1/2✓ Branch 1 taken 951 times.
✗ Branch 2 not taken.
|
949 | std::istringstream lineStream(line); |
| 195 | 951 | std::string cell; | |
| 196 | |||
| 197 | 947 | TimeSystem timeSystem = GPST; | |
| 198 | 947 | std::optional<uint16_t> year; | |
| 199 | 947 | std::optional<uint16_t> month; | |
| 200 | 947 | std::optional<uint16_t> day; | |
| 201 | 947 | std::optional<int32_t> hour; | |
| 202 | 947 | std::optional<uint16_t> minute; | |
| 203 | 947 | std::optional<long double> second = 0L; | |
| 204 | 947 | std::optional<uint16_t> gpsWeek; | |
| 205 | 947 | std::optional<long double> gpsToW; | |
| 206 |
1/2✓ Branch 1 taken 949 times.
✗ Branch 2 not taken.
|
947 | Eigen::Vector3d lla_position{ std::nan(""), std::nan(""), std::nan("") }; |
| 207 |
1/2✓ Branch 1 taken 950 times.
✗ Branch 2 not taken.
|
949 | Eigen::Vector3d e_position{ std::nan(""), std::nan(""), std::nan("") }; |
| 208 |
1/2✓ Branch 1 taken 955 times.
✗ Branch 2 not taken.
|
950 | Eigen::Vector3d n_velocity{ std::nan(""), std::nan(""), std::nan("") }; |
| 209 |
1/2✓ Branch 1 taken 954 times.
✗ Branch 2 not taken.
|
955 | Eigen::Vector3d e_velocity{ std::nan(""), std::nan(""), std::nan("") }; |
| 210 | |||
| 211 |
3/6✓ Branch 1 taken 944 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 948 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 948 times.
✗ Branch 8 not taken.
|
954 | Eigen::Matrix3d e_posVar = Eigen::Matrix3d::Zero() * std::nan(""); |
| 212 |
3/6✓ Branch 1 taken 940 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 949 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 954 times.
✗ Branch 8 not taken.
|
948 | Eigen::Matrix3d e_velVar = Eigen::Matrix3d::Zero() * std::nan(""); |
| 213 |
3/6✓ Branch 1 taken 952 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 951 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 951 times.
✗ Branch 8 not taken.
|
954 | Eigen::Matrix3d n_posVar = Eigen::Matrix3d::Zero() * std::nan(""); |
| 214 |
3/6✓ Branch 1 taken 951 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 951 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 949 times.
✗ Branch 8 not taken.
|
951 | Eigen::Matrix3d n_velVar = Eigen::Matrix3d::Zero() * std::nan(""); |
| 215 | |||
| 216 | try | ||
| 217 | { | ||
| 218 |
2/2✓ Branch 5 taken 22716 times.
✓ Branch 6 taken 942 times.
|
23674 | for (const auto& column : _headerColumns) |
| 219 | { | ||
| 220 |
3/6✓ Branch 1 taken 22675 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 22708 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 22714 times.
✗ Branch 7 not taken.
|
22664 | if (lineStream >> cell) |
| 221 | { | ||
| 222 | // Remove any trailing non text characters | ||
| 223 |
2/4✓ Branch 3 taken 22790 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 22752 times.
✗ Branch 8 not taken.
|
180999 | cell.erase(std::ranges::find_if(cell, [](int ch) { return std::iscntrl(ch); }), cell.end()); |
| 224 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 22777 times.
|
22752 | if (cell.empty()) |
| 225 | { | ||
| 226 | ✗ | continue; | |
| 227 | } | ||
| 228 | |||
| 229 | // % GPST latitude(deg) longitude(deg) ... | ||
| 230 | // 2120 216180.000 XX.XXXXXXXXX ... | ||
| 231 |
3/4✓ Branch 1 taken 22701 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 22699 times.
|
22777 | if (column == "GpsWeek") |
| 232 | { | ||
| 233 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | gpsWeek = static_cast<uint16_t>(std::stoul(cell)); |
| 234 | } | ||
| 235 |
3/4✓ Branch 1 taken 22697 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 22695 times.
|
22699 | else if (column == "GpsToW") |
| 236 | { | ||
| 237 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | gpsToW = std::stold(cell); |
| 238 | } | ||
| 239 | // % GPST latitude(deg) longitude(deg) ... | ||
| 240 | // 2020/08/25 12:03:00.000 XX.XXXXXXXXX ... | ||
| 241 | // % UTC latitude(deg) longitude(deg) ... | ||
| 242 | // 2020/08/25 12:02:42.000 XX.XXXXXXXXX ... | ||
| 243 |
2/2✓ Branch 1 taken 946 times.
✓ Branch 2 taken 21724 times.
|
22695 | else if (column.starts_with("Date")) |
| 244 | { | ||
| 245 |
2/2✓ Branch 1 taken 928 times.
✓ Branch 2 taken 6 times.
|
946 | timeSystem = column.ends_with("-GPST") ? GPST : UTC; |
| 246 | |||
| 247 |
2/4✓ Branch 1 taken 944 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 944 times.
✗ Branch 5 not taken.
|
931 | auto ymd = str::split(cell, "/"); |
| 248 |
1/2✓ Branch 1 taken 946 times.
✗ Branch 2 not taken.
|
947 | if (ymd.size() == 3) |
| 249 | { | ||
| 250 |
2/4✓ Branch 1 taken 940 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 940 times.
✗ Branch 5 not taken.
|
946 | year = static_cast<uint16_t>(std::stoi(ymd.at(0))); |
| 251 |
2/4✓ Branch 1 taken 938 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 927 times.
✗ Branch 5 not taken.
|
930 | month = static_cast<uint16_t>(std::stoi(ymd.at(1))); |
| 252 |
2/4✓ Branch 1 taken 942 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 942 times.
✗ Branch 5 not taken.
|
940 | day = static_cast<uint16_t>(std::stoi(ymd.at(2))); |
| 253 | } | ||
| 254 | 942 | } | |
| 255 |
2/2✓ Branch 1 taken 947 times.
✓ Branch 2 taken 20805 times.
|
21724 | else if (column.starts_with("Time")) |
| 256 | { | ||
| 257 |
2/4✓ Branch 1 taken 947 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 949 times.
✗ Branch 5 not taken.
|
947 | auto hms = str::split(cell, ":"); |
| 258 |
1/2✓ Branch 1 taken 948 times.
✗ Branch 2 not taken.
|
947 | if (hms.size() == 3) |
| 259 | { | ||
| 260 |
2/4✓ Branch 1 taken 949 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 949 times.
✗ Branch 5 not taken.
|
948 | hour = static_cast<uint16_t>(std::stoi(hms.at(0))); |
| 261 |
2/2✓ Branch 1 taken 2 times.
✓ Branch 2 taken 941 times.
|
935 | if (column.ends_with("-JST")) { *hour -= 9; } |
| 262 |
2/4✓ Branch 1 taken 940 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 942 times.
✗ Branch 5 not taken.
|
943 | minute = static_cast<uint16_t>(std::stoi(hms.at(1))); |
| 263 |
2/4✓ Branch 1 taken 944 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 943 times.
✗ Branch 5 not taken.
|
942 | second = std::stold(hms.at(2)); |
| 264 | } | ||
| 265 | 936 | } | |
| 266 |
6/10✓ Branch 1 taken 20779 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 20786 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 20820 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 20824 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 20811 times.
|
20805 | else if (column == "x-ecef(m)" || column == "x-ecef") |
| 267 | { | ||
| 268 |
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); |
| 269 | } | ||
| 270 |
6/10✓ Branch 1 taken 20804 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 20815 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 20828 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 20828 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 20815 times.
|
20811 | else if (column == "y-ecef(m)" || column == "y-ecef") |
| 271 | { | ||
| 272 |
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); |
| 273 | } | ||
| 274 |
7/10✓ Branch 1 taken 20845 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 20842 times.
✓ Branch 4 taken 3 times.
✓ Branch 6 taken 20830 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 20837 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 20831 times.
|
20815 | else if (column == "z-ecef(m)" || column == "z-ecef") |
| 275 | { | ||
| 276 |
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); |
| 277 | } | ||
| 278 |
7/10✓ Branch 1 taken 20830 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 19885 times.
✓ Branch 4 taken 945 times.
✓ Branch 6 taken 19908 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 19913 times.
✓ Branch 10 taken 952 times.
✓ Branch 11 taken 19901 times.
|
20831 | else if (column == "latitude(deg)" || column == "latitude") |
| 279 | { | ||
| 280 |
3/4✓ Branch 1 taken 940 times.
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 931 times.
✗ Branch 6 not taken.
|
952 | lla_position(0) = deg2rad(std::stod(cell)); |
| 281 | } | ||
| 282 |
7/10✓ Branch 1 taken 19902 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 18971 times.
✓ Branch 4 taken 931 times.
✓ Branch 6 taken 18952 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 18957 times.
✓ Branch 10 taken 942 times.
✓ Branch 11 taken 18941 times.
|
19901 | else if (column == "longitude(deg)" || column == "longitude") |
| 283 | { | ||
| 284 |
2/4✓ Branch 1 taken 934 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 940 times.
✗ Branch 6 not taken.
|
942 | lla_position(1) = deg2rad(std::stod(cell)); |
| 285 | } | ||
| 286 |
7/10✓ Branch 1 taken 18964 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 18023 times.
✓ Branch 4 taken 941 times.
✓ Branch 6 taken 18018 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 18025 times.
✓ Branch 10 taken 945 times.
✓ Branch 11 taken 18014 times.
|
18941 | else if (column == "height(m)" || column == "height") |
| 287 | { | ||
| 288 |
2/4✓ Branch 1 taken 930 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 937 times.
✗ Branch 5 not taken.
|
945 | lla_position(2) = std::stod(cell); |
| 289 | } | ||
| 290 |
3/4✓ Branch 1 taken 18026 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 949 times.
✓ Branch 4 taken 17077 times.
|
18014 | else if (column == "Q") |
| 291 | { | ||
| 292 |
1/2✓ Branch 1 taken 946 times.
✗ Branch 2 not taken.
|
949 | obs->Q = static_cast<uint8_t>(std::stoul(cell)); |
| 293 | } | ||
| 294 |
3/4✓ Branch 1 taken 17084 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 950 times.
✓ Branch 4 taken 16134 times.
|
17077 | else if (column == "ns") |
| 295 | { | ||
| 296 |
1/2✓ Branch 1 taken 952 times.
✗ Branch 2 not taken.
|
950 | obs->ns = static_cast<uint8_t>(std::stoul(cell)); |
| 297 | } | ||
| 298 |
7/10✓ Branch 1 taken 16136 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 16132 times.
✓ Branch 4 taken 4 times.
✓ Branch 6 taken 16131 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 16134 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 16133 times.
|
16134 | else if (column == "sdx(m)" || column == "sdx") |
| 299 | { | ||
| 300 |
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); |
| 301 | } | ||
| 302 |
6/10✓ Branch 1 taken 16142 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 16142 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 16134 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 16136 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 16132 times.
|
16133 | else if (column == "sdy(m)" || column == "sdy") |
| 303 | { | ||
| 304 |
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); |
| 305 | } | ||
| 306 |
7/10✓ Branch 1 taken 16148 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 16147 times.
✓ Branch 4 taken 1 times.
✓ Branch 6 taken 16143 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 16146 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 16142 times.
|
16132 | else if (column == "sdz(m)" || column == "sdz") |
| 307 | { | ||
| 308 |
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); |
| 309 | } | ||
| 310 |
7/10✓ Branch 1 taken 16135 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 15192 times.
✓ Branch 4 taken 943 times.
✓ Branch 6 taken 15183 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 15186 times.
✓ Branch 10 taken 947 times.
✓ Branch 11 taken 15179 times.
|
16142 | else if (column == "sdn(m)" || column == "sdn") |
| 311 | { | ||
| 312 |
2/4✓ Branch 1 taken 942 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 937 times.
✗ Branch 6 not taken.
|
947 | n_posVar(0, 0) = std::pow(std::stod(cell), 2); |
| 313 | } | ||
| 314 |
7/10✓ Branch 1 taken 15193 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 14250 times.
✓ Branch 4 taken 943 times.
✓ Branch 6 taken 14239 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 14243 times.
✓ Branch 10 taken 949 times.
✓ Branch 11 taken 14233 times.
|
15179 | else if (column == "sde(m)" || column == "sde") |
| 315 | { | ||
| 316 |
2/4✓ Branch 1 taken 948 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 948 times.
✗ Branch 6 not taken.
|
949 | n_posVar(1, 1) = std::pow(std::stod(cell), 2); |
| 317 | } | ||
| 318 |
7/10✓ Branch 1 taken 14238 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 13288 times.
✓ Branch 4 taken 950 times.
✓ Branch 6 taken 13287 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 13289 times.
✓ Branch 10 taken 952 times.
✓ Branch 11 taken 13285 times.
|
14233 | else if (column == "sdu(m)" || column == "sdu") |
| 319 | { | ||
| 320 |
2/4✓ Branch 1 taken 949 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 949 times.
✗ Branch 6 not taken.
|
952 | n_posVar(2, 2) = std::pow(std::stod(cell), 2); |
| 321 | } | ||
| 322 |
7/10✓ Branch 1 taken 13288 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 13283 times.
✓ Branch 4 taken 5 times.
✓ Branch 6 taken 13286 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 13289 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 13289 times.
|
13285 | else if (column == "sdxy(m)" || column == "sdxy") |
| 323 | { | ||
| 324 |
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); |
| 325 |
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); |
| 326 |
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); |
| 327 | } | ||
| 328 |
6/10✓ Branch 1 taken 13286 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 13288 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13294 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 13296 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 13290 times.
|
13289 | else if (column == "sdyz(m)" || column == "sdyz") |
| 329 | { | ||
| 330 |
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); |
| 331 |
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); |
| 332 |
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); |
| 333 | } | ||
| 334 |
7/10✓ Branch 1 taken 13284 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 13282 times.
✓ Branch 4 taken 2 times.
✓ Branch 6 taken 13283 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 13285 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 13283 times.
|
13290 | else if (column == "sdzx(m)" || column == "sdzx") |
| 335 | { | ||
| 336 |
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); |
| 337 |
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); |
| 338 |
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); |
| 339 | } | ||
| 340 |
8/10✓ Branch 1 taken 13287 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 12346 times.
✓ Branch 4 taken 941 times.
✓ Branch 6 taken 12343 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✓ Branch 9 taken 12342 times.
✓ Branch 10 taken 946 times.
✓ Branch 11 taken 12338 times.
|
13283 | else if (column == "sdne(m)" || column == "sdne") |
| 341 | { | ||
| 342 |
2/4✓ Branch 1 taken 944 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 945 times.
✗ Branch 5 not taken.
|
946 | n_posVar(0, 1) = std::stod(cell); |
| 343 |
3/6✓ Branch 1 taken 948 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 950 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 952 times.
✗ Branch 10 not taken.
|
945 | n_posVar(0, 1) = gcem::sgn(n_posVar(0, 1)) * std::pow(n_posVar(0, 1), 2); |
| 344 |
2/4✓ Branch 1 taken 949 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 950 times.
✗ Branch 5 not taken.
|
952 | n_posVar(1, 0) = -n_posVar(0, 1); |
| 345 | } | ||
| 346 |
7/10✓ Branch 1 taken 12341 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 11398 times.
✓ Branch 4 taken 943 times.
✓ Branch 6 taken 11395 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 11398 times.
✓ Branch 10 taken 946 times.
✓ Branch 11 taken 11392 times.
|
12338 | else if (column == "sdeu(m)" || column == "sdeu") |
| 347 | { | ||
| 348 |
2/4✓ Branch 1 taken 948 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 945 times.
✗ Branch 5 not taken.
|
946 | n_posVar(1, 2) = std::stod(cell); |
| 349 |
3/6✓ Branch 1 taken 949 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 945 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 947 times.
✗ Branch 10 not taken.
|
945 | n_posVar(1, 2) = gcem::sgn(n_posVar(1, 2)) * std::pow(n_posVar(1, 2), 2); |
| 350 |
2/4✓ Branch 1 taken 953 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 949 times.
✗ Branch 5 not taken.
|
947 | n_posVar(2, 1) = -n_posVar(1, 2); |
| 351 | } | ||
| 352 |
7/10✓ Branch 1 taken 11389 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10445 times.
✓ Branch 4 taken 944 times.
✓ Branch 6 taken 10440 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 10441 times.
✓ Branch 10 taken 949 times.
✓ Branch 11 taken 10435 times.
|
11392 | else if (column == "sdun(m)" || column == "sdun") |
| 353 | { | ||
| 354 |
2/4✓ Branch 1 taken 946 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 945 times.
✗ Branch 5 not taken.
|
949 | n_posVar(2, 0) = std::stod(cell); |
| 355 |
3/6✓ Branch 1 taken 948 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 950 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 951 times.
✗ Branch 10 not taken.
|
945 | n_posVar(2, 0) = gcem::sgn(n_posVar(2, 0)) * std::pow(n_posVar(2, 0), 2); |
| 356 |
2/4✓ Branch 1 taken 950 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 952 times.
✗ Branch 5 not taken.
|
951 | n_posVar(0, 2) = -n_posVar(2, 0); |
| 357 | } | ||
| 358 |
8/10✓ Branch 1 taken 10442 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9495 times.
✓ Branch 4 taken 947 times.
✓ Branch 6 taken 9498 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✓ Branch 9 taken 9497 times.
✓ Branch 10 taken 952 times.
✓ Branch 11 taken 9493 times.
|
10435 | else if (column == "age(s)" || column == "age") |
| 359 | { | ||
| 360 |
1/2✓ Branch 1 taken 952 times.
✗ Branch 2 not taken.
|
952 | obs->age = std::stod(cell); |
| 361 | } | ||
| 362 |
3/4✓ Branch 1 taken 9485 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 948 times.
✓ Branch 4 taken 8537 times.
|
9493 | else if (column == "ratio") |
| 363 | { | ||
| 364 |
1/2✓ Branch 1 taken 948 times.
✗ Branch 2 not taken.
|
948 | obs->ratio = std::stod(cell); |
| 365 | } | ||
| 366 |
7/10✓ Branch 1 taken 8531 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7587 times.
✓ Branch 4 taken 944 times.
✓ Branch 6 taken 7592 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 7594 times.
✓ Branch 10 taken 945 times.
✓ Branch 11 taken 7591 times.
|
8537 | else if (column == "vn(m/s)" || column == "vn") |
| 367 | { | ||
| 368 |
2/4✓ Branch 1 taken 949 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 946 times.
✗ Branch 5 not taken.
|
945 | n_velocity(0) = std::stod(cell); |
| 369 | } | ||
| 370 |
8/10✓ Branch 1 taken 7593 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 6651 times.
✓ Branch 4 taken 942 times.
✓ Branch 6 taken 6651 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✓ Branch 9 taken 6649 times.
✓ Branch 10 taken 945 times.
✓ Branch 11 taken 6648 times.
|
7591 | else if (column == "ve(m/s)" || column == "ve") |
| 371 | { | ||
| 372 |
2/4✓ Branch 1 taken 947 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 944 times.
✗ Branch 5 not taken.
|
945 | n_velocity(1) = std::stod(cell); |
| 373 | } | ||
| 374 |
7/10✓ Branch 1 taken 6648 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5702 times.
✓ Branch 4 taken 946 times.
✓ Branch 6 taken 5706 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5706 times.
✓ Branch 10 taken 946 times.
✓ Branch 11 taken 5706 times.
|
6648 | else if (column == "vu(m/s)" || column == "vu") |
| 375 | { | ||
| 376 |
2/4✓ Branch 1 taken 950 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 949 times.
✗ Branch 5 not taken.
|
946 | n_velocity(2) = -std::stod(cell); |
| 377 | } | ||
| 378 |
7/10✓ Branch 1 taken 5705 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5704 times.
✓ Branch 4 taken 1 times.
✓ Branch 6 taken 5709 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5711 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 5708 times.
|
5706 | else if (column == "vx(m/s)" || column == "vx") |
| 379 | { | ||
| 380 |
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); |
| 381 | } | ||
| 382 |
7/10✓ Branch 1 taken 5701 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5700 times.
✓ Branch 4 taken 1 times.
✓ Branch 6 taken 5704 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5705 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 5703 times.
|
5708 | else if (column == "vy(m/s)" || column == "vy") |
| 383 | { | ||
| 384 |
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); |
| 385 | } | ||
| 386 |
7/10✓ Branch 1 taken 5702 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5701 times.
✓ Branch 4 taken 1 times.
✓ Branch 6 taken 5701 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 5702 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 5700 times.
|
5703 | else if (column == "vz(m/s)" || column == "vz") |
| 387 | { | ||
| 388 |
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); |
| 389 | } | ||
| 390 |
7/10✓ Branch 1 taken 5702 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5702 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 5703 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 946 times.
✓ Branch 9 taken 4757 times.
✓ Branch 10 taken 949 times.
✓ Branch 11 taken 4754 times.
|
5700 | else if (column == "sdvn(m/s)" || column == "sdvn") |
| 391 | { | ||
| 392 |
2/4✓ Branch 1 taken 945 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 945 times.
✗ Branch 6 not taken.
|
949 | n_velVar(0, 0) = std::pow(std::stod(cell), 2); |
| 393 | } | ||
| 394 |
7/10✓ Branch 1 taken 4757 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4757 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 4756 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 947 times.
✓ Branch 9 taken 3809 times.
✓ Branch 10 taken 948 times.
✓ Branch 11 taken 3808 times.
|
4754 | else if (column == "sdve(m/s)" || column == "sdve") |
| 395 | { | ||
| 396 |
2/4✓ Branch 1 taken 948 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 951 times.
✗ Branch 6 not taken.
|
948 | n_velVar(1, 1) = std::pow(std::stod(cell), 2); |
| 397 | } | ||
| 398 |
7/10✓ Branch 1 taken 3805 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 3805 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 3804 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 946 times.
✓ Branch 9 taken 2858 times.
✓ Branch 10 taken 948 times.
✓ Branch 11 taken 2856 times.
|
3808 | else if (column == "sdvu(m/s)" || column == "sdvu") |
| 399 | { | ||
| 400 |
2/4✓ Branch 1 taken 949 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 945 times.
✗ Branch 6 not taken.
|
948 | n_velVar(2, 2) = std::pow(std::stod(cell), 2); |
| 401 | } | ||
| 402 |
7/10✓ Branch 1 taken 2857 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2857 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2859 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 949 times.
✓ Branch 9 taken 1910 times.
✓ Branch 10 taken 950 times.
✓ Branch 11 taken 1909 times.
|
2856 | else if (column == "sdvne(m/s)" || column == "sdvne") |
| 403 | { | ||
| 404 |
2/4✓ Branch 1 taken 946 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 945 times.
✗ Branch 5 not taken.
|
950 | n_velVar(0, 1) = std::stod(cell); |
| 405 |
3/6✓ Branch 1 taken 947 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 950 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 948 times.
✗ Branch 10 not taken.
|
945 | n_velVar(0, 1) = gcem::sgn(n_velVar(0, 1)) * std::pow(n_velVar(0, 1), 2); |
| 406 |
2/4✓ Branch 1 taken 949 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 950 times.
✗ Branch 5 not taken.
|
948 | n_velVar(1, 0) = -n_velVar(0, 1); |
| 407 | } | ||
| 408 |
7/10✓ Branch 1 taken 1910 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1910 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1909 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 949 times.
✓ Branch 9 taken 960 times.
✓ Branch 10 taken 950 times.
✓ Branch 11 taken 959 times.
|
1909 | else if (column == "sdveu(m/s)" || column == "sdveu") |
| 409 | { | ||
| 410 |
2/4✓ Branch 1 taken 944 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 945 times.
✗ Branch 5 not taken.
|
950 | n_velVar(1, 2) = std::stod(cell); |
| 411 |
3/6✓ Branch 1 taken 945 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 949 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 950 times.
✗ Branch 10 not taken.
|
945 | n_velVar(1, 2) = gcem::sgn(n_velVar(1, 2)) * std::pow(n_velVar(1, 2), 2); |
| 412 |
2/4✓ Branch 1 taken 948 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 945 times.
✗ Branch 5 not taken.
|
950 | n_velVar(2, 1) = -n_velVar(1, 2); |
| 413 | } | ||
| 414 |
7/10✓ Branch 1 taken 960 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 960 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 958 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 946 times.
✓ Branch 9 taken 12 times.
✓ Branch 10 taken 946 times.
✓ Branch 11 taken 12 times.
|
959 | else if (column == "sdvun(m/s)" || column == "sdvun") |
| 415 | { | ||
| 416 |
2/4✓ Branch 1 taken 949 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 949 times.
✗ Branch 5 not taken.
|
946 | n_velVar(2, 0) = std::stod(cell); |
| 417 |
3/6✓ Branch 1 taken 948 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 947 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 948 times.
✗ Branch 10 not taken.
|
949 | n_velVar(2, 0) = gcem::sgn(n_velVar(2, 0)) * std::pow(n_velVar(2, 0), 2); |
| 418 |
2/4✓ Branch 1 taken 948 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 950 times.
✗ Branch 5 not taken.
|
948 | n_velVar(0, 2) = -n_velVar(2, 0); |
| 419 | } | ||
| 420 |
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.
|
12 | else if (column == "sdvx(m/s)" || column == "sdvx") |
| 421 | { | ||
| 422 |
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); |
| 423 | } | ||
| 424 |
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") |
| 425 | { | ||
| 426 |
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); |
| 427 | } | ||
| 428 |
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") |
| 429 | { | ||
| 430 |
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); |
| 431 | } | ||
| 432 |
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") |
| 433 | { | ||
| 434 |
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); |
| 435 |
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); |
| 436 |
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); |
| 437 | } | ||
| 438 |
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") |
| 439 | { | ||
| 440 |
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); |
| 441 |
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); |
| 442 |
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); |
| 443 | } | ||
| 444 |
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") |
| 445 | { | ||
| 446 |
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); |
| 447 |
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); |
| 448 |
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); |
| 449 | } | ||
| 450 | } | ||
| 451 | } | ||
| 452 | } | ||
| 453 | 1 | catch (...) | |
| 454 | { | ||
| 455 | 1 | return nullptr; | |
| 456 | 1 | } | |
| 457 | |||
| 458 |
5/6✓ Branch 1 taken 2 times.
✓ Branch 2 taken 952 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 952 times.
|
942 | if (gpsWeek.has_value() && gpsToW.has_value()) |
| 459 | { | ||
| 460 |
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()); |
| 461 | } | ||
| 462 |
2/4✓ Branch 2 taken 952 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 951 times.
✗ Branch 6 not taken.
|
1902 | else if (year.has_value() && month.has_value() && day.has_value() |
| 463 |
5/10✓ Branch 0 taken 950 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 946 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 945 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 948 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 948 times.
✗ Branch 12 not taken.
|
1901 | && hour.has_value() && minute.has_value() && second.has_value()) |
| 464 | { | ||
| 465 |
3/6✓ Branch 1 taken 947 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 947 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 949 times.
✗ Branch 8 not taken.
|
946 | obs->insTime = InsTime(year.value(), month.value(), day.value(), |
| 466 |
4/8✓ Branch 1 taken 940 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 946 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 944 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 946 times.
✗ Branch 11 not taken.
|
948 | hour.value(), minute.value(), second.value(), |
| 467 | timeSystem); | ||
| 468 | } | ||
| 469 | |||
| 470 |
4/6✓ Branch 1 taken 945 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 943 times.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
944 | if (!e_position.hasNaN()) { obs->setPosition_e(e_position); } |
| 471 |
3/6✓ Branch 1 taken 950 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 950 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 943 times.
✗ Branch 8 not taken.
|
943 | else if (!lla_position.hasNaN()) { obs->setPosition_lla(lla_position); } |
| 472 | |||
| 473 |
4/6✓ Branch 1 taken 951 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 949 times.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
945 | if (!e_velocity.hasNaN()) { obs->setVelocity_e(e_velocity); } |
| 474 |
4/6✓ Branch 1 taken 950 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 948 times.
✓ Branch 4 taken 2 times.
✓ Branch 7 taken 946 times.
✗ Branch 8 not taken.
|
949 | else if (!n_velocity.hasNaN()) { obs->setVelocity_n(n_velocity); } |
| 475 | |||
| 476 |
7/10✓ Branch 1 taken 948 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 946 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 946 times.
|
950 | if (!e_velVar.hasNaN() && !e_posVar.hasNaN()) |
| 477 | { | ||
| 478 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | Eigen::Matrix6d cov = Eigen::Matrix6d::Zero(6, 6); |
| 479 |
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; |
| 480 |
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; |
| 481 |
1/2✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
2 | obs->setPosVelCovarianceMatrix_e(cov); |
| 482 | } | ||
| 483 |
5/10✓ Branch 1 taken 944 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 944 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 947 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 947 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 947 times.
✗ Branch 11 not taken.
|
946 | else if (!n_velVar.hasNaN() && !n_posVar.hasNaN()) |
| 484 | { | ||
| 485 |
2/4✓ Branch 1 taken 929 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 937 times.
✗ Branch 5 not taken.
|
947 | Eigen::Matrix6d cov = Eigen::Matrix6d::Zero(6, 6); |
| 486 |
2/4✓ Branch 1 taken 935 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 939 times.
✗ Branch 5 not taken.
|
937 | cov.block<3, 3>(0, 0) = n_posVar; |
| 487 |
2/4✓ Branch 1 taken 939 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 948 times.
✗ Branch 5 not taken.
|
939 | cov.block<3, 3>(3, 3) = n_velVar; |
| 488 |
1/2✓ Branch 2 taken 946 times.
✗ Branch 3 not taken.
|
948 | obs->setPosVelCovarianceMatrix_n(cov); |
| 489 | } | ||
| 490 | ✗ | else if (!e_posVar.hasNaN()) | |
| 491 | { | ||
| 492 | ✗ | obs->setPosCovarianceMatrix_e(e_posVar); | |
| 493 | } | ||
| 494 |
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()) |
| 495 | { | ||
| 496 |
1/2✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
2 | obs->setPosCovarianceMatrix_n(n_posVar); |
| 497 | } | ||
| 498 | |||
| 499 |
1/2✓ Branch 2 taken 955 times.
✗ Branch 3 not taken.
|
950 | invokeCallbacks(OUTPUT_PORT_INDEX_RTKLIB_POS_OBS, obs); |
| 500 | 953 | return obs; | |
| 501 | 959 | } | |
| 502 | |||
| 503 | 15 | NAV::FileReader::FileType NAV::RtklibPosFile::determineFileType() | |
| 504 | { | ||
| 505 |
1/2✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
|
15 | std::filesystem::path filepath = getFilepath(); |
| 506 | |||
| 507 |
1/2✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
|
15 | auto filestreamHeader = std::ifstream(filepath); |
| 508 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
|
15 | if (!filestreamHeader.good()) |
| 509 | { | ||
| 510 | ✗ | return FileReader::FileType::NONE; | |
| 511 | } | ||
| 512 | |||
| 513 | 15 | std::string line; | |
| 514 | do | ||
| 515 | { | ||
| 516 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 2 taken 210 times.
|
211 | if (filestreamHeader.eof()) |
| 517 | { | ||
| 518 | 1 | return FileReader::FileType::NONE; | |
| 519 | } | ||
| 520 | |||
| 521 |
1/2✓ Branch 1 taken 210 times.
✗ Branch 2 not taken.
|
210 | std::getline(filestreamHeader, line); |
| 522 | // Remove any starting non text characters | ||
| 523 |
2/4✓ Branch 1 taken 210 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 209 times.
✗ Branch 8 not taken.
|
420 | line.erase(line.begin(), std::ranges::find_if(line, [](int ch) { return std::isgraph(ch); })); |
| 524 |
5/6✓ Branch 1 taken 209 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 196 times.
✓ Branch 5 taken 14 times.
✓ Branch 6 taken 196 times.
✓ Branch 7 taken 14 times.
|
209 | } while (!line.empty() && line.find("% ") == std::string::npos); |
| 525 | |||
| 526 | 14 | return FileReader::FileType::ASCII; | |
| 527 | 15 | } | |
| 528 | |||
| 529 | 14 | void NAV::RtklibPosFile::readHeader() | |
| 530 | { | ||
| 531 | // Read header line | ||
| 532 | 14 | std::string line; | |
| 533 | do | ||
| 534 | { | ||
| 535 |
1/2✓ Branch 1 taken 208 times.
✗ Branch 2 not taken.
|
207 | getline(line); |
| 536 | // Remove any starting non text characters | ||
| 537 |
2/4✓ Branch 1 taken 207 times.
✗ Branch 2 not taken.
✓ Branch 7 taken 208 times.
✗ Branch 8 not taken.
|
415 | line.erase(line.begin(), std::ranges::find_if(line, [](int ch) { return std::isgraph(ch); })); |
| 538 |
5/6✓ Branch 1 taken 208 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 193 times.
✓ Branch 5 taken 14 times.
✓ Branch 6 taken 193 times.
✓ Branch 7 taken 14 times.
|
208 | } while (!line.empty() && line.find("% ") == std::string::npos); |
| 539 | |||
| 540 | // Convert line into stream | ||
| 541 |
1/2✓ Branch 1 taken 14 times.
✗ Branch 2 not taken.
|
14 | std::istringstream lineStream(line); |
| 542 | |||
| 543 |
4/6✓ Branch 2 taken 341 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 341 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 327 times.
✓ Branch 8 taken 14 times.
|
354 | for (std::string cell; lineStream >> cell;) // split at 'space' |
| 544 | { | ||
| 545 |
3/4✓ Branch 1 taken 327 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 14 times.
✓ Branch 4 taken 313 times.
|
327 | if (cell != "%") |
| 546 | { | ||
| 547 |
3/4✓ Branch 1 taken 313 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 11 times.
✓ Branch 4 taken 302 times.
|
313 | if (cell == "GPST") // When RTKLIB selected 'ww ssss GPST' or 'hh:mm:ss GPST' |
| 548 | { | ||
| 549 |
1/2✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
|
11 | auto pos = tellg(); |
| 550 |
1/2✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
|
11 | getline(line); |
| 551 |
1/2✓ Branch 2 taken 11 times.
✗ Branch 3 not taken.
|
11 | seekg(pos, std::ios::beg); |
| 552 | |||
| 553 |
3/4✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 10 times.
|
11 | if (line.substr(0, 7).find('/') == std::string::npos) |
| 554 | { | ||
| 555 | // % GPST latitude(deg) longitude(deg) ... | ||
| 556 | // 2120 216180.000 XX.XXXXXXXXX ... | ||
| 557 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _headerColumns.emplace_back("GpsWeek"); |
| 558 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _headerColumns.emplace_back("GpsToW"); |
| 559 | } | ||
| 560 | else | ||
| 561 | { | ||
| 562 | // % GPST latitude(deg) longitude(deg) ... | ||
| 563 | // 2020/08/25 12:03:00.000 XX.XXXXXXXXX ... | ||
| 564 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | _headerColumns.emplace_back("Date-GPST"); |
| 565 |
1/2✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
|
10 | _headerColumns.emplace_back("Time-GPST"); |
| 566 | } | ||
| 567 | } | ||
| 568 |
3/4✓ Branch 1 taken 302 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 300 times.
|
302 | else if (cell == "UTC") // When RTKLIB selected 'hh:mm:ss UTC' |
| 569 | { | ||
| 570 | // % UTC latitude(deg) longitude(deg) ... | ||
| 571 | // 2020/08/25 12:02:42.000 XX.XXXXXXXXX ... | ||
| 572 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _headerColumns.emplace_back("Date-UTC"); |
| 573 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | _headerColumns.emplace_back("Time-UTC"); |
| 574 | } | ||
| 575 |
3/4✓ Branch 1 taken 300 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 299 times.
|
300 | else if (cell == "JST") // When RTKLIB selected 'hh:mm:ss JST' |
| 576 | { | ||
| 577 | // % JST latitude(deg) longitude(deg) ... | ||
| 578 | // 2020/08/25 21:02:42.000 XX.XXXXXXXXX ... | ||
| 579 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _headerColumns.emplace_back("Date-JST"); |
| 580 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | _headerColumns.emplace_back("Time-JST"); |
| 581 | } | ||
| 582 | else | ||
| 583 | { | ||
| 584 |
1/2✓ Branch 1 taken 298 times.
✗ Branch 2 not taken.
|
299 | _headerColumns.push_back(cell); |
| 585 | } | ||
| 586 | } | ||
| 587 | 14 | } | |
| 588 | 14 | } | |
| 589 |