Fawkes API
Fawkes Development Version
|
24 #include <interfaces/MotorInterface.h>
26 #include <core/exceptions/software.h>
62 MotorInterface::MotorInterface() : Interface()
64 data_size =
sizeof(MotorInterface_data_t);
66 data = (MotorInterface_data_t *)
data_ptr;
97 unsigned char tmp_hash[] = {0x62, 0x6c, 0x3f, 0x33, 0x1c, 0x3a, 0x9e, 0x18, 0xd5, 0xee, 0xab, 0x30, 0xfb, 0x10, 0xf0, 0x79};
102 MotorInterface::~MotorInterface()
116 return data->motor_state;
150 return data->drive_mode;
184 return data->right_rpm;
218 return data->rear_rpm;
252 return data->left_rpm;
286 return data->odometry_path_length;
320 return data->odometry_position_x;
354 return data->odometry_position_y;
388 return data->odometry_orientation;
592 return data->des_omega;
627 return data->controller;
664 return data->controller_thread_name;
695 if ( strncmp(
"SetMotorStateMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
697 }
else if ( strncmp(
"AcquireControlMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
699 }
else if ( strncmp(
"ResetOdometryMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
701 }
else if ( strncmp(
"SetOdometryMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
703 }
else if ( strncmp(
"DriveRPMMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
705 }
else if ( strncmp(
"GotoMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
707 }
else if ( strncmp(
"TransMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
709 }
else if ( strncmp(
"RotMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
711 }
else if ( strncmp(
"TransRotMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
713 }
else if ( strncmp(
"OrbitMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
715 }
else if ( strncmp(
"LinTransRotMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
719 "message type for this interface type.",
type);
735 memcpy(data, oi->data,
sizeof(MotorInterface_data_t));
757 data_size =
sizeof(SetMotorStateMessage_data_t);
760 data = (SetMotorStateMessage_data_t *)
data_ptr;
762 data->motor_state = ini_motor_state;
768 data_size =
sizeof(SetMotorStateMessage_data_t);
771 data = (SetMotorStateMessage_data_t *)
data_ptr;
790 data = (SetMotorStateMessage_data_t *)
data_ptr;
804 return data->motor_state;
852 data_size =
sizeof(AcquireControlMessage_data_t);
855 data = (AcquireControlMessage_data_t *)
data_ptr;
857 data->controller = ini_controller;
858 strncpy(data->controller_thread_name, ini_controller_thread_name, 64-1);
859 data->controller_thread_name[64-1] = 0;
866 data_size =
sizeof(AcquireControlMessage_data_t);
869 data = (AcquireControlMessage_data_t *)
data_ptr;
889 data = (AcquireControlMessage_data_t *)
data_ptr;
904 return data->controller;
941 return data->controller_thread_name;
965 change_field(data->controller_thread_name, new_controller_thread_name);
988 data_size =
sizeof(ResetOdometryMessage_data_t);
991 data = (ResetOdometryMessage_data_t *)
data_ptr;
1009 data = (ResetOdometryMessage_data_t *)
data_ptr;
1038 data_size =
sizeof(SetOdometryMessage_data_t);
1041 data = (SetOdometryMessage_data_t *)
data_ptr;
1045 data->odometry_orientation = ini_odometry_orientation;
1053 data_size =
sizeof(SetOdometryMessage_data_t);
1056 data = (SetOdometryMessage_data_t *)
data_ptr;
1077 data = (SetOdometryMessage_data_t *)
data_ptr;
1149 return data->odometry_orientation;
1169 change_field(data->odometry_orientation, new_odometry_orientation);
1196 data_size =
sizeof(DriveRPMMessage_data_t);
1199 data = (DriveRPMMessage_data_t *)
data_ptr;
1201 data->front_right = ini_front_right;
1202 data->front_left = ini_front_left;
1203 data->rear = ini_rear;
1211 data_size =
sizeof(DriveRPMMessage_data_t);
1214 data = (DriveRPMMessage_data_t *)
data_ptr;
1235 data = (DriveRPMMessage_data_t *)
data_ptr;
1247 return data->front_right;
1277 return data->front_left;
1358 data = (GotoMessage_data_t *)
data_ptr;
1362 data->phi = ini_phi;
1363 data->time_sec = ini_time_sec;
1375 data = (GotoMessage_data_t *)
data_ptr;
1397 data = (GotoMessage_data_t *)
data_ptr;
1499 return data->time_sec;
1545 data_size =
sizeof(TransMessage_data_t);
1548 data = (TransMessage_data_t *)
data_ptr;
1558 data_size =
sizeof(TransMessage_data_t);
1561 data = (TransMessage_data_t *)
data_ptr;
1581 data = (TransMessage_data_t *)
data_ptr;
1671 data = (RotMessage_data_t *)
data_ptr;
1673 data->omega = ini_omega;
1682 data = (RotMessage_data_t *)
data_ptr;
1701 data = (RotMessage_data_t *)
data_ptr;
1760 data_size =
sizeof(TransRotMessage_data_t);
1763 data = (TransRotMessage_data_t *)
data_ptr;
1767 data->omega = ini_omega;
1775 data_size =
sizeof(TransRotMessage_data_t);
1778 data = (TransRotMessage_data_t *)
data_ptr;
1799 data = (TransRotMessage_data_t *)
data_ptr;
1918 data_size =
sizeof(OrbitMessage_data_t);
1921 data = (OrbitMessage_data_t *)
data_ptr;
1925 data->omega = ini_omega;
1933 data_size =
sizeof(OrbitMessage_data_t);
1936 data = (OrbitMessage_data_t *)
data_ptr;
1957 data = (OrbitMessage_data_t *)
data_ptr;
2076 data_size =
sizeof(LinTransRotMessage_data_t);
2079 data = (LinTransRotMessage_data_t *)
data_ptr;
2083 data->omega = ini_omega;
2091 data_size =
sizeof(LinTransRotMessage_data_t);
2094 data = (LinTransRotMessage_data_t *)
data_ptr;
2115 data = (LinTransRotMessage_data_t *)
data_ptr;
2268 if ( m10 != NULL ) {
LinTransRotMessage Fawkes BlackBoard Interface Message.
void set_y(const float new_y)
Set y value.
DriveRPMMessage()
Constructor.
SetMotorStateMessage Fawkes BlackBoard Interface Message.
float des_vx() const
Get des_vx value.
static const uint32_t DRIVE_MODE_TRANS
DRIVE_MODE_TRANS constant.
float omega() const
Get omega value.
void * data_ptr
Pointer to local memory storage.
uint32_t motor_state() const
Get motor_state value.
void set_controller_thread_name(const char *new_controller_thread_name)
Set controller_thread_name value.
uint32_t controller() const
Get controller value.
~GotoMessage()
Destructor.
virtual Message * clone() const
Clone this message.
float vx() const
Get vx value.
float rear() const
Get rear value.
uint32_t drive_mode() const
Get drive_mode value.
float vy() const
Get vy value.
static const uint32_t DRIVE_MODE_ROT
DRIVE_MODE_ROT constant.
virtual void copy_values(const Interface *other)
Copy values from other interface.
float omega() const
Get omega value.
virtual Message * clone() const
Clone this message.
static const uint32_t DRIVE_MODE_RPM
DRIVE_MODE_RPM constant.
float y() const
Get y value.
int32_t right_rpm() const
Get right_rpm value.
size_t maxlenof_rear() const
Get maximum length of rear value.
void set_odometry_orientation(const float new_odometry_orientation)
Set odometry_orientation value.
size_t maxlenof_motor_state() const
Get maximum length of motor_state value.
float x() const
Get x value.
size_t maxlenof_front_left() const
Get maximum length of front_left value.
GotoMessage Fawkes BlackBoard Interface Message.
void set_vx(const float new_vx)
Set vx value.
~TransMessage()
Destructor.
TransRotMessage Fawkes BlackBoard Interface Message.
void set_omega(const float new_omega)
Set omega value.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
AcquireControlMessage()
Constructor.
float py() const
Get py value.
void * data_ptr
Pointer to memory that contains local data.
size_t maxlenof_vx() const
Get maximum length of vx value.
size_t maxlenof_motor_state() const
Get maximum length of motor_state value.
message_data_ts_t * data_ts
data timestamp aliasing pointer
size_t maxlenof_left_rpm() const
Get maximum length of left_rpm value.
size_t maxlenof_controller() const
Get maximum length of controller value.
@ IFT_UINT32
32 bit unsigned integer field
float des_vy() const
Get des_vy value.
void set_px(const float new_px)
Set px value.
float vy() const
Get vy value.
size_t maxlenof_vy() const
Get maximum length of vy value.
size_t maxlenof_vy() const
Get maximum length of vy value.
virtual Message * clone() const
Clone this message.
virtual Message * clone() const
Clone this message.
size_t maxlenof_controller_thread_name() const
Get maximum length of controller_thread_name value.
void set_vx(const float new_vx)
Set vx value.
size_t maxlenof_drive_mode() const
Get maximum length of drive_mode value.
const char * type() const
Get type of interface.
size_t maxlenof_px() const
Get maximum length of px value.
void set_omega(const float new_omega)
Set omega value.
void set_motor_state(const uint32_t new_motor_state)
Set motor_state value.
MotorInterface Fawkes BlackBoard Interface.
size_t maxlenof_x() const
Get maximum length of x value.
size_t maxlenof_phi() const
Get maximum length of phi value.
int32_t left_rpm() const
Get left_rpm value.
void set_des_omega(const float new_des_omega)
Set des_omega value.
virtual Message * create_message(const char *type) const
Create message based on type name.
size_t maxlenof_omega() const
Get maximum length of omega value.
float vx() const
Get vx value.
void set_rear(const float new_rear)
Set rear value.
float phi() const
Get phi value.
float odometry_orientation() const
Get odometry_orientation value.
float odometry_position_y() const
Get odometry_position_y value.
Timestamp data, must be present and first entries for each interface data structs!...
static const uint32_t MOTOR_ENABLED
MOTOR_ENABLED constant.
virtual Message * clone() const
Clone this message.
size_t maxlenof_y() const
Get maximum length of y value.
static const uint32_t MOTOR_DISABLED
MOTOR_DISABLED constant.
float vy() const
Get vy value.
static const uint32_t DRIVE_MODE_TRANS_ROT
DRIVE_MODE_TRANS_ROT constant.
void set_drive_mode(const uint32_t new_drive_mode)
Set drive_mode value.
GotoMessage()
Constructor.
static const uint32_t DRIVE_MODE_LINE_TRANS_ROT
DRIVE_MODE_LINE_TRANS_ROT constant.
bool data_changed
Indicator if data has changed.
size_t maxlenof_vx() const
Get maximum length of vx value.
~ResetOdometryMessage()
Destructor.
size_t maxlenof_des_vx() const
Get maximum length of des_vx value.
size_t maxlenof_odometry_position_y() const
Get maximum length of odometry_position_y value.
size_t maxlenof_right_rpm() const
Get maximum length of right_rpm value.
void set_vy(const float new_vy)
Set vy value.
@ IFT_INT32
32 bit integer field
float des_omega() const
Get des_omega value.
void set_vy(const float new_vy)
Set vy value.
void set_odometry_position_x(const float new_odometry_position_x)
Set odometry_position_x value.
ResetOdometryMessage Fawkes BlackBoard Interface Message.
void set_controller_thread_name(const char *new_controller_thread_name)
Set controller_thread_name value.
size_t maxlenof_omega() const
Get maximum length of omega value.
size_t maxlenof_vx() const
Get maximum length of vx value.
size_t maxlenof_des_omega() const
Get maximum length of des_omega value.
float omega() const
Get omega value.
uint32_t controller() const
Get controller value.
Fawkes library namespace.
size_t maxlenof_omega() const
Get maximum length of omega value.
void set_des_vy(const float new_des_vy)
Set des_vy value.
float odometry_orientation() const
Get odometry_orientation value.
float y() const
Get y value.
void set_hash(unsigned char *ihash)
Set hash.
char * controller_thread_name() const
Get controller_thread_name value.
unsigned int data_size
Size of memory needed to hold all data.
~AcquireControlMessage()
Destructor.
LinTransRotMessage()
Constructor.
size_t maxlenof_omega() const
Get maximum length of omega value.
float px() const
Get px value.
SetMotorStateMessage()
Constructor.
ResetOdometryMessage()
Constructor.
size_t maxlenof_x() const
Get maximum length of x value.
float x() const
Get x value.
void set_omega(const float new_omega)
Set omega value.
virtual Message * clone() const
Clone this message.
Base class for all Fawkes BlackBoard interfaces.
size_t maxlenof_odometry_position_x() const
Get maximum length of odometry_position_x value.
size_t maxlenof_time_sec() const
Get maximum length of time_sec value.
TransMessage Fawkes BlackBoard Interface Message.
void set_vx(const float new_vx)
Set vx value.
void set_phi(const float new_phi)
Set phi value.
DriveRPMMessage Fawkes BlackBoard Interface Message.
virtual Message * clone() const
Clone this message.
float front_left() const
Get front_left value.
float front_right() const
Get front_right value.
void set_odometry_position_y(const float new_odometry_position_y)
Set odometry_position_y value.
OrbitMessage Fawkes BlackBoard Interface Message.
size_t maxlenof_controller_thread_name() const
Get maximum length of controller_thread_name value.
int32_t rear_rpm() const
Get rear_rpm value.
char * controller_thread_name() const
Get controller_thread_name value.
size_t maxlenof_vy() const
Get maximum length of vy value.
~SetMotorStateMessage()
Destructor.
void add_fieldinfo(interface_fieldtype_t type, const char *name, size_t length, void *value, const char *enumtype=0, const interface_enum_map_t *enum_map=0)
Add an entry to the info list.
RotMessage Fawkes BlackBoard Interface Message.
float omega() const
Get omega value.
void set_x(const float new_x)
Set x value.
void set_des_vx(const float new_des_vx)
Set des_vx value.
~SetOdometryMessage()
Destructor.
void set_motor_state(const uint32_t new_motor_state)
Set motor_state value.
~OrbitMessage()
Destructor.
void set_vy(const float new_vy)
Set vy value.
~DriveRPMMessage()
Destructor.
size_t maxlenof_py() const
Get maximum length of py value.
size_t maxlenof_front_right() const
Get maximum length of front_right value.
size_t maxlenof_odometry_path_length() const
Get maximum length of odometry_path_length value.
void set_odometry_orientation(const float new_odometry_orientation)
Set odometry_orientation value.
void set_omega(const float new_omega)
Set omega value.
void set_right_rpm(const int32_t new_right_rpm)
Set right_rpm value.
TransRotMessage()
Constructor.
virtual const char * enum_tostring(const char *enumtype, int val) const
Convert arbitrary enum value to string.
size_t maxlenof_omega() const
Get maximum length of omega value.
virtual Message * clone() const
Clone this message.
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
virtual Message * clone() const
Clone this message.
void set_py(const float new_py)
Set py value.
size_t maxlenof_vx() const
Get maximum length of vx value.
void set_omega(const float new_omega)
Set omega value.
static const uint32_t DRIVE_MODE_ORBIT
DRIVE_MODE_ORBIT constant.
size_t maxlenof_vy() const
Get maximum length of vy value.
float vx() const
Get vx value.
size_t maxlenof_controller() const
Get maximum length of controller value.
void set_y(const float new_y)
Set y value.
AcquireControlMessage Fawkes BlackBoard Interface Message.
TransMessage()
Constructor.
float odometry_position_x() const
Get odometry_position_x value.
~LinTransRotMessage()
Destructor.
void set_x(const float new_x)
Set x value.
SetOdometryMessage()
Constructor.
size_t maxlenof_odometry_orientation() const
Get maximum length of odometry_orientation value.
float odometry_path_length() const
Get odometry_path_length value.
virtual Message * clone() const
Clone this message.
size_t maxlenof_des_vy() const
Get maximum length of des_vy value.
float vx() const
Get vx value.
virtual Message * clone() const
Clone this message.
void set_controller(const uint32_t new_controller)
Set controller value.
OrbitMessage()
Constructor.
void set_left_rpm(const int32_t new_left_rpm)
Set left_rpm value.
void add_messageinfo(const char *name)
Add an entry to the message info list.
float time_sec() const
Get time_sec value.
void set_front_left(const float new_front_left)
Set front_left value.
void set_front_right(const float new_front_right)
Set front_right value.
size_t maxlenof_rear_rpm() const
Get maximum length of rear_rpm value.
void set_time_sec(const float new_time_sec)
Set time_sec value.
SetOdometryMessage Fawkes BlackBoard Interface Message.
float omega() const
Get omega value.
size_t maxlenof_y() const
Get maximum length of y value.
void set_rear_rpm(const int32_t new_rear_rpm)
Set rear_rpm value.
bool change_field(FieldT &field, const DataT &value)
Set a field and return whether it changed.
~TransRotMessage()
Destructor.
float vy() const
Get vy value.
void set_vx(const float new_vx)
Set vx value.
size_t maxlenof_odometry_orientation() const
Get maximum length of odometry_orientation value.
uint32_t motor_state() const
Get motor_state value.
void set_controller(const uint32_t new_controller)
Set controller value.
void set_vy(const float new_vy)
Set vy value.
void set_odometry_path_length(const float new_odometry_path_length)
Set odometry_path_length value.