Skip to content

nmeasim::core

namespace nmeasim::core · Library API

The simulation engine, a static library with no Qt dependency (CMake target nmeasim::core).

It models the vessel (model), produces its state over time (simulation), and encodes that state as NMEA 0183 sentences (nmea0183), AIS messages (ais), Signal K deltas (signalk) and ViewSync packets (viewsync). It also reads tracks (track) and log files (log). Nothing in it blocks, sleeps or performs network or serial I/O, so every part can be tested in isolation and driven by any host.

Namespaces

Namespace Description
nmeasim::core::ais AIS messages of the own vessel as a class A station, part of the nmeasim::core library.
nmeasim::core::geo Geographic positions and geodesics on the WGS 84 ellipsoid, part of the nmeasim::core library.
nmeasim::core::log Recorded sentence logs, part of the Qt-free nmeasim::core library: the format the simulator writes when recording and the third-party variants it reads back for replay.
nmeasim::core::model The simulated vessel and its environment at one instant, part of the nmeasim::core library.
nmeasim::core::nmea0183 NMEA 0183 sentences: framing and checksums, field formatting, the sentence catalogue, the encoders, the decoder and TAG blocks.
nmeasim::core::physics Physical models of the simulated environment, part of the nmeasim::core library.
nmeasim::core::signalk Signal K output, part of the nmeasim::core library.
nmeasim::core::simulation The simulation engine of the Qt-free core library: the sources that produce the vessel state over time, the schedule that turns it into sentences, and the Simulation that ties them together.
nmeasim::core::time Date and time text handling, part of the nmeasim::core library.
nmeasim::core::track Tracks and routes read from GPX and KML files for the track-following mode, part of the Qt-free nmeasim::core library.
nmeasim::core::units Unit conversions, part of the nmeasim::core library.
nmeasim::core::viewsync ViewSync output, part of the nmeasim::core library.

Summary

Functions

Name Description
version_description() Returns the version shown to users.

Variables

Name Description
kProjectName Human-readable project name, PROJECT_NAME of the top-level CMake project.
kVersion Semantic version string MAJOR.MINOR.PATCH, for example 1.1.0.
kVersionMajor Major version number, the first component of kVersion.
kVersionMinor Minor version number, the second component of kVersion.
kVersionPatch Patch version number, the third component of kVersion.

Functions

version_description()

std::string_view version_description() noexcept

Returns the version shown to users.

A build of the release tag v<kVersion>, or a build from a source archive without git metadata, returns kVersion alone; any other build appends the git describe string in parentheses, for example 1.0.0 (v1.0.0-3-g1a2b3c4-dirty).

Returns std::string_view: The description; it refers to a string literal and stays valid for the lifetime of the program.

Declared in src/core/include/nmeasim/core/version.hpp.in:37 · defined in src/core/src/version.cpp.in:18

Variables

kProjectName

std::string_view kProjectName{"@PROJECT_NAME@"}

Human-readable project name, PROJECT_NAME of the top-level CMake project.

Declared in src/core/include/nmeasim/core/version.hpp.in:17

kVersion

std::string_view kVersion{"@PROJECT_VERSION@"}

Semantic version string MAJOR.MINOR.PATCH, for example 1.1.0.

Declared in src/core/include/nmeasim/core/version.hpp.in:20

kVersionMajor

int kVersionMajor{@PROJECT_VERSION_MAJOR@}

Major version number, the first component of kVersion.

Declared in src/core/include/nmeasim/core/version.hpp.in:23

kVersionMinor

int kVersionMinor{@PROJECT_VERSION_MINOR@}

Minor version number, the second component of kVersion.

Declared in src/core/include/nmeasim/core/version.hpp.in:25

kVersionPatch

int kVersionPatch{@PROJECT_VERSION_PATCH@}

Patch version number, the third component of kVersion.

Declared in src/core/include/nmeasim/core/version.hpp.in:27