![]() |
0.4.1
|
File Reader for NMEA log files. More...
Public Member Functions | |
void | guiConfig () override |
ImGui config window which is shown on double click. | |
NmeaFile () | |
Default constructor. | |
NmeaFile (const NmeaFile &)=delete | |
Copy constructor. | |
NmeaFile (NmeaFile &&)=delete | |
Move constructor. | |
NmeaFile & | operator= (const NmeaFile &)=delete |
Copy assignment operator. | |
NmeaFile & | operator= (NmeaFile &&)=delete |
Move assignment operator. | |
bool | resetNode () override |
Resets the node. Moves the read cursor to the start. | |
void | restore (const json &j) override |
Restores the node from a json object. | |
json | save () const override |
Saves the node into a json object. | |
std::string | type () const override |
String representation of the Class Type. | |
~NmeaFile () override | |
Destructor. | |
![]() | |
virtual void | afterCreateLink (OutputPin &startPin, InputPin &endPin) |
Called when a new link was established. | |
virtual void | afterDeleteLink (OutputPin &startPin, InputPin &endPin) |
Called when a link was deleted. | |
bool | doDeinitialize (bool wait=false) |
Asks the node worker to deinitialize the node. | |
bool | doDisable (bool wait=false) |
Asks the node worker to disable the node. | |
bool | doEnable () |
Enable the node. | |
bool | doInitialize (bool wait=false) |
Asks the node worker to initialize the node. | |
bool | doReinitialize (bool wait=false) |
Asks the node worker to reinitialize the node. | |
virtual void | flush () |
Function called by the flow executer after finishing to flush out remaining data. | |
template<typename T> | |
std::optional< InputPin::IncomingLink::ValueWrapper< T > > | getInputValue (size_t portIndex) const |
Get Input Value connected on the pin. Only const data types. | |
Mode | getMode () const |
Get the current mode of the node. | |
const ImVec2 & | getSize () const |
Get the size of the node. | |
State | getState () const |
Get the current state of the node. | |
bool | hasInputPinWithSameTime (const InsTime &insTime) const |
Checks wether there is an input pin with the same time. | |
InputPin & | inputPinFromId (ax::NodeEditor::PinId pinId) |
Returns the pin with the given id. | |
size_t | inputPinIndexFromId (ax::NodeEditor::PinId pinId) const |
Returns the index of the pin. | |
void | invokeCallbacks (size_t portIndex, const std::shared_ptr< const NodeData > &data) |
Calls all registered callbacks on the specified output port. | |
bool | isDisabled () const |
Checks if the node is disabled. | |
bool | isInitialized () const |
Checks if the node is initialized. | |
bool | isOnlyRealtime () const |
Checks if the node is only working in real time (sensors, network interfaces, ...) | |
bool | isTransient () const |
Checks if the node is changing its state currently. | |
std::string | nameId () const |
Node name and id. | |
Node (const Node &)=delete | |
Copy constructor. | |
Node (Node &&)=delete | |
Move constructor. | |
Node (std::string name) | |
Constructor. | |
void | notifyOutputValueChanged (size_t pinIdx, const InsTime &insTime, const std::scoped_lock< std::mutex > &&guard) |
Notifies connected nodes about the change. | |
virtual bool | onCreateLink (OutputPin &startPin, InputPin &endPin) |
Called when a new link is to be established. | |
virtual void | onDeleteLink (OutputPin &startPin, InputPin &endPin) |
Called when a link is to be deleted. | |
Node & | operator= (const Node &)=delete |
Copy assignment operator. | |
Node & | operator= (Node &&)=delete |
Move assignment operator. | |
OutputPin & | outputPinFromId (ax::NodeEditor::PinId pinId) |
Returns the pin with the given id. | |
size_t | outputPinIndexFromId (ax::NodeEditor::PinId pinId) const |
Returns the index of the pin. | |
void | releaseInputValue (size_t portIndex) |
Unblocks the connected node. Has to be called when the input value should be released and getInputValue was not called. | |
std::scoped_lock< std::mutex > | requestOutputValueLock (size_t pinIdx) |
Blocks the thread till the output values was read by all connected nodes. | |
virtual void | restoreAtferLink (const json &j) |
Restores link related properties of the node from a json object. | |
void | wakeWorker () |
Wakes the worker thread. | |
virtual | ~Node () |
Destructor. | |
![]() | |
FileReader (const FileReader &)=delete | |
Copy constructor. | |
FileReader (FileReader &&)=delete | |
Move constructor. | |
FileReader & | operator= (const FileReader &)=delete |
Copy assignment operator. | |
FileReader & | operator= (FileReader &&)=delete |
Move assignment operator. | |
virtual | ~FileReader ()=default |
Destructor. | |
Static Public Member Functions | |
static std::string | category () |
String representation of the Class Category. | |
static std::string | typeStatic () |
String representation of the Class Type. | |
![]() | |
static std::string | toString (State state) |
Converts the state into a printable text. | |
Private Member Functions | |
void | deinitialize () override |
Deinitialize the node. | |
FileType | determineFileType () override |
Determines the type of the file. | |
bool | initialize () override |
Initialize the node. | |
std::shared_ptr< const NodeData > | pollData () |
Polls data from the file. | |
void | readHeader () override |
Read the Header of the file. | |
bool | setDateFromRMC (const std::string &line) |
Set date info from RMC steam. | |
bool | setDateFromZDA (const std::string &line) |
Set date info from ZDA steam. | |
Private Attributes | ||
struct { | ||
int day | ||
Day 01 to 31. More... | ||
int month | ||
Month 01 to 12. More... | ||
int year | ||
Year. More... | ||
} | _currentDate | |
Current date. | ||
bool | _hasValidDate | |
Checks whether a ZDA or RMC time tag was read so that UTC can be reconstructed together with the GGA tag. | ||
double | _oldSoD | |
Second of day (SOD) from last GGA stream. This variable is used to check if SOD is increasing, if not, wait for next ZDA stream to get date info. | ||
Static Private Attributes | |
static constexpr size_t | OUTPUT_PORT_INDEX_NMEA_POS_OBS |
Flow (PosVel) | |
Additional Inherited Members | |
![]() | |
enum class | Mode : uint8_t { REAL_TIME , POST_PROCESSING } |
Different Modes the Node can work in. More... | |
enum class | State : uint8_t { Disabled , Deinitialized , DoInitialize , Initializing , Initialized , DoDeinitialize , Deinitializing , DoShutdown , Shutdown } |
Possible states of the node. More... | |
![]() | |
enum | FileType : uint8_t { NONE , BINARY , ASCII } |
File Type Enumeration. More... | |
enum | GuiResult : uint8_t { PATH_UNCHANGED , PATH_CHANGED , PATH_CHANGED_INVALID } |
Results enum for the gui config. More... | |
![]() | |
bool | callbacksEnabled |
Enables the callbacks. | |
ax::NodeEditor::NodeId | id |
Unique Id of the Node. | |
std::vector< InputPin > | inputPins |
List of input pins. | |
Kind | kind |
Kind of the Node. | |
std::string | name |
Name of the Node. | |
std::vector< OutputPin > | outputPins |
List of output pins. | |
std::multimap< InsTime, std::pair< OutputPin *, size_t > > | pollEvents |
Map with callback events (sorted by time) | |
![]() | |
void | deinitialize () |
Deinitialize the file reader. | |
auto | eof () const |
Check whether the end of file is reached. | |
FileReader ()=default | |
Default constructor. | |
size_t | getCurrentLineNumber () const |
Get the current line number. | |
std::filesystem::path | getFilepath () |
Returns the path of the file. | |
auto & | getline (std::string &str) |
Reads a line from the filestream. | |
bool | good () const |
Fast error checking. | |
GuiResult | guiConfig (const char *vFilters, const std::vector< std::string > &extensions, size_t id, const std::string &nameId) |
ImGui config. | |
auto & | ignore (std::streamsize count, int delim) |
Extracts and discards characters from the input stream until and including delim. | |
bool | initialize () |
Initialize the file reader. | |
auto | peek () |
Looking ahead in the stream. | |
auto & | read (char *__s, std::streamsize __n) |
Extraction without delimiters. | |
auto | readsome (char *s, std::streamsize count) |
Extracts up to count immediately available characters from the input stream. The extracted characters are stored into the character array pointed to by s. | |
void | resetReader () |
Moves the read cursor to the start. | |
void | restore (const json &j) |
Restores the node from a json object. | |
json | save () const |
Saves the node into a json object. | |
auto & | seekg (std::streamoff pos, std::ios_base::seekdir dir) |
Changing the current read position. | |
std::streampos | tellg () |
Getting the current read position. | |
![]() | |
ImVec2 | _guiConfigDefaultWindowSize |
bool | _hasConfig |
Flag if the config window should be shown. | |
bool | _lockConfigDuringRun |
Lock the config when executing post-processing. | |
bool | _onlyRealTime |
Whether the node can run in post-processing or only real-time. | |
![]() | |
FileType | _fileType |
File Type. | |
std::vector< std::string > | _headerColumns |
Header Columns of a CSV file. | |
std::string | _path |
Path to the file. | |
File Reader for NMEA log files.
Definition at line 22 of file NmeaFile.hpp.
NAV::NmeaFile::NmeaFile | ( | ) |
Default constructor.
Definition at line 22 of file NmeaFile.cpp.
|
override |
Destructor.
Definition at line 33 of file NmeaFile.cpp.
|
delete |
Copy constructor.
|
delete |
Move constructor.
|
staticnodiscard |
String representation of the Class Category.
Definition at line 48 of file NmeaFile.cpp.
|
overrideprivatevirtual |
|
nodiscardoverrideprivatevirtual |
Determines the type of the file.
Reimplemented from NAV::FileReader.
Definition at line 317 of file NmeaFile.cpp.
|
overridevirtual |
ImGui config window which is shown on double click.
Reimplemented from NAV::Node.
Definition at line 53 of file NmeaFile.cpp.
|
overrideprivatevirtual |
|
nodiscardprivate |
|
overrideprivatevirtual |
Read the Header of the file.
Reimplemented from NAV::FileReader.
Definition at line 322 of file NmeaFile.cpp.
|
overridevirtual |
Resets the node. Moves the read cursor to the start.
Reimplemented from NAV::Node.
Definition at line 105 of file NmeaFile.cpp.
|
overridevirtual |
Restores the node from a json object.
[in] | j | Json object with the node state |
Reimplemented from NAV::Node.
Definition at line 81 of file NmeaFile.cpp.
|
nodiscardoverridevirtual |
Saves the node into a json object.
Reimplemented from NAV::Node.
Definition at line 70 of file NmeaFile.cpp.
|
private |
Set date info from RMC steam.
[in] | line | Line that contains a potential $–RMC stream |
Definition at line 150 of file NmeaFile.cpp.
|
private |
Set date info from ZDA steam.
[in] | line | Line that contains a potential $–ZDA stream |
Definition at line 115 of file NmeaFile.cpp.
|
nodiscardoverridevirtual |
String representation of the Class Type.
Implements NAV::Node.
Definition at line 43 of file NmeaFile.cpp.
|
staticnodiscard |
String representation of the Class Type.
Definition at line 38 of file NmeaFile.cpp.
struct { ... } NAV::NmeaFile::_currentDate |
Current date.
|
private |
Checks whether a ZDA or RMC time tag was read so that UTC can be reconstructed together with the GGA tag.
Definition at line 82 of file NmeaFile.hpp.
|
private |
Second of day (SOD) from last GGA stream. This variable is used to check if SOD is increasing, if not, wait for next ZDA stream to get date info.
Definition at line 85 of file NmeaFile.hpp.
int NAV::NmeaFile::day |
Day 01 to 31.
Definition at line 92 of file NmeaFile.hpp.
int NAV::NmeaFile::month |
Month 01 to 12.
Definition at line 91 of file NmeaFile.hpp.
|
staticconstexprprivate |
Flow (PosVel)
Definition at line 62 of file NmeaFile.hpp.
int NAV::NmeaFile::year |
Year.
Definition at line 90 of file NmeaFile.hpp.