|
imu_advanced_navigation_anpp
|
#include <vector>#include <cstdint>#include <algorithm>#include <stdexcept>#include <cstring>#include <map>#include <type_traits>#include <base/Timeout.hpp>#include <iodrivers_base/Exceptions.hpp>#include <imu_advanced_navigation_anpp/Constants.hpp>#include <imu_advanced_navigation_anpp/DeviceInformation.hpp>#include <imu_advanced_navigation_anpp/Exceptions.hpp>Go to the source code of this file.
Namespaces | |
| imu_advanced_navigation_anpp | |
| imu_advanced_navigation_anpp::protocol | |
Typedefs | |
| typedef std::map< uint8_t, uint32_t > | Periods |
Functions | |
| template<typename T , typename InputIterator > | |
| T | imu_advanced_navigation_anpp::protocol::read16 (InputIterator it) |
| template<typename T , typename InputIterator > | |
| T | imu_advanced_navigation_anpp::protocol::read32 (InputIterator it) |
| template<typename T , typename InputIterator > | |
| T | imu_advanced_navigation_anpp::protocol::read64 (InputIterator it) |
| template<typename T , typename Out > | |
| void | imu_advanced_navigation_anpp::protocol::write16 (Out out, T sample) |
| template<typename T , typename Out > | |
| void | imu_advanced_navigation_anpp::protocol::write32 (Out out, T sample) |
| template<typename T , typename Out > | |
| void | imu_advanced_navigation_anpp::protocol::write64 (Out out, T sample) |
| struct imu_advanced_navigation_anpp::protocol::Header | imu_advanced_navigation_anpp::protocol::__attribute__ ((packed)) |
| Header () | |
| Header (uint8_t packet_id, uint8_t const *begin, uint8_t const *end) | |
| size_t | getPacketLength () const |
| bool | isValid () const |
| bool | isPacketValid (uint8_t const *begin, uint8_t const *end) const |
| uint8_t | computeHeaderChecksum () const |
| uint16_t | imu_advanced_navigation_anpp::protocol::crc (uint8_t const *begin, uint8_t const *end) |
| bool | isMatching (Header const &header) const |
| bool | isSuccess () const |
| bool | isPacketValidationFailure () const |
| bool | isProtocolError () const |
| bool | isSystemError () const |
| bool | isNotReady () const |
| template<typename OutputIterator , typename InputIterator > | |
| OutputIterator | marshal (OutputIterator out, InputIterator begin, InputIterator end) const |
| template<typename OutputIterator > | |
| OutputIterator | marshal (OutputIterator out, uint8_t packet_id) const |
| template<typename OutputIterator > | |
| OutputIterator | marshal (OutputIterator out) const |
| template<typename OutputIterator > | |
| OutputIterator | marshal (OutputIterator out, uint8_t packet_id, uint32_t period) const |
| template<typename Packet , typename Driver > | |
| Header | imu_advanced_navigation_anpp::protocol::writePacket (Driver &driver, Packet const &packet) |
| template<typename Packet , typename Driver > | |
| Packet | imu_advanced_navigation_anpp::protocol::waitForPacket (Driver &driver, base::Time const &_timeout) |
| template<typename Driver > | |
| ACK_RESULTS | imu_advanced_navigation_anpp::protocol::waitForAck (Driver &driver, Header const &header, base::Time const &_timeout) |
| template<typename Driver > | |
| void | imu_advanced_navigation_anpp::protocol::validateAck (Driver &driver, Header const &header, base::Time const &_timeout) |
| template<typename Packet , typename Driver > | |
| Packet | imu_advanced_navigation_anpp::protocol::query (Driver &driver) |
| template<typename Driver > | |
| Header | imu_advanced_navigation_anpp::protocol::writePacketPeriod (Driver &driver, uint8_t packet_id, int period, bool clear_existing) |
| typedef std::map<uint8_t, uint32_t> Periods |
| uint8_t __attribute__::computeHeaderChecksum | ( | ) | const |
Compute the checksum of the header
| size_t __attribute__::getPacketLength | ( | ) | const |
The length of the whole packet (header + payload)
| __attribute__::Header | ( | ) |
Construct an uninitialized header
The header and payload checksums won't validate
| __attribute__::Header | ( | uint8_t | packet_id, |
| uint8_t const * | begin, | ||
| uint8_t const * | end | ||
| ) |
Initialize a header by filling all the fields based on data in the packet
| bool __attribute__::isMatching | ( | Header const & | header | ) | const |
Tests whether this acknowledgment matches the given packet header
| bool __attribute__::isNotReady | ( | ) | const |
True if this ack indicates that the system is not ready
| bool __attribute__::isPacketValid | ( | uint8_t const * | begin, |
| uint8_t const * | end | ||
| ) | const |
Check if the data in the header validates the packet data
| bool __attribute__::isPacketValidationFailure | ( | ) | const |
True if this acknowledge is a failure-to-validate-packet error
| bool __attribute__::isProtocolError | ( | ) | const |
True if this acknowledge indicates a protocol error on the driver side
Packet validation failures are not reported as they might be a communication error as well. Check against sent packets with isMatching to make the difference
| bool __attribute__::isSuccess | ( | ) | const |
True if this indicates a success
| bool __attribute__::isSystemError | ( | ) | const |
True if this acknowledge indicates a system error on the IMU side
| bool __attribute__::isValid | ( | ) | const |
Check if the data in the header validates the header checksum
| OutputIterator marshal | ( | OutputIterator | out, |
| InputIterator | begin, | ||
| InputIterator | end | ||
| ) | const |
| OutputIterator marshal | ( | OutputIterator | out | ) | const |
| OutputIterator __attribute__::marshal | ( | OutputIterator | out, |
| uint8_t | packet_id | ||
| ) | const |
| OutputIterator __attribute__::marshal | ( | OutputIterator | out, |
| uint8_t | packet_id, | ||
| uint32_t | period | ||
| ) | const |
| float accelerometers_xyz[3] |
| uint8_t acked_packet_id |
| uint8_t acked_payload_checksum_lsb |
| uint8_t acked_payload_checksum_msb |
| uint8_t action |
Action as one of MAGNETIC_CALIBRATION_ACTIONS
| float angular_velocity[3] |
| uint32_t auxiliary_rs232 |
| uint16_t azimuth |
Azimuth in degrees
| uint8_t beidou_satellite_count |
| float body_acceleration_xyz[3] |
| uint8_t boot_mode |
| uint8_t clear_existing |
| float current_rotation_angle |
| float dcm[9] |
| uint8_t elevation |
Elevation in degrees
| uint8_t enabled_atmospheric_altitude |
| uint8_t enabled_internal_gnss |
| uint8_t enabled_motion_analysis |
| uint8_t enabled_reversing_detection |
| uint8_t enabled_velocity_heading |
| uint8_t error |
| float external_data_offset_xyz[3] |
| uint16_t filter_status |
Bitfield of FILTER_STATUS
| uint16_t flags |
Status as one of NORTH_SEEKING_INITIALIZATION_FLAGS
| uint8_t frequencies |
Satellite frequencies
Bitfield represented by the SATELLITE_FREQUENCIES enum
| float g |
| uint8_t galileo_satellite_count |
| uint8_t glonass_satellite_count |
| float gnss_antenna_offset_xyz[3] |
| uint32_t gpio |
| uint8_t gps_satellite_count |
| float gyroscope_bias_solution_error |
| float gyroscope_bias_solution_xyz[3] |
| float gyroscopes_xyz[3] |
| float hard_iron_bias_xyz[3] |
| float hdop |
| uint8_t header_checksum |
Longitudinal redundancy check for the header
LRC = ((packet_id + packet_length + crc[0] + crc[1])^0xFF) + 1
| float im |
| float imu_temperature_C |
| double lat_lon_z |
| float lat_lon_z_stddev |
| float magnetometers_xyz[3] |
| uint32_t microseconds |
| float ned |
| float odometer_offset_xyz[3] |
| uint8_t packet_id |
| uint8_t payload_checksum_lsb |
Least significant byte of a crc-CCITT with starting value 0xFFFF calculated over the packet data only
| uint8_t payload_checksum_msb |
Most significant byte of a crc-CCITT with starting value 0xFFFF calculated over the packet data only
| uint8_t payload_length |
| uint16_t period |
| uint8_t permanent |
| float pitch |
| float pitch_stddev |
| float pressure |
| float pressure_temperature_C |
| uint32_t primary_port |
| uint8_t prn |
The satellite ID number
| uint8_t progress |
| uint32_t reserved = 0 |
| uint8_t reserved_0 = 0 |
| uint8_t reserved_1[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 } |
| uint8_t result |
| float rpy |
| uint8_t sbas_satellite_count |
| uint32_t seconds |
| uint8_t snr |
Signal to noise ratio in dB
| float soft_iron_transformation[9] |
| uint8_t status |
Bitfield described by RAW_GNSS_STATUS
Status as one of MAGNETIC_CALIBRATION_STATUS
| uint8_t system |
The satellite system as represented by SATELLITE_SYSTEM
| uint16_t system_status |
Bitfield of SYSTEM_STATUS
| uint32_t unix_time_microseconds |
| uint32_t unix_time_seconds |
| uint8_t utc_synchronization |
| float vdop |
| uint8_t vehicle_type |
The vehicle type to tune the filter dynamics
See VEHICLE_TYPES
| float velocity_ned |
| uint8_t verification_sequence = { 0x1C, 0x9E, 0x42, 0x85 } |
| float xyz |
| float yaw |
| float yaw_stddev |
1.8.11