nmealib 0.0.4
NMEA 0183/NMEA 2000 parsing library
Loading...
Searching...
No Matches
Public Member Functions | Friends | List of all members
nmealib::nmea2000::PGN129026 Class Reference

Strongly-typed class representing PGN 129026 - COG, SOG, Rapid Update. More...

#include <PGN129026.h>

Inheritance diagram for nmealib::nmea2000::PGN129026:
Inheritance graph
[legend]
Collaboration diagram for nmealib::nmea2000::PGN129026:
Collaboration graph
[legend]

Public Member Functions

 PGN129026 (uint8_t sequenceId, HalfByte cogReference, Angle cog, Speed sog, Byte reserved=Byte::fromValue(0U), Byte reserved2=Byte::fromValue(0U), Byte reserved3=Byte::fromValue(0U)) noexcept
 
 PGN129026 (const PGN129026 &)=default
 
PGN129026operator= (const PGN129026 &)=default
 
 PGN129026 (PGN129026 &&) noexcept=default
 
PGN129026operator= (PGN129026 &&) noexcept=default
 
 ~PGN129026 () override=default
 
std::unique_ptr< nmealib::Messageclone () const override
 Creates a polymorphic deep copy of this Message2000.
 
uint8_t getSequenceId () const noexcept
 
HalfByte getCogReference () const noexcept
 
Angle getCog () const noexcept
 
Speed getSog () const noexcept
 
Byte getReserved1 () const noexcept
 
Byte getReserved2 () const noexcept
 
Byte getReserved3 () const noexcept
 
float getCogDegrees () const noexcept
 
float getSogKnots () const noexcept
 
std::string getStringContent (bool verbose) const noexcept override
 Returns a human-readable string representation of the message.
 
bool operator== (const PGN129026 &other) const noexcept
 
virtual bool operator== (const Message2000 &other) const noexcept
 
- Public Member Functions inherited from nmealib::nmea2000::Message2000
 Message2000 (const Message2000 &)=default
 
Message2000operator= (const Message2000 &)=default
 
 Message2000 (Message2000 &&) noexcept=default
 
Message2000operator= (Message2000 &&)=default
 
 ~Message2000 () override=default
 
const std::vector< uint8_t > & getCanId () const noexcept
 Returns the 29-bit CAN identifier as 4 bytes (big-endian).
 
const std::vector< uint8_t > & getCanFrame () const noexcept
 Returns the raw CAN frame payload (0-223 bytes).
 
uint8_t getCanFrameLength () const noexcept
 Returns the number of bytes in the CAN frame payload.
 
uint8_t getPriority () const noexcept
 Returns the 3-bit message priority (0 = highest, 7 = lowest).
 
bool getPriority3 () const noexcept
 Returns individual priority bits (P3 is the MSB).
 
bool getPriority2 () const noexcept
 Bit 3 of canId_[0].
 
bool getPriority1 () const noexcept
 Bit 2 of canId_[0].
 
bool getHeaderReserved () const noexcept
 Returns the Reserved bit (R1).
 
bool getDataPage () const noexcept
 Returns the Data Page bit (DP).
 
uint8_t getPDUFormat () const noexcept
 Returns the PDU Format byte (PF).
 
uint8_t getPDUSpecific () const noexcept
 Returns the PDU Specific byte (PS).
 
uint8_t getSourceAddress () const noexcept
 Returns the source address of the transmitting device.
 
uint8_t getDestinationAddress () const noexcept
 Returns the destination address.
 
uint32_t getPgn () const noexcept
 Returns the PGN (Parameter Group Number) extracted from the CAN Id.
 
std::string serialize () const override
 Serializes the message to "CANID:data" hex format.
 
bool validate () const override
 Returns true if the PGN fits in 18 bits and the frame is 0-223 bytes.
 
- Public Member Functions inherited from nmealib::Message
 Message ()
 
 Message (std::string raw, Type type=Type::Unknown, TimePoint ts=std::chrono::system_clock::now()) noexcept
 
virtual ~Message ()
 
 Message (const Message &)=default
 
Messageoperator= (const Message &)=default
 
 Message (Message &&) noexcept=default
 
Messageoperator= (Message &&) noexcept=default
 
Type getType () const noexcept
 Returns the message type.
 
const std::string & getRawData () const noexcept
 Returns the raw, unmodified data string as received.
 
TimePoint getTimestamp () const noexcept
 Returns the timestamp associated with this message.
 
bool operator== (const Message &other) const noexcept
 Compares two Message objects for equality based on their content.
 

Friends

class Nmea2000Factory
 
class MessageRegistry
 

Additional Inherited Members

- Public Types inherited from nmealib::Message
enum class  Type { Unknown , NMEA0183 , NMEA2000 }
 Defines the type of NMEA message, allowing for differentiation between various standards. More...
 
using TimePoint = std::chrono::system_clock::time_point
 
- Static Public Member Functions inherited from nmealib::Message
static std::string typeToString (Type t)
 Converts a Message::Type enum value to its string representation.
 
- Protected Member Functions inherited from nmealib::nmea2000::Message2000
std::string toString (bool verbose) const noexcept
 Returns the base string common to all PGNs (used by getStringContent).
 
- Protected Member Functions inherited from nmealib::Message
void setType (Type t) noexcept
 Sets the message type.
 
void setRaw (std::string r) noexcept
 Sets the raw data string.
 
