Classes | Public Types | Public Member Functions | Protected Types | Private Attributes | List of all members
hebi::Command Class Referencefinal

Command objects have various fields that can be set; when sent to the module, these fields control internal properties and setpoints. More...

#include <command.hpp>

Classes

class  Actuator
 Actuator-specific commands. More...
 
class  BoolField
 A message field representable by a bool value. More...
 
class  EnumField
 A message field representable by an enum of a given type. More...
 
class  FlagField
 A two-state message field (either set/true or cleared/false). More...
 
class  FloatField
 A message field representable by a single-precision floating point value. More...
 
class  HighResAngleField
 A message field for an angle measurement which does not lose precision at very high angles. More...
 
class  Io
 Any available digital or analog output pins on the device. More...
 
class  IoBank
 A message field for interfacing with a bank of I/O pins. More...
 
class  LedField
 A message field for interfacing with an LED. More...
 
class  NumberedFloatField
 A message field containing a numbered set of single-precision floating point values. More...
 
class  Settings
 Module settings that are typically changed at a slower rate. More...
 
class  StringField
 A message field representable by a std::string. More...
 

Public Types

enum  ControlStrategy {
  ControlStrategy::Off, ControlStrategy::DirectPWM, ControlStrategy::Strategy2, ControlStrategy::Strategy3,
  ControlStrategy::Strategy4
}
 
enum  MstopStrategy { MstopStrategy::Disabled, MstopStrategy::MotorOff, MstopStrategy::HoldPosition }
 
enum  PositionLimitStrategy { PositionLimitStrategy::HoldPosition, PositionLimitStrategy::DampedSpring, PositionLimitStrategy::MotorOff, PositionLimitStrategy::Disabled }
 

Public Member Functions

Actuatoractuator ()
 Actuator-specific commands. More...
 
const Actuatoractuator () const
 Actuator-specific commands. More...
 
StringFieldappendLog ()
 Appends to the current log message on the module. More...
 
const StringFieldappendLog () const
 Appends to the current log message on the module. More...
 
FlagFieldboot ()
 Boot the module from bootloader into application. More...
 
const FlagFieldboot () const
 Boot the module from bootloader into application. More...
 
FlagFieldclearLog ()
 Clears the log message on the module. More...
 
const FlagFieldclearLog () const
 Clears the log message on the module. More...
 
 Command (HebiCommandPtr)
 Wraps an existing C-style object that is managed by its parent. NOTE: this should not be used except by internal library functions! More...
 
 Command (Command &&other)
 Move constructor (necessary for containment in STL template classes) More...
 
NumberedFloatFielddebug ()
 Values for internal debug functions (channel 1-9 available). More...
 
const NumberedFloatFielddebug () const
 Values for internal debug functions (channel 1-9 available). More...
 
Ioio ()
 Any available digital or analog output pins on the device. More...
 
const Ioio () const
 Any available digital or analog output pins on the device. More...
 
LedFieldled ()
 The module's LED. More...
 
const LedFieldled () const
 The module's LED. More...
 
Commandoperator= (Command &&other)=delete
 
FlagFieldreset ()
 Restart the module. More...
 
const FlagFieldreset () const
 Restart the module. More...
 
Settingssettings ()
 Module settings that are typically changed at a slower rate. More...
 
const Settingssettings () const
 Module settings that are typically changed at a slower rate. More...
 
FlagFieldstopBoot ()
 Stop the module from automatically booting into application. More...
 
const FlagFieldstopBoot () const
 Stop the module from automatically booting into application. More...
 

Protected Types

using CommandGains = Gains< HebiCommandRef, FloatField, BoolField, HebiCommandFloatField, HebiCommandBoolField >
 

Private Attributes

Actuator actuator_
 
StringField append_log_
 
FlagField boot_
 
FlagField clear_log_
 
NumberedFloatField debug_
 
HebiCommandPtr internal_
 
HebiCommandRef internal_ref_
 
Io io_
 
LedField led_
 
FlagField reset_
 
Settings settings_
 
FlagField stop_boot_
 

Detailed Description

Command objects have various fields that can be set; when sent to the module, these fields control internal properties and setpoints.

This object has a hierarchical structure – there are some direct general-purpose fields at the top level, and many more specific fields contained in different nested subobjects.

The subobjects contain references to the parent command object, and so should not be used after the parent object has been destroyed.

The fields in the command object are typed; generally, these are optional-style read/write fields (i.e., have the concept of get/set/has/clear), although the return types and exact interface vary slightly between fields. Where appropriate, the explicit bool operator has been overridden so that you can shortcut if(field.has()) by calling if(field).

Although this header file can be used to look at the hierarchy of the messages, in general the online documentation at apidocs.hebi.us presents this information. in a more readable form.

Definition at line 33 of file command.hpp.

Member Typedef Documentation

Definition at line 495 of file command.hpp.

Member Enumeration Documentation

Enumerator
Off 

The motor is not given power (equivalent to a 0 PWM value)

DirectPWM 

A direct PWM value (-1 to 1) can be sent to the motor (subject to onboard safety limiting).

Strategy2 

A combination of the position, velocity, and effort loops with P and V feeding to T; documented on docs.hebi.us under "Control Modes"

Strategy3 

A combination of the position, velocity, and effort loops with P, V, and T feeding to PWM; documented on docs.hebi.us under "Control Modes"

Strategy4 

