#include <cstdint>
#include <algorithm>
#include <boost/spirit/include/qi.hpp>
#include <septentrio_gnss_driver/abstraction/typedefs.hpp>
#include <septentrio_gnss_driver/parsers/parsing_utilities.hpp>
Go to the source code of this file.
Classes | |
struct | AgcState |
Struct for the SBF sub-block "AGCState". More... | |
struct | BlockHeader |
Struct for the SBF block's header message. More... | |
class | ChannelSatInfo |
Struct for the SBF sub-block "ChannelSatInfo". More... | |
class | ChannelStateInfo |
Struct for the SBF sub-block "ChannelStateInfo". More... | |
class | ChannelStatus |
Struct for the SBF block "ChannelStatus". More... | |
struct | Dop |
class | QualityInd |
Struct for the SBF block "QualityInd". More... | |
class | ReceiverSetup |
Struct for the SBF block "ReceiverSetup". More... | |
class | ReceiverStatus |
Struct for the SBF block "ReceiverStatus". More... | |
Functions | |
template<typename It > | |
void | AgcStateParser (It it, AgcState &msg, uint8_t sb_length) |
Struct for the SBF sub-block "AGCState". More... | |
template<typename It > | |
bool | AttCovEulerParser (ROSaicNodeBase *node, It it, It itEnd, AttCovEulerMsg &msg, bool use_ros_axis_orientation) |
Qi based parser for the SBF block "AttCovEuler". More... | |
template<typename It > | |
bool | AttEulerParser (ROSaicNodeBase *node, It it, It itEnd, AttEulerMsg &msg, bool use_ros_axis_orientation) |
Qi based parser for the SBF block "AttEuler". More... | |
template<typename It > | |
bool | BaseVectorCartParser (ROSaicNodeBase *node, It it, It itEnd, BaseVectorCartMsg &msg) |
Qi based parser for the SBF block "BaseVectorCart". More... | |
template<typename It > | |
bool | BaseVectorGeodParser (ROSaicNodeBase *node, It it, It itEnd, BaseVectorGeodMsg &msg) |
Qi based parser for the SBF block "BaseVectorGeod". More... | |
template<typename It , typename Hdr > | |
bool | BlockHeaderParser (ROSaicNodeBase *node, It &it, Hdr &block_header) |
Qi based parser for the SBF block "BlockHeader" plus receiver time stamp. More... | |
template<typename It > | |
bool | ChannelSatInfoParser (ROSaicNodeBase *node, It &it, ChannelSatInfo &msg, uint8_t sb1_length, uint8_t sb2_length) |
Qi based parser or the SBF sub-block "ChannelSatInfo". More... | |
template<typename It > | |
void | ChannelStateInfoParser (It &it, ChannelStateInfo &msg, uint8_t sb2_length) |
Qi based parser for the SBF sub-block "ChannelStateInfo". More... | |
template<typename It > | |
bool | ChannelStatusParser (ROSaicNodeBase *node, It it, It itEnd, ChannelStatus &msg) |
Qi based parser for the SBF block "ChannelStatus". More... | |
template<typename It > | |
bool | DOPParser (ROSaicNodeBase *node, It it, It itEnd, Dop &msg) |
Qi based parser for the SBF block "DOP". More... | |
template<typename It > | |
bool | ExtSensorMeasParser (ROSaicNodeBase *node, It it, It itEnd, ExtSensorMeasMsg &msg, bool use_ros_axis_orientation, bool &hasImuMeas) |
Qi based parser for the SBF block "ExtSensorMeas". More... | |
template<typename It > | |
bool | GalAuthStatusParser (ROSaicNodeBase *node, It it, It itEnd, GalAuthStatusMsg &msg) |
Qi based parser for the SBF block "GALAuthStatus". More... | |
template<typename It > | |
bool | IMUSetupParser (ROSaicNodeBase *node, It it, It itEnd, IMUSetupMsg &msg, bool use_ros_axis_orientation) |
Qi based parser for the SBF block "IMUSetup". More... | |
template<typename It > | |
bool | INSNavCartParser (ROSaicNodeBase *node, It it, It itEnd, INSNavCartMsg &msg, bool use_ros_axis_orientation) |
Qi based parser for the SBF block "INSNavCart". More... | |
template<typename It > | |
bool | INSNavGeodParser (ROSaicNodeBase *node, It it, It itEnd, INSNavGeodMsg &msg, bool use_ros_axis_orientation) |
Qi based parser for the SBF block "INSNavGeod". More... | |
template<typename It > | |
bool | MeasEpochChannelType1Parser (ROSaicNodeBase *node, It &it, MeasEpochChannelType1Msg &msg, uint8_t sb1_length, uint8_t sb2_length) |
Qi based parser for the SBF sub-block "MeasEpochChannelType1". More... | |
template<typename It > | |
void | MeasEpochChannelType2Parser (It &it, MeasEpochChannelType2Msg &msg, uint8_t sb2_length) |
Qi based parser for the SBF sub-block "MeasEpochChannelType2". More... | |
template<typename It > | |
bool | MeasEpochParser (ROSaicNodeBase *node, It it, It itEnd, MeasEpochMsg &msg) |
Qi based parser for the SBF block "MeasEpoch". More... | |
template<typename It > | |
bool | PosCovCartesianParser (ROSaicNodeBase *node, It it, It itEnd, PosCovCartesianMsg &msg) |
Qi based parser for the SBF block "PosCovCartesian". More... | |
template<typename It > | |
bool | PosCovGeodeticParser (ROSaicNodeBase *node, It it, It itEnd, PosCovGeodeticMsg &msg) |
Qi based parser for the SBF block "PosCovGeodetic". More... | |
template<typename It > | |
bool | PVTCartesianParser (ROSaicNodeBase *node, It it, It itEnd, PVTCartesianMsg &msg) |
Qi based parser for the SBF block "PVTCartesian". More... | |
template<typename It > | |
bool | PVTGeodeticParser (ROSaicNodeBase *node, It it, It itEnd, PVTGeodeticMsg &msg) |
Qi based parser for the SBF block "PVTGeodetic". More... | |
template<typename It > | |
void | qiCharsToStringParser (It &it, std::string &val, std::size_t num) |
Qi parser for char array to string. More... | |
template<typename It , typename Val > | |
void | qiLittleEndianParser (It &it, Val &val) |
Qi little endian parsers for numeric values. More... | |
template<typename It > | |
bool | QualityIndParser (ROSaicNodeBase *node, It it, It itEnd, QualityInd &msg) |
Qi based parser for the SBF block "QualityInd". More... | |
template<typename It > | |
bool | ReceiverSetupParser (ROSaicNodeBase *node, It it, It itEnd, ReceiverSetup &msg) |
Qi based parser for the SBF block "ReceiverSetup". More... | |
template<typename It > | |
bool | ReceiverStatusParser (ROSaicNodeBase *node, It it, It itEnd, ReceiverStatus &msg) |
Struct for the SBF block "ReceiverStatus". More... | |
template<typename It > | |
bool | ReceiverTimeParser (ROSaicNodeBase *node, It it, It itEnd, ReceiverTimeMsg &msg) |
Struct for the SBF block "ReceiverTime". More... | |
template<typename It > | |
bool | ReceiverTimesParser (ROSaicNodeBase *node, It it, It itEnd, ReceiverTimeMsg &msg) |
Struct for the SBF block "ReceiverTime". More... | |
template<typename It > | |
void | RfBandParser (It &it, RfBandMsg &msg, uint8_t sb_length) |
Qi based parser for the SBF sub-block "RFBand". More... | |
template<typename It > | |
bool | RfStatusParser (ROSaicNodeBase *node, It it, It itEnd, RfStatusMsg &msg) |
Qi based parser for the SBF block "RFStatus". More... | |
template<typename Val > | |
void | setDoNotUse (Val &s) |
Sets scalar to Do-Not-Use value. More... | |
template<typename T > | |
bool | validValue (T s) |
Check if value is not set to Do-Not-Use. More... | |
template<typename It > | |
void | VectorInfoCartParser (It &it, VectorInfoCartMsg &msg, uint8_t sb_length) |
Qi based parser for the SBF sub-block "VectorInfoCart". More... | |
template<typename It > | |
void | VectorInfoGeodParser (It &it, VectorInfoGeodMsg &msg, uint8_t sb_length) |
Qi based parser for the SBF sub-block "VectorInfoGeod". More... | |
template<typename It > | |
bool | VelCovCartesianParser (ROSaicNodeBase *node, It it, It itEnd, VelCovCartesianMsg &msg) |
Qi based parser for the SBF block "VelCovCartesian". More... | |
template<typename It > | |
bool | VelCovGeodeticParser (ROSaicNodeBase *node, It it, It itEnd, VelCovGeodeticMsg &msg) |
Qi based parser for the SBF block "VelCovGeodetic". More... | |
template<typename It > | |
bool | VelSensorSetupParser (ROSaicNodeBase *node, It it, It itEnd, VelSensorSetupMsg &msg, bool use_ros_axis_orientation) |
Qi based parser for the SBF block "VelSensorSetup". More... | |
Variables | |
static const std::array< uint16_t, 256 > | CRC_LOOK_UP |
CRC look-up table for fast computation of the 16-bit CRC for SBF blocks. More... | |
static const uint8_t | MAX_NB_INMARSATCHANNELS = 1 |
Inmarsat is a British satellite telecommunications company. More... | |
static const uint8_t | MAX_NR_OF_SIGNALS_PER_SATELLITE = 7 |
Using maximum value of MAX_NR_OF_SIGNALS_PER_SATELLITE for SBF definitions. More... | |
static const uint8_t | MAXSB_CHANNELSATINFO |
Max number of bytes that ChannelSatInfo sub-block can consist of. More... | |
static const uint16_t | MAXSB_CHANNELSTATEINFO |
Max number of bytes that ChannelStateInfo sub-block can consist of. More... | |
static const uint8_t | MAXSB_MEASEPOCH_T1 |
Max number of bytes that MeasEpochChannelType1 sub-block can consist of. More... | |
static const uint16_t | MAXSB_MEASEPOCH_T2 |
Max number of bytes that MeasEpochChannelType2 sub-block can consist of. More... | |
static const uint8_t | MAXSB_NBRANTENNA = 4 |
Maximum number of antennas that mosaic etc. can handle. More... | |
static const uint8_t | MAXSB_NBVECTORINFO = 30 |
Max number of vector info sub-blocks. More... | |
static const uint8_t | NR_OF_ANTENNAS = 3 |
Using maximum value of NR_OF_ANTENNAS for SBF definitions. More... | |
static const uint8_t | NR_OF_LOGICALCHANNELS = 80 |
Using maximum value of NR_OF_LOGICALCHANNELS for SBF definitions. More... | |
static const uint8_t | SBF_SYNC_1 = 0x24 |
0x24 is ASCII for $ - 1st byte in each message More... | |
static const uint8_t | SBF_SYNC_2 = 0x40 |
0x40 is ASCII for @ - 2nd byte to indicate SBF block More... | |
void AgcStateParser | ( | It | it, |
AgcState & | msg, | ||
uint8_t | sb_length | ||
) |
Struct for the SBF sub-block "AGCState".
AgcStateParser
Definition at line 1446 of file sbf_blocks.hpp.
bool AttCovEulerParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
AttCovEulerMsg & | msg, | ||
bool | use_ros_axis_orientation | ||
) |
Qi based parser for the SBF block "AttCovEuler".
AttCovEulerParser
Definition at line 961 of file sbf_blocks.hpp.
bool AttEulerParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
AttEulerMsg & | msg, | ||
bool | use_ros_axis_orientation | ||
) |
Qi based parser for the SBF block "AttEuler".
AttEulerParser
Definition at line 916 of file sbf_blocks.hpp.
bool BaseVectorCartParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
BaseVectorCartMsg & | msg | ||
) |
Qi based parser for the SBF block "BaseVectorCart".
BaseVectorCartParser
Definition at line 1026 of file sbf_blocks.hpp.
bool BaseVectorGeodParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
BaseVectorGeodMsg & | msg | ||
) |
Qi based parser for the SBF block "BaseVectorGeod".
BaseVectorGeodParser
Definition at line 1088 of file sbf_blocks.hpp.
bool BlockHeaderParser | ( | ROSaicNodeBase * | node, |
It & | it, | ||
Hdr & | block_header | ||
) |
Qi based parser for the SBF block "BlockHeader" plus receiver time stamp.
BlockHeaderParser
Definition at line 382 of file sbf_blocks.hpp.
bool ChannelSatInfoParser | ( | ROSaicNodeBase * | node, |
It & | it, | ||
ChannelSatInfo & | msg, | ||
uint8_t | sb1_length, | ||
uint8_t | sb2_length | ||
) |
Qi based parser or the SBF sub-block "ChannelSatInfo".
ChannelSatInfoParser
Definition at line 427 of file sbf_blocks.hpp.
void ChannelStateInfoParser | ( | It & | it, |
ChannelStateInfo & | msg, | ||
uint8_t | sb2_length | ||
) |
Qi based parser for the SBF sub-block "ChannelStateInfo".
ChannelStateInfoParser
Definition at line 412 of file sbf_blocks.hpp.
bool ChannelStatusParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
ChannelStatus & | msg | ||
) |
Qi based parser for the SBF block "ChannelStatus".
ChannelStatusParser
Definition at line 460 of file sbf_blocks.hpp.
bool DOPParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
Dop & | msg | ||
) |
bool ExtSensorMeasParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
ExtSensorMeasMsg & | msg, | ||
bool | use_ros_axis_orientation, | ||
bool & | hasImuMeas | ||
) |
Qi based parser for the SBF block "ExtSensorMeas".
ExtSensorMeasParser
Definition at line 1750 of file sbf_blocks.hpp.
bool GalAuthStatusParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
GalAuthStatusMsg & | msg | ||
) |
Qi based parser for the SBF block "GALAuthStatus".
GALAuthStatus
Definition at line 638 of file sbf_blocks.hpp.
bool IMUSetupParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
IMUSetupMsg & | msg, | ||
bool | use_ros_axis_orientation | ||
) |
Qi based parser for the SBF block "IMUSetup".
IMUSetupParser
Definition at line 1676 of file sbf_blocks.hpp.
bool INSNavCartParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
INSNavCartMsg & | msg, | ||
bool | use_ros_axis_orientation | ||
) |
Qi based parser for the SBF block "INSNavCart".
INSNavCartParser
Definition at line 1125 of file sbf_blocks.hpp.
bool INSNavGeodParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
INSNavGeodMsg & | msg, | ||
bool | use_ros_axis_orientation | ||
) |
Qi based parser for the SBF block "INSNavGeod".
INSNavGeodParser
Definition at line 1536 of file sbf_blocks.hpp.
bool MeasEpochChannelType1Parser | ( | ROSaicNodeBase * | node, |
It & | it, | ||
MeasEpochChannelType1Msg & | msg, | ||
uint8_t | sb1_length, | ||
uint8_t | sb2_length | ||
) |
Qi based parser for the SBF sub-block "MeasEpochChannelType1".
MeasEpochChannelType1Parser
Definition at line 557 of file sbf_blocks.hpp.
void MeasEpochChannelType2Parser | ( | It & | it, |
MeasEpochChannelType2Msg & | msg, | ||
uint8_t | sb2_length | ||
) |
Qi based parser for the SBF sub-block "MeasEpochChannelType2".
MeasEpochChannelType2Parser
Definition at line 537 of file sbf_blocks.hpp.
bool MeasEpochParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
MeasEpochMsg & | msg | ||
) |
Qi based parser for the SBF block "MeasEpoch".
MeasEpochParser
Definition at line 594 of file sbf_blocks.hpp.
bool PosCovCartesianParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
PosCovCartesianMsg & | msg | ||
) |
Qi based parser for the SBF block "PosCovCartesian".
PosCovCartesianParser
Definition at line 1264 of file sbf_blocks.hpp.
bool PosCovGeodeticParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
PosCovGeodeticMsg & | msg | ||
) |
Qi based parser for the SBF block "PosCovGeodetic".
PosCovGeodeticParser
Definition at line 1300 of file sbf_blocks.hpp.
bool PVTCartesianParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
PVTCartesianMsg & | msg | ||
) |
Qi based parser for the SBF block "PVTCartesian".
PVTCartesianParser
Definition at line 804 of file sbf_blocks.hpp.
bool PVTGeodeticParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
PVTGeodeticMsg & | msg | ||
) |
Qi based parser for the SBF block "PVTGeodetic".
PVTGeodeticParser
Definition at line 860 of file sbf_blocks.hpp.
void qiCharsToStringParser | ( | It & | it, |
std::string & | val, | ||
std::size_t | num | ||
) |
Qi parser for char array to string.
qiCharsToStringParser
Definition at line 369 of file sbf_blocks.hpp.
void qiLittleEndianParser | ( | It & | it, |
Val & | val | ||
) |
Qi little endian parsers for numeric values.
qiLittleEndianParser
Definition at line 328 of file sbf_blocks.hpp.
bool QualityIndParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
QualityInd & | msg | ||
) |
Qi based parser for the SBF block "QualityInd".
QualityIndParser
Definition at line 1408 of file sbf_blocks.hpp.
bool ReceiverSetupParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
ReceiverSetup & | msg | ||
) |
Qi based parser for the SBF block "ReceiverSetup".
ReceiverSetupParser
Definition at line 714 of file sbf_blocks.hpp.
bool ReceiverStatusParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
ReceiverStatus & | msg | ||
) |
Struct for the SBF block "ReceiverStatus".
ReceiverStatusParser
Definition at line 1460 of file sbf_blocks.hpp.
bool ReceiverTimeParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
ReceiverTimeMsg & | msg | ||
) |
Struct for the SBF block "ReceiverTime".
ReceiverTimeParser
Definition at line 1504 of file sbf_blocks.hpp.
bool ReceiverTimesParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
ReceiverTimeMsg & | msg | ||
) |
Struct for the SBF block "ReceiverTime".
ReceiverTimeParser
Definition at line 772 of file sbf_blocks.hpp.
void RfBandParser | ( | It & | it, |
RfBandMsg & | msg, | ||
uint8_t | sb_length | ||
) |
Qi based parser for the SBF sub-block "RFBand".
RFBandParser
Definition at line 668 of file sbf_blocks.hpp.
bool RfStatusParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
RfStatusMsg & | msg | ||
) |
Qi based parser for the SBF block "RFStatus".
RFStatusParser
Definition at line 681 of file sbf_blocks.hpp.
void setDoNotUse | ( | Val & | s | ) |
bool validValue | ( | T | s | ) |
void VectorInfoCartParser | ( | It & | it, |
VectorInfoCartMsg & | msg, | ||
uint8_t | sb_length | ||
) |
Qi based parser for the SBF sub-block "VectorInfoCart".
VectorInfoCartParser
Definition at line 1001 of file sbf_blocks.hpp.
void VectorInfoGeodParser | ( | It & | it, |
VectorInfoGeodMsg & | msg, | ||
uint8_t | sb_length | ||
) |
Qi based parser for the SBF sub-block "VectorInfoGeod".
VectorInfoGeodParser
Definition at line 1063 of file sbf_blocks.hpp.
bool VelCovCartesianParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
VelCovCartesianMsg & | msg | ||
) |
Qi based parser for the SBF block "VelCovCartesian".
VelCovCartesianParser
Definition at line 1336 of file sbf_blocks.hpp.
bool VelCovGeodeticParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
VelCovGeodeticMsg & | msg | ||
) |
Qi based parser for the SBF block "VelCovGeodetic".
VelCovGeodeticParser
Definition at line 1372 of file sbf_blocks.hpp.
bool VelSensorSetupParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
VelSensorSetupMsg & | msg, | ||
bool | use_ros_axis_orientation | ||
) |
Qi based parser for the SBF block "VelSensorSetup".
VelSensorSetupParser
Definition at line 1714 of file sbf_blocks.hpp.
|
static |
CRC look-up table for fast computation of the 16-bit CRC for SBF blocks.
Provided by Septenrio (c) 2020 Septentrio N.V./S.A., Belgium.
Definition at line 240 of file sbf_blocks.hpp.
|
static |
Inmarsat is a British satellite telecommunications company.
Definition at line 38 of file sbf_blocks.hpp.
|
static |
Using maximum value of MAX_NR_OF_SIGNALS_PER_SATELLITE for SBF definitions.
Definition at line 40 of file sbf_blocks.hpp.
|
static |
Max number of bytes that ChannelSatInfo sub-block can consist of.
Definition at line 46 of file sbf_blocks.hpp.
|
static |
Max number of bytes that ChannelStateInfo sub-block can consist of.
Definition at line 49 of file sbf_blocks.hpp.
|
static |
Max number of bytes that MeasEpochChannelType1 sub-block can consist of.
Definition at line 52 of file sbf_blocks.hpp.
|
static |
Max number of bytes that MeasEpochChannelType2 sub-block can consist of.
Definition at line 55 of file sbf_blocks.hpp.
|
static |
Maximum number of antennas that mosaic etc. can handle.
Definition at line 44 of file sbf_blocks.hpp.
|
static |
Max number of vector info sub-blocks.
Definition at line 59 of file sbf_blocks.hpp.
|
static |
Using maximum value of NR_OF_ANTENNAS for SBF definitions.
Definition at line 42 of file sbf_blocks.hpp.
|
static |
Using maximum value of NR_OF_LOGICALCHANNELS for SBF definitions.
Definition at line 36 of file sbf_blocks.hpp.
|
static |
0x24 is ASCII for $ - 1st byte in each message
Definition at line 62 of file sbf_blocks.hpp.
|
static |
0x40 is ASCII for @ - 2nd byte to indicate SBF block
Definition at line 64 of file sbf_blocks.hpp.