DUNE: Uniform Navigational Environment  2024.09.0
Sensors::OS4000::Task Struct Reference

Public Member Functions

 Task (const std::string &name, Tasks::Context &ctx)
 
void onUpdateParameters (void)
 
bool onConnect () override
 
void onDisconnect () override
 
bool onSynchronize () override
 
void onInitializeDevice () override
 
int readString (void)
 
bool setParameter (const char *command, const char *label, int value)
 
void changeCalibrationState (CalibrationStates state)
 
void consume (const IMC::DevCalibrationControl *msg)
 
void calibrating (void)
 
void terminateCalibration (void)
 
bool onReadData () override
 

Public Attributes

SerialPort * m_uart
 
IMC::EulerAngles m_euler
 
IMC::MagneticField m_mag
 
IMC::Acceleration m_accel
 
IMC::Temperature m_temp
 
IMC::DevCalibrationState m_states [STA_MAX]
 
CalibrationStates m_state
 
int m_accumulator
 
char m_bfr [c_bfr_size]
 
double m_tstamp
 
Arguments m_args
 
Counter< double > m_wdog
 

Static Public Attributes

static const unsigned c_bfr_size
 

Constructor & Destructor Documentation

◆ Task()

Member Function Documentation

◆ calibrating()

void Sensors::OS4000::Task::calibrating ( void  )
inline

◆ changeCalibrationState()

void Sensors::OS4000::Task::changeCalibrationState ( CalibrationStates  state)
inline

Change calibration state.

Parameters
[in]statecalibration state.

◆ consume()

void Sensors::OS4000::Task::consume ( const IMC::DevCalibrationControl *  msg)
inline

◆ onConnect()

bool Sensors::OS4000::Task::onConnect ( void  )
inlineoverride

Try to connect to the device.

Returns
true if connection was established, false otherwise.

References Sensors::OS4000::Arguments::io_dev.

◆ onDisconnect()

void Sensors::OS4000::Task::onDisconnect ( void  )
inlineoverride

Disconnect from device.

◆ onInitializeDevice()

void Sensors::OS4000::Task::onInitializeDevice ( void  )
inlineoverride

Device may be initialized.

◆ onReadData()

bool Sensors::OS4000::Task::onReadData ( void  )
inlineoverride

Get data from device.

Returns
true if data was received, false otherwise.

References Sensors::OS4000::STA_ROTATE, and Sensors::OS4000::STA_WAIT_LEVEL.

◆ onSynchronize()

bool Sensors::OS4000::Task::onSynchronize ( void  )
inlineoverride

Synchronize with device.

References Sensors::OS4000::Arguments::data_rate, and Sensors::OS4000::STA_BOOT.

◆ onUpdateParameters()

void Sensors::OS4000::Task::onUpdateParameters ( void  )
inline

Update Task parameters.

References Sensors::OS4000::Arguments::data_tout.

◆ readString()

int Sensors::OS4000::Task::readString ( void  )
inline

Read a string from the serial port,.

Returns
amount of bytes actually read.

◆ setParameter()

bool Sensors::OS4000::Task::setParameter ( const char *  command,
const char *  label,
int  value 
)
inline

Define a given parameter in the device.

Parameters
[in]commandinput command.
[in]labellabel of the parameter.
[in]valuevalue of the parameter.
Returns
true if successful, false otherwise.

◆ terminateCalibration()

void Sensors::OS4000::Task::terminateCalibration ( void  )
inline

Member Data Documentation

◆ c_bfr_size

const unsigned Sensors::OS4000::Task::c_bfr_size
static

Internal read buffer.

◆ m_accel

IMC::Acceleration Sensors::OS4000::Task::m_accel

Acceleration message.

◆ m_accumulator

int Sensors::OS4000::Task::m_accumulator

Calibration characters accumulator.

◆ m_args

Arguments Sensors::OS4000::Task::m_args

Task arguments.

◆ m_bfr

char Sensors::OS4000::Task::m_bfr[c_bfr_size]

Internal read buffer.

◆ m_euler

IMC::EulerAngles Sensors::OS4000::Task::m_euler

Euler angles message.

◆ m_mag

IMC::MagneticField Sensors::OS4000::Task::m_mag

Magnetic field message.

◆ m_state

CalibrationStates Sensors::OS4000::Task::m_state

Calibration states.

◆ m_states

IMC::DevCalibrationState Sensors::OS4000::Task::m_states[STA_MAX]

Device Calibration State message.

◆ m_temp

IMC::Temperature Sensors::OS4000::Task::m_temp

Temperature.

◆ m_tstamp

double Sensors::OS4000::Task::m_tstamp

Read timestamp.

◆ m_uart

SerialPort* Sensors::OS4000::Task::m_uart

Serial port.

◆ m_wdog

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

Watchdog.

Collaboration diagram for Sensors::OS4000::Task:
Collaboration graph