DUNE: Uniform Navigational Environment  2022.04.1
Sensors::LIMU::Task Struct Reference

Public Member Functions

 Task (const std::string &name, Tasks::Context &ctx)
 
void onUpdateParameters (void)
 
void onResourceAcquisition (void)
 
void onResourceRelease (void)
 
void onResourceInitialization (void)
 
void consume (const IMC::MagneticField *msg)
 
void setOutputFrequency (uint8_t frequency)
 
void getHardIronFactors (void)
 
void setHardIronFactors (void)
 
void decodeOutputData (const UCTK::Frame &frame)
 
void decodeOutputRaw (const UCTK::Frame &frame)
 
void decode (const UCTK::Frame &frame)
 
void readInput (void)
 
uint8_t extractRotatedVector (const uint8_t *ptr, Matrix &vector)
 
void reportEntityState (void)
 
void onMain (void)
 

Public Attributes

IMC::AngularVelocity m_ang_vel
 
IMC::Acceleration m_accel
 
IMC::EulerAnglesDelta m_delt_ang
 
IMC::VelocityDelta m_delt_vel
 
IMC::EulerAngles m_euler
 
IMC::MagneticField m_magn
 
IMC::Temperature m_temp
 
SerialPort * m_uart
 
UCTK::Interface * m_ctl
 
UCTK::Parser m_parser
 
UCTK::Frame m_frame
 
uint8_t m_buffer [128]
 
unsigned m_calib_eid
 
Math::Matrix m_rotation
 
Counter< double > m_wdog
 
Counter< double > m_state_timer
 
ErrorCounts m_err_counts
 
double m_hard_iron [c_axes_count]
 
size_t m_sample_count
 
size_t m_faults_count
 
size_t m_timeout_count
 
Arguments m_args
 

Constructor & Destructor Documentation

◆ Task()

Member Function Documentation

◆ consume()

void Sensors::LIMU::Task::consume ( const IMC::MagneticField *  msg)
inline

◆ decode()

void Sensors::LIMU::Task::decode ( const UCTK::Frame &  frame)
inline

Decode data frame.

Parameters
[in]framedata frame.

References Sensors::LIMU::PKT_ID_OUTPUT_DATA, and Sensors::LIMU::PKT_ID_OUTPUT_RAW.

◆ decodeOutputData()

void Sensors::LIMU::Task::decodeOutputData ( const UCTK::Frame &  frame)
inline

◆ decodeOutputRaw()

void Sensors::LIMU::Task::decodeOutputRaw ( const UCTK::Frame &  frame)
inline

Decode output raw data.

Parameters
[in]frameraw data.

◆ extractRotatedVector()

uint8_t Sensors::LIMU::Task::extractRotatedVector ( const uint8_t *  ptr,
Matrix vector 
)
inline

◆ getHardIronFactors()

void Sensors::LIMU::Task::getHardIronFactors ( void  )
inline

Get current Hard-Iron calibration parameters.

References Sensors::LIMU::PKT_ID_HARD_IRON.

◆ onMain()

void Sensors::LIMU::Task::onMain ( void  )
inline

◆ onResourceAcquisition()

void Sensors::LIMU::Task::onResourceAcquisition ( void  )
inline

◆ onResourceInitialization()

void Sensors::LIMU::Task::onResourceInitialization ( void  )
inline

Initialize resources.

References Sensors::LIMU::Arguments::output_frq.

◆ onResourceRelease()

void Sensors::LIMU::Task::onResourceRelease ( void  )
inline

Release resources.

◆ onUpdateParameters()

◆ readInput()

void Sensors::LIMU::Task::readInput ( void  )
inline

Read input from sensor.

◆ reportEntityState()

void Sensors::LIMU::Task::reportEntityState ( void  )
inline

◆ setHardIronFactors()

void Sensors::LIMU::Task::setHardIronFactors ( void  )
inline

Set Hard-Iron calibration parameters.

References Sensors::LIMU::Arguments::hard_iron, and Sensors::LIMU::PKT_ID_HARD_IRON.

◆ setOutputFrequency()

void Sensors::LIMU::Task::setOutputFrequency ( uint8_t  frequency)
inline

Define sensor output frequency.

Parameters
[in]frequencydesired frequency.
Returns
true if successful, false otherwise.

References Sensors::LIMU::PKT_ID_OUTPUT_CONF, and Sensors::LIMU::Arguments::raw_data.

Member Data Documentation

◆ m_accel

IMC::Acceleration Sensors::LIMU::Task::m_accel

Acceleration.

◆ m_ang_vel

IMC::AngularVelocity Sensors::LIMU::Task::m_ang_vel

Angular velocity.

◆ m_args

Arguments Sensors::LIMU::Task::m_args

Task arguments.

◆ m_buffer

uint8_t Sensors::LIMU::Task::m_buffer[128]

Scratch buffer.

◆ m_calib_eid

unsigned Sensors::LIMU::Task::m_calib_eid

Compass Calibration maneuver entity id.

◆ m_ctl

UCTK::Interface* Sensors::LIMU::Task::m_ctl

Control Interface.

◆ m_delt_ang

IMC::EulerAnglesDelta Sensors::LIMU::Task::m_delt_ang

Delta angles.

◆ m_delt_vel

IMC::VelocityDelta Sensors::LIMU::Task::m_delt_vel

Delta velocity.

◆ m_err_counts

ErrorCounts Sensors::LIMU::Task::m_err_counts

Error counts.

◆ m_euler

IMC::EulerAngles Sensors::LIMU::Task::m_euler

Euler Angles.

◆ m_faults_count

size_t Sensors::LIMU::Task::m_faults_count

Faults count.

◆ m_frame

UCTK::Frame Sensors::LIMU::Task::m_frame

Scratch frame.

◆ m_hard_iron

double Sensors::LIMU::Task::m_hard_iron[c_axes_count]

Rotated hard-iron calibration parameters.

◆ m_magn

IMC::MagneticField Sensors::LIMU::Task::m_magn

Magnetic Field.

◆ m_parser

UCTK::Parser Sensors::LIMU::Task::m_parser

UCTK parser.

◆ m_rotation

Math::Matrix Sensors::LIMU::Task::m_rotation

Rotation Matrix to correct mounting position.

◆ m_sample_count

size_t Sensors::LIMU::Task::m_sample_count

Sample count.

◆ m_state_timer

Counter<double> Sensors::LIMU::Task::m_state_timer

Entity state timer.

◆ m_temp

IMC::Temperature Sensors::LIMU::Task::m_temp

Temperature.

◆ m_timeout_count

size_t Sensors::LIMU::Task::m_timeout_count

Timeout count.

◆ m_uart

SerialPort* Sensors::LIMU::Task::m_uart

Serial port device.

◆ m_wdog

Counter<double> Sensors::LIMU::Task::m_wdog

Watchdog.

Collaboration diagram for Sensors::LIMU::Task:
Collaboration graph