Declares and defines structs into which SBF blocks are unpacked then shipped to handler functions. More...
#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... | |
class | DOP |
Struct for the SBF block "DOP". More... | |
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) |
template<typename It > | |
bool | BaseVectorGeodParser (ROSaicNodeBase *node, It it, It itEnd, BaseVectorGeodMsg &msg) |
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 | 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) |
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) |
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 > | |
bool | qiCharsToStringParser (It &it, std::string &val, std::size_t num) |
Qi parser for char array to string. More... | |
template<typename It , typename Val > | |
bool | 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 T > | |
void | setDoNotUse (T &s) |
Sets scalar to Do-Not-Use value -2e10. More... | |
template<typename T > | |
bool | validValue (T s) |
Check if value is not set to Do-Not-Use -2e10. 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_BYTE_1 = 0x24 |
0x24 is ASCII for $ - 1st byte in each message More... | |
static const uint8_t | SBF_SYNC_BYTE_2 = 0x40 |
0x40 is ASCII for @ - 2nd byte to indicate SBF block More... | |
Declares and defines structs into which SBF blocks are unpacked then shipped to handler functions.
Definition in file sbf_structs.hpp.
void AgcStateParser | ( | It | it, |
AgcState & | msg, | ||
uint8_t | sb_length | ||
) |
Struct for the SBF sub-block "AGCState".
AgcStateParser
Definition at line 1349 of file sbf_structs.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 867 of file sbf_structs.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 822 of file sbf_structs.hpp.
bool BaseVectorCartParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
BaseVectorCartMsg & | msg | ||
) |
Definition at line 931 of file sbf_structs.hpp.
bool BaseVectorGeodParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
BaseVectorGeodMsg & | msg | ||
) |
Definition at line 993 of file sbf_structs.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 372 of file sbf_structs.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 417 of file sbf_structs.hpp.
void ChannelStateInfoParser | ( | It & | it, |
ChannelStateInfo & | msg, | ||
uint8_t | sb2_length | ||
) |
Qi based parser for the SBF sub-block "ChannelStateInfo".
ChannelStateInfoParser
Definition at line 402 of file sbf_structs.hpp.
bool ChannelStatusParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
ChannelStatus & | msg | ||
) |
Qi based parser for the SBF block "ChannelStatus".
ChannelStatusParser
Definition at line 449 of file sbf_structs.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 1648 of file sbf_structs.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 1576 of file sbf_structs.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 1030 of file sbf_structs.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 1437 of file sbf_structs.hpp.
bool MeasEpochChannelType1Parser | ( | ROSaicNodeBase * | node, |
It & | it, | ||
MeasEpochChannelType1Msg & | msg, | ||
uint8_t | sb1_length, | ||
uint8_t | sb2_length | ||
) |
Definition at line 545 of file sbf_structs.hpp.
void MeasEpochChannelType2Parser | ( | It & | it, |
MeasEpochChannelType2Msg & | msg, | ||
uint8_t | sb2_length | ||
) |
Qi based parser for the SBF sub-block "MeasEpochChannelType2".
MeasEpochChannelType2Parser
Definition at line 525 of file sbf_structs.hpp.
bool MeasEpochParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
MeasEpochMsg & | msg | ||
) |
Definition at line 581 of file sbf_structs.hpp.
bool PosCovCartesianParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
PosCovCartesianMsg & | msg | ||
) |
Qi based parser for the SBF block "PosCovCartesian".
PosCovCartesianParser
Definition at line 1168 of file sbf_structs.hpp.
bool PosCovGeodeticParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
PosCovGeodeticMsg & | msg | ||
) |
Qi based parser for the SBF block "PosCovGeodetic".
PosCovGeodeticParser
Definition at line 1204 of file sbf_structs.hpp.
bool PVTCartesianParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
PVTCartesianMsg & | msg | ||
) |
Qi based parser for the SBF block "PVTCartesian".
PVTCartesianParser
Definition at line 712 of file sbf_structs.hpp.
bool PVTGeodeticParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
PVTGeodeticMsg & | msg | ||
) |
Qi based parser for the SBF block "PVTGeodetic".
PVTGeodeticParser
Definition at line 767 of file sbf_structs.hpp.
bool qiCharsToStringParser | ( | It & | it, |
std::string & | val, | ||
std::size_t | num | ||
) |
Qi parser for char array to string.
qiCharsToStringParser
Definition at line 357 of file sbf_structs.hpp.
bool qiLittleEndianParser | ( | It & | it, |
Val & | val | ||
) |
Qi little endian parsers for numeric values.
qiLittleEndianParser
Definition at line 316 of file sbf_structs.hpp.
bool QualityIndParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
QualityInd & | msg | ||
) |
Qi based parser for the SBF block "QualityInd".
QualityIndParser
Definition at line 1312 of file sbf_structs.hpp.
bool ReceiverSetupParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
ReceiverSetup & | msg | ||
) |
Qi based parser for the SBF block "ReceiverSetup".
ReceiverSetupParser
Definition at line 624 of file sbf_structs.hpp.
bool ReceiverStatusParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
ReceiverStatus & | msg | ||
) |
Struct for the SBF block "ReceiverStatus".
ReceiverStatusParser
Definition at line 1363 of file sbf_structs.hpp.
bool ReceiverTimeParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
ReceiverTimeMsg & | msg | ||
) |
Struct for the SBF block "ReceiverTime".
ReceiverTimeParser
Definition at line 1406 of file sbf_structs.hpp.
bool ReceiverTimesParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
ReceiverTimeMsg & | msg | ||
) |
Struct for the SBF block "ReceiverTime".
ReceiverTimeParser
Definition at line 681 of file sbf_structs.hpp.
void setDoNotUse | ( | T & | s | ) |
bool validValue | ( | T | s | ) |
Check if value is not set to Do-Not-Use -2e10.
validValue
Definition at line 274 of file sbf_structs.hpp.
void VectorInfoCartParser | ( | It & | it, |
VectorInfoCartMsg & | msg, | ||
uint8_t | sb_length | ||
) |
Qi based parser for the SBF sub-block "VectorInfoCart".
VectorInfoCartParser
Definition at line 906 of file sbf_structs.hpp.
void VectorInfoGeodParser | ( | It & | it, |
VectorInfoGeodMsg & | msg, | ||
uint8_t | sb_length | ||
) |
Qi based parser for the SBF sub-block "VectorInfoGeod".
VectorInfoGeodParser
Definition at line 968 of file sbf_structs.hpp.
bool VelCovCartesianParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
VelCovCartesianMsg & | msg | ||
) |
Qi based parser for the SBF block "VelCovCartesian".
VelCovCartesianParser
Definition at line 1240 of file sbf_structs.hpp.
bool VelCovGeodeticParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
VelCovGeodeticMsg & | msg | ||
) |
Qi based parser for the SBF block "VelCovGeodetic".
VelCovGeodeticParser
Definition at line 1276 of file sbf_structs.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 1614 of file sbf_structs.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 239 of file sbf_structs.hpp.
|
static |
Inmarsat is a British satellite telecommunications company.
Definition at line 38 of file sbf_structs.hpp.
|
static |
Using maximum value of MAX_NR_OF_SIGNALS_PER_SATELLITE for SBF definitions.
Definition at line 40 of file sbf_structs.hpp.
|
static |
Max number of bytes that ChannelSatInfo sub-block can consist of.
Definition at line 46 of file sbf_structs.hpp.
|
static |
Max number of bytes that ChannelStateInfo sub-block can consist of.
Definition at line 49 of file sbf_structs.hpp.
|
static |
Max number of bytes that MeasEpochChannelType1 sub-block can consist of.
Definition at line 52 of file sbf_structs.hpp.
|
static |
Max number of bytes that MeasEpochChannelType2 sub-block can consist of.
Definition at line 55 of file sbf_structs.hpp.
|
static |
Maximum number of antennas that mosaic etc. can handle.
Definition at line 44 of file sbf_structs.hpp.
|
static |
Max number of vector info sub-blocks.
Definition at line 59 of file sbf_structs.hpp.
|
static |
Using maximum value of NR_OF_ANTENNAS for SBF definitions.
Definition at line 42 of file sbf_structs.hpp.
|
static |
Using maximum value of NR_OF_LOGICALCHANNELS for SBF definitions.
Definition at line 36 of file sbf_structs.hpp.
|
static |
0x24 is ASCII for $ - 1st byte in each message
Definition at line 62 of file sbf_structs.hpp.
|
static |
0x40 is ASCII for @ - 2nd byte to indicate SBF block
Definition at line 64 of file sbf_structs.hpp.