A combination of the position, velocity, and effort loops with P feeding to T and V feeding to PWM; documented on docs.hebi.us under "Control Modes"

Definition at line 35 of file command.hpp.

Enumerator
Disabled 

Triggering the M-Stop has no effect.

MotorOff 

Triggering the M-Stop results in the control strategy being set to 'off'. Remains 'off' until changed by user.

HoldPosition 

Triggering the M-Stop results in the motor holding the motor position. Operations resume to normal once trigger is released.

Definition at line 51 of file command.hpp.

Enumerator
HoldPosition 

Exceeding the position limit results in the actuator holding the position. Needs to be manually set to 'disabled' to recover.

DampedSpring 

Exceeding the position limit results in a virtual spring that pushes the actuator back to within the limits.

MotorOff 

Exceeding the position limit results in the control strategy being set to 'off'. Remains 'off' until changed by user.

Disabled 

Exceeding the position limit has no effect.

Definition at line 60 of file command.hpp.

Constructor & Destructor Documentation

hebi::Command::Command ( HebiCommandPtr  command)

Wraps an existing C-style object that is managed by its parent. NOTE: this should not be used except by internal library functions!

Definition at line 208 of file command.cpp.

hebi::Command::Command ( Command &&  other)

Move constructor (necessary for containment in STL template classes)

Definition at line 223 of file command.cpp.

Member Function Documentation

Actuator& hebi::Command::actuator ( )
inline

Actuator-specific commands.

Definition at line 774 of file command.hpp.

const Actuator& hebi::Command::actuator ( ) const
inline

Actuator-specific commands.

Definition at line 776 of file command.hpp.

StringField& hebi::Command::appendLog ( )
inline

Appends to the current log message on the module.

Definition at line 787 of file command.hpp.

const StringField& hebi::Command::appendLog ( ) const
inline

Appends to the current log message on the module.

Definition at line 789 of file command.hpp.

FlagField& hebi::Command::boot ( )
inline

Boot the module from bootloader into application.

Definition at line 795 of file command.hpp.

const FlagField& hebi::Command::boot ( ) const
inline

Boot the module from bootloader into application.

Definition at line 797 of file command.hpp.

FlagField& hebi::Command::clearLog ( )
inline

Clears the log message on the module.

Definition at line 803 of file command.hpp.

const FlagField& hebi::Command::clearLog ( ) const
inline

Clears the log message on the module.

Definition at line 805 of file command.hpp.

NumberedFloatField& hebi::Command::debug ( )
inline

Values for internal debug functions (channel 1-9 available).

Definition at line 782 of file command.hpp.

const NumberedFloatField& hebi::Command::debug ( ) const
inline

Values for internal debug functions (channel 1-9 available).

Definition at line 784 of file command.hpp.

Io& hebi::Command::io ( )
inline

Any available digital or analog output pins on the device.

Definition at line 766 of file command.hpp.

const Io& hebi::Command::io ( ) const
inline

Any available digital or analog output pins on the device.

Definition at line 768 of file command.hpp.

LedField& hebi::Command::led ( )
inline

The module's LED.

Definition at line 807 of file command.hpp.

const LedField& hebi::Command::led ( ) const
inline

The module's LED.

Definition at line 809 of file command.hpp.

Command& hebi::Command::operator= ( Command &&  other)
delete

Disable copy constructor/assignment operators

FlagField& hebi::Command::reset ( )
inline

Restart the module.

Definition at line 791 of file command.hpp.

const FlagField& hebi::Command::reset ( ) const
inline

Restart the module.

Definition at line 793 of file command.hpp.

Settings& hebi::Command::settings ( )
inline

Module settings that are typically changed at a slower rate.

Definition at line 770 of file command.hpp.

const Settings& hebi::Command::settings ( ) const
inline

Module settings that are typically changed at a slower rate.

Definition at line 772 of file command.hpp.

FlagField& hebi::Command::stopBoot ( )
inline

Stop the module from automatically booting into application.

Definition at line 799 of file command.hpp.

const FlagField& hebi::Command::stopBoot ( ) const
inline

Stop the module from automatically booting into application.

Definition at line 801 of file command.hpp.

Member Data Documentation

Actuator hebi::Command::actuator_
private

Definition at line 822 of file command.hpp.

StringField hebi::Command::append_log_
private

Definition at line 825 of file command.hpp.

FlagField hebi::Command::boot_
private

Definition at line 827 of file command.hpp.

FlagField hebi::Command::clear_log_
private

Definition at line 829 of file command.hpp.

NumberedFloatField hebi::Command::debug_
private

Definition at line 824 of file command.hpp.

HebiCommandPtr hebi::Command::internal_
private

C-style object; managed by parent. NOTE: this should not be used except by internal library functions!

Definition at line 744 of file command.hpp.

HebiCommandRef hebi::Command::internal_ref_
private

Definition at line 745 of file command.hpp.

Io hebi::Command::io_
private

Definition at line 820 of file command.hpp.

LedField hebi::Command::led_
private

Definition at line 830 of file command.hpp.

FlagField hebi::Command::reset_
private

Definition at line 826 of file command.hpp.

Settings hebi::Command::settings_
private

Definition at line 821 of file command.hpp.

FlagField hebi::Command::stop_boot_
private

Definition at line 828 of file command.hpp.


The documentation for this class was generated from the following files:


hebi_cpp_api_ros
Author(s): Chris Bollinger , Matthew Tesch
autogenerated on Thu May 28 2020 03:14:45