INSTINCT Code Coverage Report


Directory: src/
File: NodeData/GNSS/UbloxObs.hpp
Date: 2025-02-07 16:54:41
Exec Total Coverage
Lines: 5 6 83.3%
Functions: 2 3 66.7%
Branches: 4 8 50.0%

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 /// @file UbloxObs.hpp
10 /// @brief ublox Observation Class
11 /// @author T. Topp (topp@ins.uni-stuttgart.de)
12 /// @date 2020-03-19
13
14 #pragma once
15
16 #include "NodeData/NodeData.hpp"
17
18 #include <variant>
19
20 #include "util/Vendor/Ublox/UbloxTypes.hpp"
21
22 namespace NAV
23 {
24 /// ublox Observation Class
25 class UbloxObs : public NodeData
26 {
27 public:
28 /// @brief Returns the type of the data class
29 /// @return The data type
30 582070 [[nodiscard]] static std::string type()
31 {
32
1/2
✓ Branch 1 taken 582070 times.
✗ Branch 2 not taken.
1164140 return "UbloxObs";
33 }
34
35 /// @brief Returns the type of the data class
36 /// @return The data type
37 [[nodiscard]] std::string getType() const override { return type(); }
38
39 /// @brief Returns the parent types of the data class
40 /// @return The parent data types
41 112 [[nodiscard]] static std::vector<std::string> parentTypes()
42 {
43
3/6
✓ Branch 1 taken 112 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 112 times.
✓ Branch 4 taken 112 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
336 return { NodeData::type() };
44 112 }
45
46 /// Ubx Message Class (NONE if NMEA message)
47 vendor::ublox::UbxClass msgClass = vendor::ublox::UbxClass::UBX_CLASS_NONE;
48 /// Ubx Message ID
49 uint8_t msgId = 0;
50 /// Payload length in bytes
51 uint16_t payloadLength = 0;
52
53 /// Decoded data
54 std::variant<
55 // ACK: Ack/Nak Messages: Acknowledge or Reject messages to UBX-CFG input messages
56 vendor::ublox::UbxAckAck, vendor::ublox::UbxAckNak,
57 // CFG: Configuration Input Messages: Configure the receiver
58 // ESF: External Sensor Fusion Messages: External Sensor Measurements and Status Information
59 vendor::ublox::UbxEsfIns,
60 vendor::ublox::UbxEsfMeas,
61 vendor::ublox::UbxEsfRaw,
62 vendor::ublox::UbxEsfStatus,
63 // HNR: High Rate Navigation Results Messages: High rate time, position, speed, heading
64 // INF: Information Messages: Printf-Style Messages, with IDs such as Error, Warning, Notice
65 // LOG: Logging Messages: Log creation, deletion, info and retrieval
66 // MGA: Multiple GNSS Assistance Messages: Assistance data for various GNSS
67 // MON:Monitoring Messages: Communication Status, CPU Load, Stack Usage, Task Status
68 // NAV: Navigation Results Messages: Position, Speed, Time, Acceleration, Heading, DOP, SVs used
69 vendor::ublox::UbxNavAtt,
70 vendor::ublox::UbxNavPosecef,
71 vendor::ublox::UbxNavPosllh,
72 vendor::ublox::UbxNavVelned,
73 // RXM: Receiver Manager Messages: Satellite Status, RTC Status
74 vendor::ublox::UbxRxmRawx,
75 vendor::ublox::UbxRxmSfrbx
76 // SEC: Security Feature Messages
77 // TIM: Timing Messages: Time Pulse Output, Time Mark Results
78 // UPD: Firmware Update Messages: Memory/Flash erase/write, Reboot, Flash identification, etc.
79 >
80 data;
81 };
82
83 } // namespace NAV
84