DUNE: Uniform Navigational Environment
2019.02.0
|
Public Member Functions | |
Task (const std::string &name, Tasks::Context &ctx) | |
void | setAndSendState (EntityStates state) |
bool | processSentence (void) |
void | processNewData (void) |
void | readSentence (void) |
bool | openSocket (void) |
void | onResourceAcquisition (void) |
void | onResourceInitialization (void) |
void | onUpdateParameters (void) |
void | runCalibration (void) |
void | consume (const IMC::MagneticField *msg) |
bool | isCalibrated (void) |
bool | setHardIron (void) |
void | onResourceRelease (void) |
void | sendCommandAndWait (const std::string &cmd, double delay_aft) |
void | sendProtectedCommand (const std::string &cmd) |
void | sendCommand (const std::string &cmd) |
bool | hasConnection (void) |
void | handleBinaryMessage (void) |
void | handleRxMessage (const std::string &str) |
void | handleAcousticInformation (const Acofix_t &aco_fix) |
void | handleCommunicationError (void) |
void | rotateData (void) |
void | handleAhrsData (void) |
void | handlePressureSensor (void) |
void | handleDatSendResponse (void) |
void | consume (const IMC::UamTxFrame *msg) |
void | sendTxStatus (const Ticket &ticket, IMC::UamTxStatus::ValueEnum value, const std::string &error="") |
void | clearTicket (IMC::UamTxStatus::ValueEnum reason, const std::string &error="") |
void | replaceTicket (const Ticket &ticket) |
unsigned | lookupSystemAddress (const std::string &name) |
std::string | lookupSystemName (unsigned addr) |
void | processInput (double timeout=1.0) |
void | consume (const IMC::VehicleMedium *msg) |
void | resetOneWayTimer () |
void | checkTxOWAY (void) |
void | onMain (void) |
Public Member Functions inherited from DUNE::Tasks::Task | |
Task (const std::string &name, Context &context) | |
virtual | ~Task (void) |
const char * | getName (void) const |
const char * | getSystemName (void) const |
unsigned int | getSystemId (void) const |
unsigned int | getEntityId (void) const |
unsigned int | resolveEntity (const std::string &label) const |
std::string | resolveEntity (unsigned int id) const |
DebugLevel | getDebugLevel (void) const |
uint16_t | getActivationTime (void) const |
uint16_t | getDeactivationTime (void) const |
unsigned int | resolveSystemName (const std::string &name) const |
const char * | resolveSystemId (unsigned int id) const |
void | loadConfig (void) |
void | setPriority (unsigned int value) |
unsigned int | getPriority (void) const |
void | inf (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void | war (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void | err (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void | cri (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void | debug (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void | trace (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void void | spew (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void void void | dispatch (IMC::Message *msg, unsigned int flags=0) |
void | dispatch (IMC::Message &msg, unsigned int flags=0) |
void | dispatchReply (const IMC::Message &original, IMC::Message &msg, unsigned int flags=0) |
void | receive (const IMC::Message *msg) |
void | reserveEntities (void) |
void | resolveEntities (void) |
void | acquireResources (void) |
void | releaseResources (void) |
void | initializeResources (void) |
void | updateParameters (bool act_deact=true) |
void | writeParamsXML (std::ostream &os) const |
const char * | getEntityLabel (void) const |
void | setEntityLabel (const std::string &label) |
Public Member Functions inherited from DUNE::Tasks::AbstractTask | |
AbstractTask (void) | |
virtual | ~AbstractTask (void) |
Public Member Functions inherited from DUNE::Concurrency::Thread | |
Thread (void) | |
virtual | ~Thread (void) |
int | getProcessorUsage (void) |
Public Member Functions inherited from DUNE::Concurrency::Runnable | |
Runnable (void) | |
virtual | ~Runnable (void) |
void | start (void) |
void | stop (void) |
void | join (void) |
void | stopAndJoin (void) |
void | setPriority (Scheduler::Policy policy, unsigned priority) |
unsigned | getPriority (void) |
State | getState (void) |
bool | isCreated (void) |
bool | isStopping (void) |
bool | isRunning (void) |
bool | isStarting (void) |
bool | isDead (void) |
Public Attributes | |
IO::Handle * | m_handle |
Arguments | m_args |
bool | m_config_status |
bool | m_pre_detected |
EntityStates | m_state_entity |
IMC::EntityState | m_states [STA_MAX] |
bool | m_stop_comms |
bool | m_usbl_receiver |
unsigned | m_addr |
std::string | m_data |
std::string | m_datahex |
DataSeatrac | m_data_beacon |
double | m_last_input |
double | m_tstamp |
Time::Counter< double > | m_oway_timer |
float | m_hard_iron [3] |
MapName | m_modem_names |
MapAddr | m_modem_addrs |
Ticket * | m_ticket |
IMC::DevDataText | m_dev_data |
IMC::EulerAngles | m_euler |
IMC::Acceleration | m_accel |
IMC::AngularVelocity | m_agvel |
IMC::MagneticField | m_magfield |
IMC::SoundSpeed | m_sspeed |
IMC::Depth | m_depth |
IMC::Pressure | m_pressure |
IMC::Temperature | m_temperature |
Math::Matrix | m_rotation |
Additional Inherited Members | |
Public Types inherited from DUNE::Concurrency::Runnable | |
enum | State { StateStarting, StateRunning, StateStopping, StateDead, StateUnknown } |
Protected Member Functions inherited from DUNE::Tasks::Task | |
void | setEntityState (IMC::EntityState::StateEnum state, Status::Code code) |
void | setEntityState (IMC::EntityState::StateEnum state, const std::string &description) |
IMC::EntityState::StateEnum | getEntityState (void) const |
unsigned int | reserveEntity (const std::string &label) |
template<typename E > | |
E * | reserveEntity (const std::string &label) |
Entities::BasicEntity * | getLocalEntity (const std::string &label) |
bool | stopping (void) |
bool | isActive (void) const |
bool | isActivating (void) const |
bool | isDeactivating (void) const |
void | waitForMessages (double timeout) |
void | consumeMessages (void) |
template<typename T > | |
Parameter & | param (const std::string &name, T &var) |
template<typename Y , typename T > | |
Parameter & | param (const std::string &name, T &var) |
template<typename T > | |
bool | paramChanged (T &var) |
void | paramActive (Parameter::Scope def_scope, Parameter::Visibility def_visibility, bool def_value=false) |
void | setParamSectionEditor (const std::string &name) |
template<typename M , typename T > | |
void | bind (T *task_obj, void(T::*consumer)(const M *)=&T::consume) |
template<typename T > | |
void | bind (T *task_obj, const std::vector< uint32_t > &list) |
template<typename T , typename M > | |
void | bind (T *task_obj, const std::vector< uint32_t > &list, void(T::*consumer)(const M *)=&T::consume) |
template<typename T > | |
void | bind (T *task_obj, const std::vector< std::string > &list) |
void | requestActivation (void) |
void | requestDeactivation (void) |
void | activate (void) |
void | activationFailed (const std::string &reason) |
void | deactivate (void) |
void | deactivationFailed (const std::string &reason) |
virtual bool | onWriteParamsXML (std::ostream &os) const |
virtual void | onEntityReservation (void) |
virtual void | onEntityResolution (void) |
virtual void | onReportEntityState (void) |
virtual void | onRequestActivation (void) |
virtual void | onRequestDeactivation (void) |
virtual void | onActivation (void) |
virtual void | onDeactivation (void) |
virtual void | onQueryEntityParameters (const IMC::QueryEntityParameters *msg) |
virtual void | onSetEntityParameters (const IMC::SetEntityParameters *msg) |
virtual void | onPushEntityParameters (const IMC::PushEntityParameters *msg) |
virtual void | onPopEntityParameters (const IMC::PopEntityParameters *msg) |
Protected Member Functions inherited from DUNE::Concurrency::Thread | |
void | startImpl (void) |
void | stopImpl (void) |
void | joinImpl (void) |
void | setPriorityImpl (Scheduler::Policy policy, unsigned priority) |
unsigned | getPriorityImpl (void) |
Protected Attributes inherited from DUNE::Tasks::Task | |
Context & | m_ctx |
std::vector < Entities::BasicEntity * > | m_entities |
|
inline |
Constructor.
[in] | name | task name. |
[in] | ctx | context. |
References Transports::Seatrac::Arguments::addr_section, Transports::Seatrac::Arguments::arhs_mode, Transports::Seatrac::Arguments::calib_threshold, DUNE::Tasks::Parameter::defaultValue(), Transports::Seatrac::Arguments::enhanced_usbl, Transports::Seatrac::Arguments::hard_iron, m_args, m_states, Transports::Seatrac::Arguments::max_range, Transports::Seatrac::Arguments::only_underwater, DUNE::Tasks::Task::param(), DUNE::Tasks::Task::paramActive(), Transports::Seatrac::Arguments::pressure_sensor_mode, Transports::Seatrac::Arguments::rotation_mx, Transports::Seatrac::STA_ACTIVE, Transports::Seatrac::STA_BOOT, Transports::Seatrac::STA_ERR_COM, Transports::Seatrac::STA_ERR_STP, Transports::Seatrac::STA_IDLE, Transports::Seatrac::Arguments::uart_baud, Transports::Seatrac::Arguments::uart_dev, DUNE::Tasks::Parameter::units(), and Transports::Seatrac::Arguments::usbl_mode.
|
inline |
Checks if an OWAY message is waiting to be sent.
References Transports::Seatrac::CID_DAT_SEND, Transports::Seatrac::DataSeatrac::cid_dat_send_msg, clearTicket(), Transports::Seatrac::commandCreateSeatrac(), DUNE::Tasks::Task::debug(), m_data_beacon, m_oway_timer, Transports::Seatrac::MSG_OWAY, Transports::Seatrac::MSG_OWAYU, Transports::Seatrac::CidDatSendMsg::msg_type, Transports::Seatrac::CidDatSendMsg::packetDataNextPart(), Transports::Seatrac::CidDatSendMsg::packetDataSendStatus(), resetOneWayTimer(), and sendProtectedCommand().
Referenced by processInput().
|
inline |
Clear ticket.
[in] | reason | reason value. |
[in] | error | error message. |
References m_ticket, and sendTxStatus().
Referenced by checkTxOWAY(), handleBinaryMessage(), handleCommunicationError(), onResourceRelease(), replaceTicket(), and sendProtectedCommand().
|
inline |
|
inline |
References Transports::Seatrac::Ticket::ack, Transports::Seatrac::Ticket::addr, Transports::Seatrac::CID_DAT_SEND, Transports::Seatrac::DataSeatrac::cid_dat_send_msg, Transports::Seatrac::commandCreateSeatrac(), Transports::Seatrac::Arguments::enhanced_usbl, DUNE::Tasks::Task::err(), DUNE::Tasks::Task::getSystemId(), DUNE::Tasks::Task::getSystemName(), Transports::Seatrac::Ticket::imc_eid, Transports::Seatrac::Ticket::imc_sid, DUNE::Tasks::Task::inf(), lookupSystemAddress(), m_args, m_data_beacon, Transports::Seatrac::MSG_OWAY, Transports::Seatrac::MSG_OWAYU, Transports::Seatrac::MSG_REQ, Transports::Seatrac::MSG_REQU, Transports::Seatrac::MSG_REQX, Transports::Seatrac::CidDatSendMsg::msg_type, Transports::Seatrac::CidDatSendMsg::packetDataBuild(), Transports::Seatrac::CidDatSendMsg::packetDataSendStatus(), replaceTicket(), resetOneWayTimer(), sendProtectedCommand(), sendTxStatus(), Transports::Seatrac::Ticket::seq, Transports::Seatrac::Arguments::usbl_mode, and DUNE::Tasks::Task::war().
|
inline |
References m_args, m_stop_comms, and Transports::Seatrac::Arguments::only_underwater.
|
inline |
Handle acoustic information from received data.
param[in] aco_fix Acoustic information field of the received message.
References Transports::Seatrac::Acofix_t::attitude_pitch, Transports::Seatrac::Acofix_t::attitude_roll, Transports::Seatrac::Acofix_t::attitude_yaw, DUNE::Tasks::Task::dispatch(), lookupSystemName(), m_ticket, m_usbl_receiver, Transports::Seatrac::Acofix_t::outputflags_list, Transports::Seatrac::Acofix_t::position_depth, Transports::Seatrac::Acofix_t::position_easting, Transports::Seatrac::Acofix_t::position_northing, Transports::Seatrac::Acofix_t::range_dist, Transports::Seatrac::Ticket::seq, Transports::Seatrac::Acofix_t::src_id, Transports::Seatrac::Acofix_t::usbl_azimuth, and Transports::Seatrac::Acofix_t::usbl_elevation.
Referenced by handleBinaryMessage(), and handleRxMessage().
|
inline |
Handle AHRS data send by local beacon.
The method tries to dispach all the necessary information for navigation
References Transports::Seatrac::AhrsCal_t::acc_max_x, Transports::Seatrac::AhrsCal_t::acc_max_y, Transports::Seatrac::AhrsCal_t::acc_max_z, Transports::Seatrac::CidSettingsMsg::ahrs_cal, Transports::Seatrac::CidStatusMsg::ahrs_comp_acc_x, Transports::Seatrac::CidStatusMsg::ahrs_comp_acc_y, Transports::Seatrac::CidStatusMsg::ahrs_comp_acc_z, Transports::Seatrac::CidStatusMsg::ahrs_comp_gyro_x, Transports::Seatrac::CidStatusMsg::ahrs_comp_gyro_y, Transports::Seatrac::CidStatusMsg::ahrs_comp_gyro_z, Transports::Seatrac::CidStatusMsg::ahrs_comp_mag_x, Transports::Seatrac::CidStatusMsg::ahrs_comp_mag_y, Transports::Seatrac::CidStatusMsg::ahrs_comp_mag_z, Transports::Seatrac::CidStatusMsg::attitude_pitch, Transports::Seatrac::CidStatusMsg::attitude_roll, Transports::Seatrac::CidStatusMsg::attitude_yaw, Transports::Seatrac::DataSeatrac::cid_settings_msg, Transports::Seatrac::DataSeatrac::cid_status_msg, DUNE::Tasks::Task::dispatch(), m_accel, m_agvel, m_data_beacon, m_euler, m_magfield, m_tstamp, Transports::Seatrac::CidStatusMsg::outputflags_list, rotateData(), and Transports::Seatrac::CidStatusMsg::timestamp.
Referenced by processNewData().
|
inline |
Processing incoming data.
References Transports::Seatrac::CidDatReceiveMsg::ack_flag, Transports::Seatrac::CidDatReceiveMsg::aco_fix, Transports::Seatrac::DataSeatrac::cid_dat_receive_msg, Transports::Seatrac::CID_DAT_SEND, Transports::Seatrac::DataSeatrac::cid_dat_send_msg, clearTicket(), Transports::Seatrac::commandCreateSeatrac(), DUNE::Tasks::Task::debug(), Transports::Seatrac::CidDatReceiveMsg::getFullMsg(), handleAcousticInformation(), handleRxMessage(), m_data_beacon, Transports::Seatrac::CidDatReceiveMsg::packetDataDecode(), Transports::Seatrac::CidDatSendMsg::packetDataNextPart(), sendProtectedCommand(), and DUNE::Tasks::Task::war().
Referenced by processNewData().
|
inline |
Handle errors of communication with both local and remote beacon.
The method tries to send the packet again until it reaches the maximum number of retries.
References Transports::Seatrac::CID_DAT_SEND, Transports::Seatrac::DataSeatrac::cid_dat_send_msg, clearTicket(), Transports::Seatrac::commandCreateSeatrac(), m_data_beacon, Transports::Seatrac::MSG_OWAY, Transports::Seatrac::MSG_OWAYU, Transports::Seatrac::CidDatSendMsg::msg_type, Transports::Seatrac::CidDatSendMsg::packetDataNextPart(), sendProtectedCommand(), and DUNE::Tasks::Task::war().
Referenced by handleDatSendResponse(), and processNewData().
|
inline |
Handle the response to a CID_Data_Send command.
If the acknowledged message is an OWAY and it is compound by more than one packet, the method sends the following packet. If the sending fails, it tries to send the packet again. If the modem is busy, it tries to send the packet to poll the status.
References Transports::Seatrac::DataSeatrac::cid_dat_send_msg, Transports::Seatrac::CST_OK, Transports::Seatrac::CST_XCVR_BUSY, handleCommunicationError(), m_data_beacon, and Transports::Seatrac::CidDatSendMsg::status.
Referenced by processNewData().
|
inline |
Handle Pressure , Depth, Temperature and Sound Speed data and dispactch .
The method tries to dispach data prom sensors:Pressure , Depth, Temperature and Sound Speed data
References Transports::Seatrac::DataSeatrac::cid_status_msg, DUNE::Tasks::Task::dispatch(), Transports::Seatrac::CidStatusMsg::environment_pressure, Transports::Seatrac::CidStatusMsg::environment_temperature, Transports::Seatrac::CidStatusMsg::EnvironmentDepth, Transports::Seatrac::CidStatusMsg::EnvironmentVos, m_data_beacon, m_depth, m_pressure, m_sspeed, and m_temperature.
Referenced by processNewData().
|
inline |
Publish received acoustic message.
[in] | str | received message. |
References Transports::Seatrac::CidDatReceiveMsg::aco_fix, Transports::Seatrac::DataSeatrac::cid_dat_receive_msg, Transports::Seatrac::Acofix_t::dest_id, DUNE::Tasks::Task::dispatch(), handleAcousticInformation(), lookupSystemName(), m_addr, m_data_beacon, and Transports::Seatrac::Acofix_t::src_id.
Referenced by handleBinaryMessage().
|
inline |
Checks if the modem is working.
References m_last_input.
Referenced by onResourceInitialization().
|
inline |
Check if sensor has the same hard iron calibration parameters.
References Transports::Seatrac::CidSettingsMsg::ahrs_cal, Transports::Seatrac::DataSeatrac::cid_settings_msg, DUNE::Tasks::Task::debug(), Transports::Seatrac::Arguments::hard_iron, m_args, m_data_beacon, Transports::Seatrac::AhrsCal_t::mag_hard_x, Transports::Seatrac::AhrsCal_t::mag_hard_y, Transports::Seatrac::AhrsCal_t::mag_hard_z, and DUNE::Tasks::Task::war().
Referenced by onResourceInitialization(), and runCalibration().
|
inline |
Lookup system address.
[in] | name | system name |
References m_modem_names.
Referenced by consume().
|
inline |
Lookup system name.
[in] | addr | system address. |
References m_modem_addrs.
Referenced by handleAcousticInformation(), and handleRxMessage().
|
inlinevirtual |
Main loop.
Implements DUNE::Tasks::Task.
References m_last_input, processInput(), setAndSendState(), Transports::Seatrac::STA_ERR_COM, and DUNE::Tasks::Task::stopping().
|
inlinevirtual |
Acquire resources.
Reimplemented from DUNE::Tasks::Task.
References m_args, m_handle, openSocket(), setAndSendState(), Transports::Seatrac::STA_BOOT, Transports::Seatrac::Arguments::uart_baud, and Transports::Seatrac::Arguments::uart_dev.
|
inlinevirtual |
Initialize resources and configure modem.
Reimplemented from DUNE::Tasks::Task.
References Transports::Seatrac::ACC_CAL_FLAG, Transports::Seatrac::Arguments::addr_section, Transports::Seatrac::CidSettingsMsg::ahrs_cal, Transports::Seatrac::AHRS_COMP_DATA_FLAG, Transports::Seatrac::AHRS_RAW_DATA_FLAG, Transports::Seatrac::Arguments::arhs_mode, Transports::Seatrac::ATTITUDE_FLAG, Transports::Seatrac::BT_X150, Transports::Seatrac::CID_SETTINGS_GET, Transports::Seatrac::DataSeatrac::cid_settings_msg, Transports::Seatrac::CID_SETTINGS_SAVE, Transports::Seatrac::CID_SETTINGS_SET, Transports::Seatrac::DataSeatrac::cid_sys_info, Transports::Seatrac::CID_SYS_INFO, Transports::Seatrac::CID_SYS_REBOOT, Transports::Seatrac::commandCreateSeatrac(), DUNE::Tasks::Context::config, DUNE::Tasks::Task::debug(), Transports::Seatrac::ENVIRONMENT_FLAG, DUNE::Tasks::Task::err(), DUNE::Parsers::Config::get(), DUNE::Tasks::Task::getSystemName(), Transports::Seatrac::Arguments::hard_iron, Transports::Seatrac::CidSysInfo::hardware, hasConnection(), isCalibrated(), m_addr, m_args, m_config_status, DUNE::Tasks::Task::m_ctx, m_data_beacon, m_last_input, m_modem_addrs, m_modem_names, m_state_entity, m_states, m_usbl_receiver, Transports::Seatrac::MAG_CAL_FLAG, Transports::Seatrac::AhrsCal_t::mag_hard_x, Transports::Seatrac::AhrsCal_t::mag_hard_y, Transports::Seatrac::AhrsCal_t::mag_hard_z, Transports::Seatrac::Arguments::max_range, Transports::Seatrac::DataSeatrac::newDataAvailable(), DUNE::Parsers::Config::options(), Transports::Seatrac::Hardware_t::part_number, processInput(), sendCommand(), sendCommandAndWait(), setAndSendState(), Transports::Seatrac::STA_ERR_STP, Transports::Seatrac::STA_IDLE, Transports::Seatrac::CidSettingsMsg::status_flags, Transports::Seatrac::STATUS_MODE_10HZ, Transports::Seatrac::STATUS_MODE_1HZ, Transports::Seatrac::CidSettingsMsg::status_output, Transports::Seatrac::USBL_USE_AHRS_FLAG, DUNE::Tasks::Task::war(), Transports::Seatrac::CidSettingsMsg::xcvr_beacon_id, Transports::Seatrac::XCVR_FIX_MSGS_FLAG, Transports::Seatrac::CidSettingsMsg::xcvr_flags, Transports::Seatrac::XCVR_POSFLT_ENABLE_FLAG, Transports::Seatrac::CidSettingsMsg::xcvr_range_tmo, and Transports::Seatrac::XCVR_USBL_MSGS_FLAG.
|
inlinevirtual |
|
inlinevirtual |
Update parameters.
Reimplemented from DUNE::Tasks::Task.
References Transports::Seatrac::Arguments::hard_iron, m_args, m_handle, m_hard_iron, m_rotation, DUNE::Tasks::Task::paramChanged(), Transports::Seatrac::Arguments::rotation_mx, runCalibration(), and DUNE::Math::transpose().
|
inline |
Open TCP socket.
References m_args, m_handle, and Transports::Seatrac::Arguments::uart_dev.
Referenced by onResourceAcquisition().
|
inline |
Check for incoming data.
[in] | timeout | timeout time. |
References checkTxOWAY(), DUNE::Tasks::Task::consumeMessages(), DUNE::Tasks::Task::isActive(), m_state_entity, readSentence(), setAndSendState(), Transports::Seatrac::STA_ACTIVE, Transports::Seatrac::STA_ERR_STP, and Transports::Seatrac::STA_IDLE.
Referenced by onMain(), onResourceInitialization(), and sendCommandAndWait().
|
inline |
Process new data.
References Transports::Seatrac::Arguments::arhs_mode, Transports::Seatrac::CID_DAT_ERROR, Transports::Seatrac::CID_DAT_RECEIVE, Transports::Seatrac::CID_DAT_SEND, Transports::Seatrac::CID_STATUS, handleAhrsData(), handleBinaryMessage(), handleCommunicationError(), handleDatSendResponse(), handlePressureSensor(), m_args, m_config_status, m_data_beacon, Transports::Seatrac::DataSeatrac::newDataAvailable(), and Transports::Seatrac::Arguments::pressure_sensor_mode.
Referenced by readSentence().
|
inline |
Process sentence.
References m_data, m_datahex, and DUNE::Tasks::Task::war().
Referenced by readSentence().
|
inline |
Release Read sentence.
References Transports::Seatrac::dataParser(), DUNE::Tasks::Task::dispatch(), m_data, m_data_beacon, m_datahex, m_dev_data, m_handle, m_last_input, m_pre_detected, m_tstamp, Transports::Seatrac::printDebugFunction(), processNewData(), and processSentence().
Referenced by processInput().
|
inline |
Replace ticket.
[in] | ticket | new ticket to replace previous one. |
References clearTicket(), and m_ticket.
Referenced by consume().
|
inline |
References Transports::Seatrac::DataSeatrac::cid_dat_send_msg, m_args, m_data_beacon, m_oway_timer, Transports::Seatrac::Arguments::max_range, and Transports::Seatrac::CidDatSendMsg::packet_len.
Referenced by checkTxOWAY(), and consume().
|
inline |
Correct data according with mounting position.
References m_accel, m_agvel, m_magfield, and m_rotation.
Referenced by handleAhrsData().
|
inline |
Routine to run calibration proceedings.
References isCalibrated(), m_handle, and setHardIron().
Referenced by onUpdateParameters().
|
inline |
Send command to the acoustic modem.
[in] | cmd | command string. |
References DUNE::Tasks::Task::dispatch(), m_dev_data, and m_handle.
Referenced by onResourceInitialization(), sendCommandAndWait(), and sendProtectedCommand().
|
inline |
Send command and waits for response.
[in] | cmd | command string. |
[in] | delay_bef | delay before send comamnd. |
[in] | delay_aft | delay after send comamnd. |
References processInput(), and sendCommand().
Referenced by onResourceInitialization(), and setHardIron().
|
inline |
Send command if the modem has conditions to operate.
[in] | cmd | command string. |
References Transports::Seatrac::DataSeatrac::cid_dat_send_msg, clearTicket(), Transports::Seatrac::CidDatSendMsg::lock_flag, m_data_beacon, m_stop_comms, sendCommand(), and DUNE::Tasks::Task::war().
Referenced by checkTxOWAY(), consume(), handleBinaryMessage(), and handleCommunicationError().
|
inline |
Updates transmission status.
[in] | ticket | ticket status to be transmitted. |
[in] | value | status index. |
[in] | error | error message. |
References DUNE::Tasks::Task::dispatch(), Transports::Seatrac::Ticket::imc_eid, Transports::Seatrac::Ticket::imc_sid, and Transports::Seatrac::Ticket::seq.
Referenced by clearTicket(), and consume().
|
inline |
Set entity state.
[in] | state | new entity state. |
References m_state_entity, m_states, and DUNE::Tasks::Task::setEntityState().
Referenced by onMain(), onResourceAcquisition(), onResourceInitialization(), and processInput().
|
inline |
Set new hard iron calibration parameters.
References Transports::Seatrac::CidSettingsMsg::ahrs_cal, Transports::Seatrac::CID_SETTINGS_GET, Transports::Seatrac::DataSeatrac::cid_settings_msg, Transports::Seatrac::CID_SETTINGS_SAVE, Transports::Seatrac::CID_SETTINGS_SET, Transports::Seatrac::commandCreateSeatrac(), Transports::Seatrac::Arguments::hard_iron, m_args, m_data_beacon, Transports::Seatrac::AhrsCal_t::mag_hard_x, Transports::Seatrac::AhrsCal_t::mag_hard_y, Transports::Seatrac::AhrsCal_t::mag_hard_z, and sendCommandAndWait().
Referenced by runCalibration().
IMC::Acceleration Transports::Seatrac::Task::m_accel |
Acceleration message.
Referenced by handleAhrsData(), and rotateData().
unsigned Transports::Seatrac::Task::m_addr |
Modem address.
Referenced by handleRxMessage(), and onResourceInitialization().
IMC::AngularVelocity Transports::Seatrac::Task::m_agvel |
Angular velocity message.
Referenced by handleAhrsData(), and rotateData().
Arguments Transports::Seatrac::Task::m_args |
Task arguments.
Referenced by consume(), isCalibrated(), onResourceAcquisition(), onResourceInitialization(), onUpdateParameters(), openSocket(), processNewData(), resetOneWayTimer(), setHardIron(), and Task().
bool Transports::Seatrac::Task::m_config_status |
Config Status.
Referenced by onResourceInitialization(), and processNewData().
std::string Transports::Seatrac::Task::m_data |
Data buffer.
Referenced by processSentence(), and readSentence().
DataSeatrac Transports::Seatrac::Task::m_data_beacon |
Seatrac data structures.
Referenced by checkTxOWAY(), consume(), handleAhrsData(), handleBinaryMessage(), handleCommunicationError(), handleDatSendResponse(), handlePressureSensor(), handleRxMessage(), isCalibrated(), onResourceInitialization(), processNewData(), readSentence(), resetOneWayTimer(), sendProtectedCommand(), and setHardIron().
std::string Transports::Seatrac::Task::m_datahex |
Converted data buffer.
Referenced by processSentence(), and readSentence().
IMC::Depth Transports::Seatrac::Task::m_depth |
Referenced by handlePressureSensor().
IMC::DevDataText Transports::Seatrac::Task::m_dev_data |
Referenced by readSentence(), and sendCommand().
IMC::EulerAngles Transports::Seatrac::Task::m_euler |
Euler angles message.
Referenced by handleAhrsData().
IO::Handle* Transports::Seatrac::Task::m_handle |
Serial port handle.
Referenced by onResourceAcquisition(), onResourceRelease(), onUpdateParameters(), openSocket(), readSentence(), runCalibration(), and sendCommand().
float Transports::Seatrac::Task::m_hard_iron[3] |
hard iron calibration parameters.
Referenced by onUpdateParameters().
double Transports::Seatrac::Task::m_last_input |
Time of last serial port input.
Referenced by hasConnection(), onMain(), onResourceInitialization(), and readSentence().
IMC::MagneticField Transports::Seatrac::Task::m_magfield |
Magnetometer Vector message.
Referenced by handleAhrsData(), and rotateData().
MapAddr Transports::Seatrac::Task::m_modem_addrs |
Map of seatrac modems by address.
Referenced by lookupSystemName(), and onResourceInitialization().
MapName Transports::Seatrac::Task::m_modem_names |
Map of seatrac modems by name.
Referenced by lookupSystemAddress(), and onResourceInitialization().
Time::Counter<double> Transports::Seatrac::Task::m_oway_timer |
Timer to manage the fragmentation of OWAY messages.
Referenced by checkTxOWAY(), and resetOneWayTimer().
bool Transports::Seatrac::Task::m_pre_detected |
c_preamble detected
Referenced by readSentence().
IMC::Pressure Transports::Seatrac::Task::m_pressure |
Referenced by handlePressureSensor().
Math::Matrix Transports::Seatrac::Task::m_rotation |
Rotation Matrix to correct mounting position.
Referenced by onUpdateParameters(), and rotateData().
IMC::SoundSpeed Transports::Seatrac::Task::m_sspeed |
Current sound speed.
Referenced by handlePressureSensor().
EntityStates Transports::Seatrac::Task::m_state_entity |
Current state.
Referenced by onResourceInitialization(), processInput(), and setAndSendState().
IMC::EntityState Transports::Seatrac::Task::m_states[STA_MAX] |
Entity states.
Referenced by onResourceInitialization(), setAndSendState(), and Task().
bool Transports::Seatrac::Task::m_stop_comms |
Stop reports on the ground.
Referenced by consume(), and sendProtectedCommand().
IMC::Temperature Transports::Seatrac::Task::m_temperature |
Referenced by handlePressureSensor().
Ticket* Transports::Seatrac::Task::m_ticket |
Current transmission ticket.
Referenced by clearTicket(), handleAcousticInformation(), and replaceTicket().
double Transports::Seatrac::Task::m_tstamp |
Read timestamp.
Referenced by handleAhrsData(), and readSentence().
bool Transports::Seatrac::Task::m_usbl_receiver |
True if the beacon has an USBL receiver.
Referenced by handleAcousticInformation(), and onResourceInitialization().