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

Detailed Description

Task.

Public Member Functions

 Task (const std::string &name, Tasks::Context &ctx)
 
void onUpdateParameters (void)
 
void initializeSonarData (unsigned data_size)
 
bool onConnect () override
 
void onDisconnect () override
 
void onInitializeDevice () override
 
bool enableLogControl (void)
 
bool discardLoggingControl (const IMC::LoggingControl *msg) override
 
void onOpenLog (const DUNE::FileSystem::Path &path) override
 
void onCloseLog () override
 
void onEstimatedState (const IMC::EstimatedState &msg)
 
void onSoundSpeed (double value) override
 
unsigned getIndex (unsigned value, const unsigned *table, unsigned table_size)
 
void setRange (unsigned value)
 
void setStartGain (unsigned value)
 
void setSwitchDelay (unsigned value)
 
void setAbsorption (unsigned value)
 
void setDataPoints (unsigned value)
 
void setAutoMode (bool auto_mode)
 
void setNadirAngle (float angle)
 
void setAutoGainValue (unsigned value)
 
bool ping (unsigned data_point)
 
void sendExternalControl (Address addr, unsigned port)
 
bool getEcho (void)
 
void writeToFile (void)
 
void update (void)
 
void checkAltitude (void)
 
bool request (void)
 
void process (void)
 
void checkRange (void)
 
bool onReadData () override
 

Public Attributes

TCPSocket * m_tcp
 
UDPSocket * m_udp
 
Frame837m_frame837
 
Frame83Pm_frame83P
 
IMC::SonarData * m_data
 
ExternalControlm_ec
 
uint8_t m_sdata [c_sdata_size]
 
uint8_t m_rdata_hdr [c_rdata_hdr_size]
 
uint8_t m_rdata_ftr [c_rdata_ftr_size]
 
IMC::EstimatedState m_estate
 
std::ofstream m_log_file
 
Path m_log_path
 
Counter< double > m_range_counter
 
Time::Counter< float > m_wdog
 
Arguments m_args
 

Constructor & Destructor Documentation

◆ Task()

Member Function Documentation

◆ checkAltitude()

void Sensors::Imagenex837B::Task::checkAltitude ( void  )
inline

◆ checkRange()

void Sensors::Imagenex837B::Task::checkRange ( void  )
inline

Check sonar range.

References Sensors::Imagenex837B::Arguments::mod.

◆ discardLoggingControl()

bool Sensors::Imagenex837B::Task::discardLoggingControl ( const IMC::LoggingControl *  msg)
inlineoverride

Test if the logging control message should be discarded.

Parameters
[in]msglogging control message.
Returns
true to discard message, false otherwise.

◆ enableLogControl()

bool Sensors::Imagenex837B::Task::enableLogControl ( void  )
inline

Enable log control.

◆ getEcho()

◆ getIndex()

unsigned Sensors::Imagenex837B::Task::getIndex ( unsigned  value,
const unsigned *  table,
unsigned  table_size 
)
inline

Get index from table according with given value.

Parameters
[in]valuevalue to be checked in the table.
[in]tablevector with parameters.
[in]table_sizesize of the vector.
Returns
index of the vector.

◆ initializeSonarData()

void Sensors::Imagenex837B::Task::initializeSonarData ( unsigned  data_size)
inline

Initialize IMC sonar data holder.

◆ onCloseLog()

void Sensors::Imagenex837B::Task::onCloseLog ( void  )
inlineoverride

Close log file.

◆ onConnect()

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

Try to connect to the device.

Returns
true if connection was established, false otherwise.

References Sensors::Imagenex837B::Arguments::io_dev.

◆ onDisconnect()

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

Disconnect from device.

◆ onEstimatedState()

void Sensors::Imagenex837B::Task::onEstimatedState ( const IMC::EstimatedState &  msg)
inline

◆ onInitializeDevice()

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

Initialize device.

◆ onOpenLog()

void Sensors::Imagenex837B::Task::onOpenLog ( const DUNE::FileSystem::Path path)
inlineoverride

Open a log file to hold 837 or 83P files.

Parameters
[in]pathpath to log file.

References Sensors::Imagenex837B::Arguments::file_name.

◆ onReadData()

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

Get data from device.

Returns
true if data was received, false otherwise.

◆ onSoundSpeed()

void Sensors::Imagenex837B::Task::onSoundSpeed ( double  value)
inlineoverride

◆ onUpdateParameters()

◆ ping()

bool Sensors::Imagenex837B::Task::ping ( unsigned  data_point)
inline

Request device to ping.

