|
void | assembleAimAndDiagnosticArray () |
| "Callback" function when constructing RFStatus DiagnosticArrayMsg messages More...
|
|
void | assembleDiagnosticArray (const std::shared_ptr< Telegram > &telegram) |
| "Callback" function when constructing DiagnosticArrayMsg messages More...
|
|
void | assembleGpsFix () |
| "Callback" function when constructing GPSFix messages More...
|
|
template<typename T > |
void | assembleHeader (const std::string &frameId, const std::shared_ptr< Telegram > &telegram, T &msg) const |
| Header assembling. More...
|
|
void | assembleImu () |
| "Callback" function when constructing ImuMsg messages More...
|
|
void | assembleLocalizationEcef () |
| "Callback" function when constructing LocalizationMsg messages in ECEF More...
|
|
void | assembleLocalizationMsgTwist (double roll, double pitch, double yaw, LocalizationMsg &msg) const |
| function to fill twist part of LocalizationMsg More...
|
|
void | assembleLocalizationUtm () |
| "Callback" function when constructing LocalizationMsg messages in UTM More...
|
|
void | assembleNavSatFix () |
| "Callback" function when constructing NavSatFix messages More...
|
|
void | assembleOsnmaDiagnosticArray () |
| "Callback" function when constructing OSNMA DiagnosticArrayMsg messages More...
|
|
void | assemblePoseWithCovarianceStamped () |
| "Callback" function when constructing PoseWithCovarianceStamped messages More...
|
|
void | assembleTimeReference (const std::shared_ptr< Telegram > &telegram) |
| function when constructing TimeReferenceMsg messages More...
|
|
void | assembleTwist (bool fromIns=false) |
| "Callback" function when constructing TwistWithCovarianceStampedMsg messages More...
|
|
template<typename M > |
void | publish (const std::string &topic, const M &msg) |
| Publishing function. More...
|
|
void | publishTf (const LocalizationMsg &msg) |
| Publishing function. More...
|
|
Timestamp | timestampSBF (const std::vector< uint8_t > &message) const |
| Calculates the timestamp, in the Unix Epoch time format This is either done using the TOW as transmitted with the SBF block (if "use_gnss" is true), or using the current time. More...
|
|
Timestamp | timestampSBF (uint32_t tow, uint16_t wnc) const |
| Calculates the timestamp, in the Unix Epoch time format This is either done using the TOW as transmitted with the SBF block (if "use_gnss" is true), or using the current time. More...
|
|
void | wait (Timestamp time_obj) |
| Waits according to time when reading from file. More...
|
|
|
int32_t | current_leap_seconds_ = -128 |
| Current leap seconds as received, do not use value is -128. More...
|
|
std::shared_ptr< std::string > | fixedUtmZone_ |
| Fixed UTM zone. More...
|
|
AttCovEulerMsg | last_attcoveuler_ |
| Since GPSFix etc. need AttCovEuler, incoming AttCovEuler blocks need to be stored. More...
|
|
AttEulerMsg | last_atteuler_ |
| Since GPSFix etc. need AttEuler, incoming AttEuler blocks need to be stored. More...
|
|
ChannelStatus | last_channelstatus_ |
| Since GPSFix needs ChannelStatus, incoming ChannelStatus blocks need to be stored. More...
|
|
Dop | last_dop_ |
| Since GPSFix needs DOP, incoming DOP blocks need to be stored. More...
|
|
ExtSensorMeasMsg | last_extsensmeas_ |
| Since Imu needs ExtSensorMeas, incoming ExtSensorMeas blocks need to be stored. More...
|
|
GalAuthStatusMsg | last_gal_auth_status_ |
| Stores incoming GALAuthStatus block. More...
|
|
INSNavCartMsg | last_insnavcart_ |
| Since LoclaizationEcef needs INSNavCart, incoming INSNavCart blocks need to be stored. More...
|
|
INSNavGeodMsg | last_insnavgeod_ |
| Since NavSatFix, GPSFix, Imu and Pose need INSNavGeod, incoming INSNavGeod blocks need to be stored. More...
|
|
MeasEpochMsg | last_measepoch_ |
| Since GPSFix needs MeasEpoch (for SNRs), incoming MeasEpoch blocks need to be stored. More...
|
|
PosCovGeodeticMsg | last_poscovgeodetic_ |
| Since NavSatFix etc. need PosCovGeodetic, incoming PosCovGeodetic blocks need to be stored. More...
|
|
uint64_t | last_pvt_latency_ = 0 |
| Last reported PVT processing latency. More...
|
|
PVTGeodeticMsg | last_pvtgeodetic_ |
| Since NavSatFix etc. need PVTGeodetic, incoming PVTGeodetic blocks need to be stored. More...
|
|
QualityInd | last_qualityind_ |
| Since DiagnosticArray needs QualityInd, incoming QualityInd blocks need to be stored. More...
|
|
ReceiverSetup | last_receiversetup_ |
| Since DiagnosticArray needs ReceiverSetup, incoming ReceiverSetup blocks need to be stored. More...
|
|
ReceiverStatus | last_receiverstatus_ |
| Since DiagnosticArray needs ReceiverStatus, incoming ReceiverStatus blocks need to be stored. More...
|
|
RfStatusMsg | last_rf_status_ |
| Stores incoming RFStatus block. More...
|
|
VelCovGeodeticMsg | last_velcovgeodetic_ |
| Since GPSFix needs VelCovGeodetic, incoming VelCovGeodetic blocks need to be stored. More...
|
|
std::unordered_map< std::string, uint8_t > | nmeaMap_ |
| Map of NMEA messgae IDs and uint8_t. More...
|
|
ROSaicNodeBase * | node_ |
| Pointer to the node. More...
|
|
bool | osnma_info_available_ = false |
| Wether OSNMA info has been received. More...
|
|
const Settings * | settings_ |
| Pointer to settings struct. More...
|
|
Timestamp | unix_time_ |
|
Can search buffer for messages, read/parse them, and so on.
Definition at line 138 of file message_handler.hpp.
void io::MessageHandler::assembleGpsFix |
( |
| ) |
|
|
private |
"Callback" function when constructing GPSFix messages
Note that the field "dip" denotes the local magnetic inclination in degrees (positive when the magnetic field points downwards (into the Earth)). This quantity cannot be calculated by most Septentrio receivers. We assume that for the ROS field "err_time", we are requested to provide the 2 sigma uncertainty on the clock bias estimate in square meters, not the clock drift estimate (latter would be "2*std::sqrt(last_velcovgeodetic_.Cov_DtDt)"). The "err_track" entry is calculated via the Gaussian error propagation formula from the eastward and the northward velocities. For the formula's usage we have to assume that the eastward and the northward velocities are independent variables. Note that elevations and azimuths of visible satellites are taken from the ChannelStatus block, which provides 1 degree precision, while the SatVisibility block could provide hundredths of degrees precision. Change if imperative for your application... Definition of "visible satellite" adopted here: We define a visible satellite as being !up to! "in sync" mode with the receiver, which corresponds to last_measepoch_.N (signal-to-noise ratios are thereby available for these), though not last_channelstatus_.N, which also includes those "in search". In case certain values appear unphysical, please consult the firmware, since those most likely refer to Do-Not-Use values.
Definition at line 1590 of file message_handler.cpp.
void io::MessageHandler::assembleNavSatFix |
( |
| ) |
|
|
private |
"Callback" function when constructing NavSatFix messages
The position_covariance array is populated in row-major order, where the basis of the corresponding matrix is ENU (so Cov_lonlon is in location 11 of the matrix). The B2b signal type of BeiDou is not checked for usage, since the SignalInfo field of the PVTGeodetic block does not disclose it. For that, one would need to go to the ObsInfo field of the MeasEpochChannelType1 sub-block.
Definition at line 1378 of file message_handler.cpp.
Timestamp io::MessageHandler::timestampSBF |
( |
uint32_t |
tow, |
|
|
uint16_t |
wnc |
|
) |
| const |
|
private |
Calculates the timestamp, in the Unix Epoch time format This is either done using the TOW as transmitted with the SBF block (if "use_gnss" is true), or using the current time.
- Parameters
-
[in] | tow | (Time of Week) Number of milliseconds that elapsed since the beginning of the current GPS week as transmitted by the SBF block |
[in] | wnc | (Week Number Counter) counts the number of complete weeks elapsed since January 6, 1980 |
- Returns
- Timestamp object containing seconds and nanoseconds since last epoch
If the current time shall be employed, it is calculated via the time(NULL) function found in the <ctime> library At the time of writing the code (2020), the GPS time was ahead of UTC time by 18 (leap) seconds. Adapt the settings_->leap_seconds ROSaic parameter accordingly as soon as the next leap second is inserted into the UTC time.
Definition at line 2121 of file message_handler.cpp.