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... | |
Macros | |
#define | MAX_NB_INMARSATCHANNELS 1 |
Inmarsat is a British satellite telecommunications company. More... | |
#define | MAX_NR_OF_SIGNALS_PER_SATELLITE 7 |
Using maximum value of MAX_NR_OF_SIGNALS_PER_SATELLITE for SBF definitions. More... | |
#define | MAXSB_CHANNELSATINFO (NR_OF_LOGICALCHANNELS + MAX_NB_INMARSATCHANNELS) |
Max number of bytes that ChannelSatInfo sub-block can consist of. More... | |
#define | MAXSB_CHANNELSTATEINFO (MAXSB_CHANNELSATINFO * MAXSB_NBRANTENNA) |
Max number of bytes that ChannelStateInfo sub-block can consist of. More... | |
#define | MAXSB_MEASEPOCH_T1 (NR_OF_LOGICALCHANNELS + MAX_NB_INMARSATCHANNELS) |
Max number of bytes that MeasEpochChannelType1 sub-block can consist of. More... | |
#define | MAXSB_MEASEPOCH_T2 ((MAXSB_MEASEPOCH_T1) * (((MAX_NR_OF_SIGNALS_PER_SATELLITE) * (NR_OF_ANTENNAS)) - 1)) |
Max number of bytes that MeasEpochChannelType2 sub-block can consist of. More... | |
#define | MAXSB_NBRANTENNA 4 |
Maximum number of antennas that mosaic etc. can handle. More... | |
#define | MEASEPOCH_DATA_LENGTH |
Max number of bytes that the data part of the MeasEpoch struct can consist of. More... | |
#define | NR_OF_ANTENNAS 3 |
Using maximum value of NR_OF_ANTENNAS for SBF definitions. More... | |
#define | NR_OF_LOGICALCHANNELS 80 |
Using maximum value of NR_OF_LOGICALCHANNELS for SBF definitions. More... | |
#define | SBF_CHANNELSTATUS_DATA_LENGTH |
Max number of bytes that the Data part of the ChannelStatus struct can consist of. More... | |
#define | SBF_EXTEVENTINSNAVCART_LENGTH SBF_EXTEVENTINSNAVCART_LENGTH_1 |
#define | SBF_EXTEVENTINSNAVCART_LENGTH_1 16 |
Max number of bytes that INSNavCart sub-block can consist of. More... | |
#define | SBF_EXTEVENTINSNAVGEOD_LENGTH SBF_EXTEVENTINSNAVGEOD_LENGTH_1 |
#define | SBF_EXTEVENTINSNAVGEOD_LENGTH_1 16 |
Max number of bytes that INSNavGeod sub-block can consist of. More... | |
#define | SBF_EXTSENSORMEAS_1_0_EXTSENSORMEAS_LENGTH 4 |
Max size for ExtSensorMeasSet_1 sub-block. More... | |
#define | SBF_EXTSENSORMEAS_1_EXTSENSORMEAS_LENGTH SBF_EXTSENSORMEAS_1_0_EXTSENSORMEAS_LENGTH |
#define | SBF_INSNAVCART_LENGTH SBF_INSNAVCART_LENGTH_1 |
#define | SBF_INSNAVCART_LENGTH_1 16 |
Max number of bytes that INSNavCart sub-block can consist of. More... | |
#define | SBF_INSNAVGEOD_LENGTH SBF_INSNAVGEOD_LENGTH_1 |
#define | SBF_INSNAVGEOD_LENGTH_1 16 |
Max number of bytes that INSNavGeod sub-block can consist of. 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 , 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) |
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 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 > | |
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 | 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.
#define MAX_NB_INMARSATCHANNELS 1 |
Inmarsat is a British satellite telecommunications company.
Definition at line 42 of file sbf_structs.hpp.
#define MAX_NR_OF_SIGNALS_PER_SATELLITE 7 |
Using maximum value of MAX_NR_OF_SIGNALS_PER_SATELLITE for SBF definitions.
Definition at line 46 of file sbf_structs.hpp.
#define MAXSB_CHANNELSATINFO (NR_OF_LOGICALCHANNELS + MAX_NB_INMARSATCHANNELS) |
Max number of bytes that ChannelSatInfo sub-block can consist of.
Definition at line 58 of file sbf_structs.hpp.
#define MAXSB_CHANNELSTATEINFO (MAXSB_CHANNELSATINFO * MAXSB_NBRANTENNA) |
Max number of bytes that ChannelStateInfo sub-block can consist of.
Definition at line 62 of file sbf_structs.hpp.
#define MAXSB_MEASEPOCH_T1 (NR_OF_LOGICALCHANNELS + MAX_NB_INMARSATCHANNELS) |
Max number of bytes that MeasEpochChannelType1 sub-block can consist of.
Definition at line 66 of file sbf_structs.hpp.
#define MAXSB_MEASEPOCH_T2 ((MAXSB_MEASEPOCH_T1) * (((MAX_NR_OF_SIGNALS_PER_SATELLITE) * (NR_OF_ANTENNAS)) - 1)) |
Max number of bytes that MeasEpochChannelType2 sub-block can consist of.
Definition at line 70 of file sbf_structs.hpp.
#define MAXSB_NBRANTENNA 4 |
Maximum number of antennas that mosaic etc. can handle.
Definition at line 54 of file sbf_structs.hpp.
#define MEASEPOCH_DATA_LENGTH |
Max number of bytes that the data part of the MeasEpoch struct can consist of.
Definition at line 96 of file sbf_structs.hpp.
#define NR_OF_ANTENNAS 3 |
Using maximum value of NR_OF_ANTENNAS for SBF definitions.
Definition at line 50 of file sbf_structs.hpp.
#define NR_OF_LOGICALCHANNELS 80 |
Using maximum value of NR_OF_LOGICALCHANNELS for SBF definitions.
Definition at line 38 of file sbf_structs.hpp.
#define SBF_CHANNELSTATUS_DATA_LENGTH |
Max number of bytes that the Data part of the ChannelStatus struct can consist of.
Definition at line 90 of file sbf_structs.hpp.
#define SBF_EXTEVENTINSNAVCART_LENGTH SBF_EXTEVENTINSNAVCART_LENGTH_1 |
Definition at line 108 of file sbf_structs.hpp.
#define SBF_EXTEVENTINSNAVCART_LENGTH_1 16 |
Max number of bytes that INSNavCart sub-block can consist of.
Definition at line 86 of file sbf_structs.hpp.
#define SBF_EXTEVENTINSNAVGEOD_LENGTH SBF_EXTEVENTINSNAVGEOD_LENGTH_1 |
Definition at line 109 of file sbf_structs.hpp.
#define SBF_EXTEVENTINSNAVGEOD_LENGTH_1 16 |
Max number of bytes that INSNavGeod sub-block can consist of.
Definition at line 82 of file sbf_structs.hpp.
#define SBF_EXTSENSORMEAS_1_0_EXTSENSORMEAS_LENGTH 4 |
Max size for ExtSensorMeasSet_1 sub-block.
Definition at line 102 of file sbf_structs.hpp.
#define SBF_EXTSENSORMEAS_1_EXTSENSORMEAS_LENGTH SBF_EXTSENSORMEAS_1_0_EXTSENSORMEAS_LENGTH |
Definition at line 107 of file sbf_structs.hpp.
#define SBF_INSNAVCART_LENGTH SBF_INSNAVCART_LENGTH_1 |
Definition at line 106 of file sbf_structs.hpp.
#define SBF_INSNAVCART_LENGTH_1 16 |
Max number of bytes that INSNavCart sub-block can consist of.
Definition at line 78 of file sbf_structs.hpp.
#define SBF_INSNAVGEOD_LENGTH SBF_INSNAVGEOD_LENGTH_1 |
Definition at line 110 of file sbf_structs.hpp.
#define SBF_INSNAVGEOD_LENGTH_1 16 |
Max number of bytes that INSNavGeod sub-block can consist of.
Definition at line 74 of 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 1237 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 885 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 842 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 437 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 482 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 467 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 512 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 | ||
) |
Qi based parser for the SBF block "ExtSensorMeas".
ExtSensorMeasParser
Definition at line 1505 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 1437 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 922 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 1292 of file sbf_structs.hpp.
bool MeasEpochChannelType1Parser | ( | ROSaicNodeBase * | node, |
It & | it, | ||
MeasEpochChannelType1Msg & | msg, | ||
uint8_t | sb1_length, | ||
uint8_t | sb2_length | ||
) |
Definition at line 604 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 585 of file sbf_structs.hpp.
bool MeasEpochParser | ( | ROSaicNodeBase * | node, |
It | it, | ||
It | itEnd, | ||
MeasEpochMsg & | msg | ||
) |
Definition at line 637 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 1066 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 1100 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 734 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 788 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 422 of file sbf_structs.hpp.
bool qiLittleEndianParser | ( | It & | it, |
Val & | val | ||
) |
Qi little endian parsers for numeric values.
qiLittleEndianParser
Definition at line 374 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 1202 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 677 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 1251 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 326 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 1134 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 1168 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 1473 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 291 of file sbf_structs.hpp.
|
static |
0x24 is ASCII for $ - 1st byte in each message
Definition at line 113 of file sbf_structs.hpp.
|
static |
0x40 is ASCII for @ - 2nd byte to indicate SBF block
Definition at line 115 of file sbf_structs.hpp.