Parameters
[in]data_pointdata index.

References Sensors::Imagenex837B::Frame837::getMessageData(), and Sensors::Imagenex837B::SD_PACKET_NUM.

◆ process()

void Sensors::Imagenex837B::Task::process ( void  )
inline

Process return data.

◆ request()

bool Sensors::Imagenex837B::Task::request ( void  )
inline

Request sonar data.

Returns
true if return is successful, false otherwise.

References Sensors::Imagenex837B::Arguments::data_points.

◆ sendExternalControl()

void Sensors::Imagenex837B::Task::sendExternalControl ( Address  addr,
unsigned  port 
)
inline

◆ setAbsorption()

void Sensors::Imagenex837B::Task::setAbsorption ( unsigned  value)
inline

Define switch command data absorption value.

Parameters
[in]valueabsorption value.

References Sensors::Imagenex837B::SD_ABSORPTION.

◆ setAutoGainValue()

void Sensors::Imagenex837B::Task::setAutoGainValue ( unsigned  value)
inline

Define switch command data auto gain threshold.

Parameters
[in]valueauto gain threshold.

References Sensors::Imagenex837B::SD_AGC_THRESHOLD.

◆ setAutoMode()

void Sensors::Imagenex837B::Task::setAutoMode ( bool  auto_mode)
inline

Define switch command data auto mode.

References Sensors::Imagenex837B::SD_RUN_MODE.

◆ setDataPoints()

void Sensors::Imagenex837B::Task::setDataPoints ( unsigned  value)
inline

Define switch command data number of data points.

Parameters
[in]valuenumber of data points.

References Sensors::Imagenex837B::SD_DATA_POINTS, and Sensors::Imagenex837B::Frame837::setExtendedDataPoints().

◆ setNadirAngle()

void Sensors::Imagenex837B::Task::setNadirAngle ( float  angle)
inline

◆ setRange()

void Sensors::Imagenex837B::Task::setRange ( unsigned  value)
inline

◆ setStartGain()

void Sensors::Imagenex837B::Task::setStartGain ( unsigned  value)
inline

Define switch command data start gain.

Parameters
[in]valuestart gain.

References Sensors::Imagenex837B::SD_START_GAIN, Sensors::Imagenex837B::ExternalControl::setGain(), and Sensors::Imagenex837B::Frame837::setStartGain().

◆ setSwitchDelay()

void Sensors::Imagenex837B::Task::setSwitchDelay ( unsigned  value)
inline

Define switch command data switch delay.

Parameters
[in]valueswitch delay.

References Sensors::Imagenex837B::SD_SWITCH_DELAY.

◆ update()

◆ writeToFile()

Member Data Documentation

◆ m_args

Arguments Sensors::Imagenex837B::Task::m_args

Configuration parameters.

◆ m_data

IMC::SonarData* Sensors::Imagenex837B::Task::m_data

Sonar Return Data.

◆ m_ec

ExternalControl* Sensors::Imagenex837B::Task::m_ec

External Control frame.

◆ m_estate

IMC::EstimatedState Sensors::Imagenex837B::Task::m_estate

Estimated state.

◆ m_frame837

Frame837* Sensors::Imagenex837B::Task::m_frame837

837 Frame.

◆ m_frame83P

Frame83P* Sensors::Imagenex837B::Task::m_frame83P

83P Frame.

◆ m_log_file

std::ofstream Sensors::Imagenex837B::Task::m_log_file

Log file.

◆ m_log_path

Path Sensors::Imagenex837B::Task::m_log_path

Log filename.

◆ m_range_counter

Counter<double> Sensors::Imagenex837B::Task::m_range_counter

Range adaptive modifier counter.

◆ m_rdata_ftr

uint8_t Sensors::Imagenex837B::Task::m_rdata_ftr[c_rdata_ftr_size]

Footer Return data.

◆ m_rdata_hdr

uint8_t Sensors::Imagenex837B::Task::m_rdata_hdr[c_rdata_hdr_size]

Header Return data.

◆ m_sdata

uint8_t Sensors::Imagenex837B::Task::m_sdata[c_sdata_size]

Output switch data.

◆ m_tcp

TCPSocket* Sensors::Imagenex837B::Task::m_tcp

TCP socket.

◆ m_udp

UDPSocket* Sensors::Imagenex837B::Task::m_udp

UDP socket.

◆ m_wdog

Time::Counter<float> Sensors::Imagenex837B::Task::m_wdog

Watchdog.

Collaboration diagram for Sensors::Imagenex837B::Task:
Collaboration graph