DUNE: Uniform Navigational Environment  2024.09.0
Actuators::Torqeedo::Task Struct Reference

Public Types

typedef std::map< std::string, PowerChannelPowerChannelMap
 
- Public Types inherited from DUNE::Concurrency::Runnable
enum  State {
  StateStarting, StateRunning, StateStopping, StateDead,
  StateUnknown
}
 

Public Member Functions

 Task (const std::string &name, Tasks::Context &ctx)
 
void onUpdateParameters (void)
 
void onEntityReservation (void)
 
unsigned getEid (std::string label)
 
void onEntityResolution (void)
 
void onResourceAcquisition (void)
 
void sendPowerChannelMessages ()
 
void onResourceInitialization (void)
 
void onResourceRelease (void)
 
void consume (const IMC::QueryPowerChannelState *msg)
 
void consume (const IMC::SetThrusterActuation *msg)
 
void consume (const IMC::PowerChannelControl *msg)
 
uint16_t combine2charToUint16 (char most_significant, char least_significant)
 
int16_t combine2charToInt16 (char most_significant, char least_significant)
 
void parseMSG_TQ_BAT_STATUS ()
 
void parseMSG_RAIL (uint32_t id)
 
void parseMSG_TQ_MOTOR_DRIVE ()
 
void parseMSG_TEXT ()
 
void parseMSG_TQ_BATCTL ()
 
void parseMSG_OUTPUTS ()
 
void parseMSG_UPTIME ()
 
void parseMSG_ID_V2 ()
 
void parseMSG_TQ_MOTOR_STATUS_BITS ()
 
void readCanMessage ()
 
uint32_t prepareTorqeedoCANID (torqeedo_msg_identifiers_t msg_id)
 
void sendSetPower (PowerChannel pc)
 
void sendSetMotorThrottle (int16_t motor0, int16_t motor1)
 
void task (void)
 
- Public Member Functions inherited from DUNE::Tasks::Periodic
 Periodic (const std::string &name, Context &ctx)
 
virtual ~Periodic (void)
 
void setFrequency (double freq)
 
double getFrequency (void) const
 
double getRunTime (void) const
 
unsigned getRunCount (void) const
 
- 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

bool m_unsent_power_parameters
 
unsigned int motor_send_counter
 
PowerChannelMap m_pwr_chs
 
unsigned m_battery_eid [c_num_batteries]
 
unsigned m_motor_eid [c_motors]
 
unsigned m_power_rail_eid [c_pwr_rails_count]
 
int16_t motor0_throttle
 
int16_t motor1_throttle
 
Hardware::SocketCAN * m_can
 
char m_can_bfr [9]
 
Arguments m_args
 

Additional Inherited Members

- 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::BasicEntitygetLocalEntity (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 >
Parameterparam (const std::string &name, T &var)
 
template<typename Y , typename T >
Parameterparam (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 bind (unsigned int message_id, AbstractConsumer *consumer)
 
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 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
Contextm_ctx
 
std::vector< Entities::BasicEntity * > m_entities
 

Member Typedef Documentation

◆ PowerChannelMap

Constructor & Destructor Documentation

◆ Task()

Actuators::Torqeedo::Task::Task ( const std::string &  name,
Tasks::Context &  ctx 
)
inline

Member Function Documentation

◆ combine2charToInt16()

int16_t Actuators::Torqeedo::Task::combine2charToInt16 ( char  most_significant,
char  least_significant 
)
inline

Convenience/readability function for combining two char inputs to one int16_t.

◆ combine2charToUint16()

uint16_t Actuators::Torqeedo::Task::combine2charToUint16 ( char  most_significant,
char  least_significant 
)
inline

Convenience/readability function for combining two char inputs to one uint16_t.

◆ consume() [1/3]

void Actuators::Torqeedo::Task::consume ( const IMC::QueryPowerChannelState *  msg)
inline

◆ consume() [2/3]

void Actuators::Torqeedo::Task::consume ( const IMC::SetThrusterActuation *  msg)
inline

Consume SetThrusterActuation messages.

◆ consume() [3/3]

void Actuators::Torqeedo::Task::consume ( const IMC::PowerChannelControl *  msg)
inline

Consume PowerChannelControl messages, forward them to CAN bus.

◆ getEid()

unsigned Actuators::Torqeedo::Task::getEid ( std::string  label)
inline

◆ onEntityReservation()

void Actuators::Torqeedo::Task::onEntityReservation ( void  )
inlinevirtual

◆ onEntityResolution()

void Actuators::Torqeedo::Task::onEntityResolution ( void  )
inlinevirtual

Resolve entity names.

Reimplemented from DUNE::Tasks::Task.

◆ onResourceAcquisition()

void Actuators::Torqeedo::Task::onResourceAcquisition ( void  )
inlinevirtual

Acquire resources.

Reimplemented from DUNE::Tasks::Task.

References Actuators::Torqeedo::Arguments::can_dev.

◆ onResourceInitialization()

void Actuators::Torqeedo::Task::onResourceInitialization ( void  )
inlinevirtual

Initialize resources.

Reimplemented from DUNE::Tasks::Task.

◆ onResourceRelease()

void Actuators::Torqeedo::Task::onResourceRelease ( void  )
inlinevirtual

Release resources.

Reimplemented from DUNE::Tasks::Task.

◆ onUpdateParameters()

◆ parseMSG_ID_V2()

void Actuators::Torqeedo::Task::parseMSG_ID_V2 ( )
inline

Parses a received MSG_ID_V2 from CAN bus buffer and makes it available for spew debug.

◆ parseMSG_OUTPUTS()

void Actuators::Torqeedo::Task::parseMSG_OUTPUTS ( )
inline

Parses a received MSG_OUTPUTS from CAN bus buffer and makes it available for spew debug.

◆ parseMSG_RAIL()

void Actuators::Torqeedo::Task::parseMSG_RAIL ( uint32_t  id)
inline

Parses a received MSG_RAIL from CAN bus buffer and sends relevant data to IMC.

◆ parseMSG_TEXT()

void Actuators::Torqeedo::Task::parseMSG_TEXT ( )
inline

Parses a received MSG_TEXT and displays it.

◆ parseMSG_TQ_BAT_STATUS()

void Actuators::Torqeedo::Task::parseMSG_TQ_BAT_STATUS ( )
inline

Parses a received MSG_TQ_BAT_STATUS from CAN bus buffer and sends relevant data to IMC.

◆ parseMSG_TQ_BATCTL()

void Actuators::Torqeedo::Task::parseMSG_TQ_BATCTL ( )
inline

Parses a received MSG_TQ_BATCTL from CAN bus buffer and makes it available for spew debug.

◆ parseMSG_TQ_MOTOR_DRIVE()

void Actuators::Torqeedo::Task::parseMSG_TQ_MOTOR_DRIVE ( )
inline

Parses a received MSG_TQ_MOTOR_DRIVE from CAN bus buffer and sends relevant data to IMC.

◆ parseMSG_TQ_MOTOR_STATUS_BITS()

void Actuators::Torqeedo::Task::parseMSG_TQ_MOTOR_STATUS_BITS ( )
inline

Parses a received MSG_TQ_MOTOR_STATUS_BITS from CAN bus buffer and makes it available for spew debug.

◆ parseMSG_UPTIME()

void Actuators::Torqeedo::Task::parseMSG_UPTIME ( )
inline

Parses a received MSG_UPTIME from CAN bus buffer and makes it available for spew debug.

◆ prepareTorqeedoCANID()

uint32_t Actuators::Torqeedo::Task::prepareTorqeedoCANID ( torqeedo_msg_identifiers_t  msg_id)
inline

Compiles a CAN id in a format supported by the Torqeedo interface board.

◆ readCanMessage()

◆ sendPowerChannelMessages()

void Actuators::Torqeedo::Task::sendPowerChannelMessages ( )
inline

◆ sendSetMotorThrottle()

void Actuators::Torqeedo::Task::sendSetMotorThrottle ( int16_t  motor0,
int16_t  motor1 
)
inline

Sends MSG_TQ_MOTOR_SET to CAN bus.

References Actuators::Torqeedo::MSG_TQ_MOTOR_SET.

◆ sendSetPower()

void Actuators::Torqeedo::Task::sendSetPower ( PowerChannel  pc)
inline

◆ task()

void Actuators::Torqeedo::Task::task ( void  )
inlinevirtual

Member Data Documentation

◆ m_args

Arguments Actuators::Torqeedo::Task::m_args

Task arguments.

◆ m_battery_eid

unsigned Actuators::Torqeedo::Task::m_battery_eid[c_num_batteries]

Batteries Entities.

◆ m_can

Hardware::SocketCAN* Actuators::Torqeedo::Task::m_can

CAN connection variable.

◆ m_can_bfr

char Actuators::Torqeedo::Task::m_can_bfr[9]

CAN buffer used for storing and sending messages.

◆ m_motor_eid

unsigned Actuators::Torqeedo::Task::m_motor_eid[c_motors]

Motors Entities.

◆ m_power_rail_eid

unsigned Actuators::Torqeedo::Task::m_power_rail_eid[c_pwr_rails_count]

Power Rail Entities.

◆ m_pwr_chs

PowerChannelMap Actuators::Torqeedo::Task::m_pwr_chs

Power channels by name.

◆ m_unsent_power_parameters

bool Actuators::Torqeedo::Task::m_unsent_power_parameters

Is there unsent power control messages.

◆ motor0_throttle

int16_t Actuators::Torqeedo::Task::motor0_throttle

Most recent throttle values.

◆ motor1_throttle

int16_t Actuators::Torqeedo::Task::motor1_throttle

◆ motor_send_counter

unsigned int Actuators::Torqeedo::Task::motor_send_counter

Most recent throttle values.

Collaboration diagram for Actuators::Torqeedo::Task:
Collaboration graph