![]() |
DUNE: Uniform Navigational Environment
2016.05.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 | 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 | 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 | 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) |
| 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 |
| EntityStates | m_state_entity |
| IMC::EntityState | m_states [STA_MAX] |
| bool | m_stop_comms |
| unsigned | m_addr |
| std::string | m_data |
| std::string | m_datahex |
| DataSeatrac | m_data_beacon |
| double | m_last_input |
| MapName | m_modem_names |
| MapAddr | m_modem_addrs |
| Ticket * | m_ticket |
| IMC::DevDataText | m_dev_data |
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) |
| 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 | onUpdateParameters (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) |
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, DUNE::Tasks::Parameter::defaultValue(), m_args, m_states, Transports::Seatrac::Arguments::only_underwater, DUNE::Tasks::Task::param(), DUNE::Tasks::Task::paramActive(), 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, and Transports::Seatrac::Arguments::uart_dev.
|
inline |
Clear ticket.
| [in] | reason | reason value. |
| [in] | error | error message. |
References m_ticket, and sendTxStatus().
Referenced by handleBinaryMessage(), onResourceRelease(), processNewData(), and replaceTicket().
|
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(), 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_data_beacon, Transports::Seatrac::MSG_OWAY, Transports::Seatrac::MSG_REQ, Transports::Seatrac::CidDatSendMsg::msg_type, Transports::Seatrac::CidDatSendMsg::packetDataBuild(), Transports::Seatrac::CidDatSendMsg::packetDataSendStatus(), replaceTicket(), sendProtectedCommand(), sendTxStatus(), Transports::Seatrac::Ticket::seq, and DUNE::Tasks::Task::war().
|
inline |
References m_args, m_stop_comms, and Transports::Seatrac::Arguments::only_underwater.
|
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::Acofix_t::dest_id, DUNE::Tasks::Task::dispatch(), Transports::Seatrac::CidDatReceiveMsg::getFullMsg(), handleRxMessage(), lookupSystemName(), m_data_beacon, m_ticket, Transports::Seatrac::CidDatReceiveMsg::packetDataDecode(), Transports::Seatrac::CidDatSendMsg::packetDataNextPart(), Transports::Seatrac::Acofix_t::range_dist, sendProtectedCommand(), Transports::Seatrac::Ticket::seq, and DUNE::Tasks::Task::war().
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(), lookupSystemName(), m_addr, m_data_beacon, and Transports::Seatrac::Acofix_t::src_id.
Referenced by handleBinaryMessage().
|
inline |
Checks if the modem is working.
References Transports::Seatrac::CID_STATUS, m_data_beacon, and Transports::Seatrac::DataSeatrac::new_message.
Referenced by onResourceInitialization().
|
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 handleBinaryMessage(), 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::Arguments::addr_section, Transports::Seatrac::CID_SETTINGS_GET, Transports::Seatrac::DataSeatrac::cid_settings_msg, Transports::Seatrac::CID_SETTINGS_SAVE, Transports::Seatrac::CID_SETTINGS_SET, Transports::Seatrac::CID_SYS_REBOOT, Transports::Seatrac::commandCreateSeatrac(), DUNE::Tasks::Context::config, DUNE::Tasks::Task::debug(), DUNE::Tasks::Task::err(), DUNE::Parsers::Config::get(), DUNE::Tasks::Task::getSystemName(), hasConnection(), m_addr, m_args, DUNE::Tasks::Task::m_ctx, m_data_beacon, m_last_input, m_modem_addrs, m_modem_names, m_state_entity, m_states, Transports::Seatrac::DataSeatrac::newDataAvailable(), DUNE::Parsers::Config::options(), processInput(), sendCommand(), sendCommandAndWait(), setAndSendState(), Transports::Seatrac::STA_ERR_STP, Transports::Seatrac::STA_IDLE, Transports::Seatrac::CidSettingsMsg::status_flags, Transports::Seatrac::CidSettingsMsg::status_output, DUNE::Tasks::Task::war(), and Transports::Seatrac::CidSettingsMsg::xcvr_beacon_id.
|
inlinevirtual |
|
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 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::CID_DAT_ERROR, Transports::Seatrac::CID_DAT_RECEIVE, Transports::Seatrac::CID_DAT_SEND, Transports::Seatrac::DataSeatrac::cid_dat_send_msg, clearTicket(), Transports::Seatrac::commandCreateSeatrac(), handleBinaryMessage(), Transports::Seatrac::CidDatSendMsg::lock_flag, m_data_beacon, Transports::Seatrac::MSG_OWAY, Transports::Seatrac::CidDatSendMsg::msg_type, Transports::Seatrac::DataSeatrac::newDataAvailable(), Transports::Seatrac::CidDatSendMsg::packetDataNextPart(), sendProtectedCommand(), and DUNE::Tasks::Task::war().
Referenced by readSentence().
|
inline |
Process sentence.
References m_data, m_datahex, and DUNE::Tasks::Task::war().
Referenced by readSentence().
|
inline |
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, 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 |
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().
|
inline |
Send command if the modem has conditions to operate.
| [in] | cmd | command string. |
References Transports::Seatrac::DataSeatrac::cid_dat_send_msg, Transports::Seatrac::CidDatSendMsg::lock_flag, m_data_beacon, m_stop_comms, and sendCommand().
Referenced by consume(), handleBinaryMessage(), and processNewData().
|
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().
| unsigned Transports::Seatrac::Task::m_addr |
Modem address.
Referenced by handleRxMessage(), and onResourceInitialization().
| Arguments Transports::Seatrac::Task::m_args |
Task arguments.
Referenced by consume(), onResourceAcquisition(), onResourceInitialization(), openSocket(), and Task().
| 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 consume(), handleBinaryMessage(), handleRxMessage(), hasConnection(), onResourceInitialization(), processNewData(), readSentence(), and sendProtectedCommand().
| std::string Transports::Seatrac::Task::m_datahex |
Converted data buffer.
Referenced by processSentence(), and readSentence().
| IMC::DevDataText Transports::Seatrac::Task::m_dev_data |
Referenced by readSentence(), and sendCommand().
| IO::Handle* Transports::Seatrac::Task::m_handle |
Serial port handle.
Referenced by onResourceAcquisition(), onResourceRelease(), openSocket(), readSentence(), and sendCommand().
| double Transports::Seatrac::Task::m_last_input |
Time of last serial port input.
Referenced by onMain(), onResourceInitialization(), and readSentence().
| 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().
| 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().
| Ticket* Transports::Seatrac::Task::m_ticket |
Current transmission ticket.
Referenced by clearTicket(), handleBinaryMessage(), and replaceTicket().