void setTimestamp (TimePoint ts) noexcept
 Sets the message timestamp.
 
- Static Protected Member Functions inherited from nmealib::nmea2000::Message2000
static std::unique_ptr< Message2000create (std::string raw, TimePoint ts=std::chrono::system_clock::now())
 Protected factory — parses "CANID:data" (and variant formats) into a Message2000.
 
- Protected Attributes inherited from nmealib::nmea2000::Message2000
std::vector< uint8_t > canId_
 29-bit CAN Id stored as 4 bytes (big-endian)
 
std::vector< uint8_t > canFrame_
 CAN frame payload (0-223 bytes)
 
- Protected Attributes inherited from nmealib::Message
std::string rawData_
 
Type type_ {Type::Unknown}
 
TimePoint timestamp_ {}
 

Detailed Description

Strongly-typed class representing PGN 129026 - COG, SOG, Rapid Update.

PGN 129026 is used to report COG and SOG updates The message contains the following fields:

Definition at line 28 of file PGN129026.h.

Constructor & Destructor Documentation

◆ PGN129026() [1/3]

nmealib::nmea2000::PGN129026::PGN129026 ( uint8_t  sequenceId,
HalfByte  cogReference,
Angle  cog,
Speed  sog,
Byte  reserved = Byte::fromValue(0U),
Byte  reserved2 = Byte::fromValue(0U),
Byte  reserved3 = Byte::fromValue(0U) 
)
noexcept

Definition at line 51 of file PGN129026.cpp.

◆ PGN129026() [2/3]

nmealib::nmea2000::PGN129026::PGN129026 ( const PGN129026 )
default

◆ PGN129026() [3/3]

nmealib::nmea2000::PGN129026::PGN129026 ( PGN129026 &&  )
defaultnoexcept

◆ ~PGN129026()

nmealib::nmea2000::PGN129026::~PGN129026 ( )
overridedefault

Member Function Documentation

◆ clone()

std::unique_ptr< Message > nmealib::nmea2000::PGN129026::clone ( ) const
overridevirtual

Creates a polymorphic deep copy of this Message2000.

Reimplemented from nmealib::nmea2000::Message2000.

Definition at line 73 of file PGN129026.cpp.

◆ getCog()

Angle nmealib::nmea2000::PGN129026::getCog ( ) const
noexcept
Returns
the course over ground in radians.

Definition at line 142 of file PGN129026.cpp.

◆ getCogDegrees()

float nmealib::nmea2000::PGN129026::getCogDegrees ( ) const
noexcept
Returns
the course over ground in degrees.

Definition at line 162 of file PGN129026.cpp.

◆ getCogReference()

HalfByte nmealib::nmea2000::PGN129026::getCogReference ( ) const
noexcept
Returns
the COG reference.

Definition at line 138 of file PGN129026.cpp.

◆ getReserved1()

Byte nmealib::nmea2000::PGN129026::getReserved1 ( ) const
noexcept
Returns
the PGN payload reserved field (bits 7..2 of byte 1).

Definition at line 150 of file PGN129026.cpp.

◆ getReserved2()

Byte nmealib::nmea2000::PGN129026::getReserved2 ( ) const
noexcept
Returns
the second reserved field.

Definition at line 154 of file PGN129026.cpp.

◆ getReserved3()

Byte nmealib::nmea2000::PGN129026::getReserved3 ( ) const
noexcept
Returns
the third reserved field.

Definition at line 158 of file PGN129026.cpp.

◆ getSequenceId()

uint8_t nmealib::nmea2000::PGN129026::getSequenceId ( ) const
noexcept
Returns
the sequence ID.

Definition at line 134 of file PGN129026.cpp.

◆ getSog()

Speed nmealib::nmea2000::PGN129026::getSog ( ) const
noexcept
Returns
the speed over ground in m/s.

Definition at line 146 of file PGN129026.cpp.

◆ getSogKnots()

float nmealib::nmea2000::PGN129026::getSogKnots ( ) const
noexcept
Returns
the speed over ground in knots.

Definition at line 166 of file PGN129026.cpp.

◆ getStringContent()

std::string nmealib::nmea2000::PGN129026::getStringContent ( bool  verbose) const
overridevirtualnoexcept

Returns a human-readable string representation of the message.

Verbose: multi-line dump of all fields. Non-verbose: single-line summary.

Reimplemented from nmealib::nmea2000::Message2000.

Definition at line 77 of file PGN129026.cpp.

◆ operator=() [1/2]

PGN129026 & nmealib::nmea2000::PGN129026::operator= ( const PGN129026 )
default

◆ operator=() [2/2]

PGN129026 & nmealib::nmea2000::PGN129026::operator= ( PGN129026 &&  )
defaultnoexcept

◆ operator==() [1/2]

bool nmealib::nmea2000::Message2000::operator== ( const Message2000 other) const
virtualnoexcept

Reimplemented from nmealib::nmea2000::Message2000.

Definition at line 192 of file nmea2000.cpp.

◆ operator==() [2/2]

bool nmealib::nmea2000::PGN129026::operator== ( const PGN129026 other) const
noexcept

Definition at line 170 of file PGN129026.cpp.

Friends And Related Symbol Documentation

◆ MessageRegistry

friend class MessageRegistry
friend

Definition at line 111 of file PGN129026.h.

◆ Nmea2000Factory

friend class Nmea2000Factory
friend

Definition at line 110 of file PGN129026.h.


The documentation for this class was generated from the following files: