![]() |
DUNE: Uniform Navigational Environment
2024.09.0
|
Public Types | |
typedef std::map< std::string, PowerChannel > | PowerChannelMap |
![]() | |
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) |
![]() | |
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 |
![]() | |
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) |
![]() | |
AbstractTask (void) | |
virtual | ~AbstractTask (void) |
![]() | |
Thread (void) | |
virtual | ~Thread (void) |
int | getProcessorUsage (void) |
![]() | |
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 | |
![]() | |
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 | 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) |
![]() | |
void | startImpl (void) |
void | stopImpl (void) |
void | joinImpl (void) |
void | setPriorityImpl (Scheduler::Policy policy, unsigned priority) |
unsigned | getPriorityImpl (void) |
![]() | |
Context & | m_ctx |
std::vector< Entities::BasicEntity * > | m_entities |
typedef std::map<std::string, PowerChannel> Actuators::Torqeedo::Task::PowerChannelMap |
|
inline |
Constructor.
[in] | name | task name. |
[in] | ctx | context. |
References Actuators::Torqeedo::Arguments::can_dev, Actuators::Torqeedo::Arguments::motor_labels, Actuators::Torqeedo::Arguments::motor_write_divider, Actuators::Torqeedo::Arguments::pwr_names, Actuators::Torqeedo::Arguments::pwr_states, and Actuators::Torqeedo::Arguments::rail_labels.
|
inline |
Convenience/readability function for combining two char inputs to one int16_t.
|
inline |
Convenience/readability function for combining two char inputs to one uint16_t.
|
inline |
|
inline |
Consume SetThrusterActuation messages.
|
inline |
Consume PowerChannelControl messages, forward them to CAN bus.
|
inline |
|
inlinevirtual |
Reserve entity identifiers.
Reimplemented from DUNE::Tasks::Task.
References Actuators::Torqeedo::Arguments::motor_labels, and Actuators::Torqeedo::Arguments::rail_labels.
|
inlinevirtual |
Resolve entity names.
Reimplemented from DUNE::Tasks::Task.
|
inlinevirtual |
Acquire resources.
Reimplemented from DUNE::Tasks::Task.
References Actuators::Torqeedo::Arguments::can_dev.
|
inlinevirtual |
Initialize resources.
Reimplemented from DUNE::Tasks::Task.
|
inlinevirtual |
Release resources.
Reimplemented from DUNE::Tasks::Task.
|
inlinevirtual |
Update internal state with new parameter values.
Reimplemented from DUNE::Tasks::Task.
References Actuators::Torqeedo::CH_H_12V1, Actuators::Torqeedo::CH_H_12V2, Actuators::Torqeedo::CH_H_12V3, Actuators::Torqeedo::CH_H_5V, Actuators::Torqeedo::CH_H_AUX0, Actuators::Torqeedo::CH_H_AUX1, Actuators::Torqeedo::CH_H_MOT0, Actuators::Torqeedo::CH_H_MOT1, Actuators::Torqeedo::CH_H_VR0, Actuators::Torqeedo::CH_H_VR1, Actuators::Torqeedo::Arguments::pwr_names, Actuators::Torqeedo::Arguments::pwr_states, Actuators::Torqeedo::R_H_12V1, Actuators::Torqeedo::R_H_12V2, Actuators::Torqeedo::R_H_12V3, Actuators::Torqeedo::R_H_5V, Actuators::Torqeedo::R_H_AUX0, Actuators::Torqeedo::R_H_AUX1, Actuators::Torqeedo::R_H_MOT0, Actuators::Torqeedo::R_H_MOT1, Actuators::Torqeedo::R_H_VR0, Actuators::Torqeedo::R_H_VR1, and Actuators::Torqeedo::PowerChannel::state.
|
inline |
Parses a received MSG_ID_V2 from CAN bus buffer and makes it available for spew debug.
|
inline |
Parses a received MSG_OUTPUTS from CAN bus buffer and makes it available for spew debug.
|
inline |
Parses a received MSG_RAIL from CAN bus buffer and sends relevant data to IMC.
|
inline |
Parses a received MSG_TEXT and displays it.
|
inline |
Parses a received MSG_TQ_BAT_STATUS from CAN bus buffer and sends relevant data to IMC.
|
inline |
Parses a received MSG_TQ_BATCTL from CAN bus buffer and makes it available for spew debug.
|
inline |
Parses a received MSG_TQ_MOTOR_DRIVE from CAN bus buffer and sends relevant data to IMC.
|
inline |
Parses a received MSG_TQ_MOTOR_STATUS_BITS from CAN bus buffer and makes it available for spew debug.
|
inline |
Parses a received MSG_UPTIME from CAN bus buffer and makes it available for spew debug.
|
inline |
Compiles a CAN id in a format supported by the Torqeedo interface board.
|
inline |
Tries to read a message from CAN bus, if successful, call relevant parser.
References Actuators::Torqeedo::MSG_BATCELLS, Actuators::Torqeedo::MSG_BOOTLOADER, Actuators::Torqeedo::MSG_CAP_AMP, Actuators::Torqeedo::MSG_CAP_WATT, Actuators::Torqeedo::MSG_HOUSEKEEPING, Actuators::Torqeedo::MSG_ID, Actuators::Torqeedo::MSG_ID_V2, Actuators::Torqeedo::MSG_OUTPUT_SET, Actuators::Torqeedo::MSG_OUTPUTS, Actuators::Torqeedo::MSG_RAIL, Actuators::Torqeedo::MSG_RESET, Actuators::Torqeedo::MSG_TEMPERATURE, Actuators::Torqeedo::MSG_TEXT, Actuators::Torqeedo::MSG_TQ_BAT_STATUS, Actuators::Torqeedo::MSG_TQ_BATCTL, Actuators::Torqeedo::MSG_TQ_MOTOR_DRIVE, Actuators::Torqeedo::MSG_TQ_MOTOR_SET, Actuators::Torqeedo::MSG_TQ_MOTOR_STATUS_BITS, Actuators::Torqeedo::MSG_UPTIME, Actuators::Torqeedo::MSG_WINCH_COMMAND, Actuators::Torqeedo::MSG_WINCH_MOVING, and Actuators::Torqeedo::MSG_WINCH_TELEMETRY.
|
inline |
|
inline |
Sends MSG_TQ_MOTOR_SET to CAN bus.
References Actuators::Torqeedo::MSG_TQ_MOTOR_SET.
|
inline |
Sends MSG_OUTPUT_SET to CAN bus.
References Actuators::Torqeedo::PowerChannel::channel, Actuators::Torqeedo::MSG_OUTPUT_SET, Actuators::Torqeedo::PowerChannel::rail, and Actuators::Torqeedo::PowerChannel::state.
|
inlinevirtual |
Main loop.
Implements DUNE::Tasks::Periodic.
References Actuators::Torqeedo::Arguments::motor_write_divider.
unsigned Actuators::Torqeedo::Task::m_battery_eid[c_num_batteries] |
Batteries Entities.
Hardware::SocketCAN* Actuators::Torqeedo::Task::m_can |
CAN connection variable.
char Actuators::Torqeedo::Task::m_can_bfr[9] |
CAN buffer used for storing and sending messages.
unsigned Actuators::Torqeedo::Task::m_motor_eid[c_motors] |
Motors Entities.
unsigned Actuators::Torqeedo::Task::m_power_rail_eid[c_pwr_rails_count] |
Power Rail Entities.
PowerChannelMap Actuators::Torqeedo::Task::m_pwr_chs |
Power channels by name.
bool Actuators::Torqeedo::Task::m_unsent_power_parameters |
Is there unsent power control messages.
int16_t Actuators::Torqeedo::Task::motor0_throttle |
Most recent throttle values.
int16_t Actuators::Torqeedo::Task::motor1_throttle |
unsigned int Actuators::Torqeedo::Task::motor_send_counter |
Most recent throttle values.