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;
138 data->motor_state = new_motor_state;
151 return data->drive_mode;
173 data->drive_mode = new_drive_mode;
186 return data->right_rpm;
208 data->right_rpm = new_right_rpm;
221 return data->rear_rpm;
243 data->rear_rpm = new_rear_rpm;
256 return data->left_rpm;
278 data->left_rpm = new_left_rpm;
291 return data->odometry_path_length;
313 data->odometry_path_length = new_odometry_path_length;
326 return data->odometry_position_x;
348 data->odometry_position_x = new_odometry_position_x;
361 return data->odometry_position_y;
383 data->odometry_position_y = new_odometry_position_y;
396 return data->odometry_orientation;
418 data->odometry_orientation = new_odometry_orientation;
523 data->omega = new_omega;
558 data->des_vx = new_des_vx;
593 data->des_vy = new_des_vy;
606 return data->des_omega;
628 data->des_omega = new_des_omega;
642 return data->controller;
665 data->controller = new_controller;
680 return data->controller_thread_name;
704 strncpy(data->controller_thread_name, new_controller_thread_name,
sizeof(data->controller_thread_name));
712 if ( strncmp(
"SetMotorStateMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
714 }
else if ( strncmp(
"AcquireControlMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
716 }
else if ( strncmp(
"ResetOdometryMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
718 }
else if ( strncmp(
"SetOdometryMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
720 }
else if ( strncmp(
"DriveRPMMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
722 }
else if ( strncmp(
"GotoMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
724 }
else if ( strncmp(
"TransMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
726 }
else if ( strncmp(
"RotMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
728 }
else if ( strncmp(
"TransRotMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
730 }
else if ( strncmp(
"OrbitMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
732 }
else if ( strncmp(
"LinTransRotMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
736 "message type for this interface type.", type);
752 memcpy(data, oi->data,
sizeof(MotorInterface_data_t));
774 data_size =
sizeof(SetMotorStateMessage_data_t);
777 data = (SetMotorStateMessage_data_t *)
data_ptr;
779 data->motor_state = ini_motor_state;
785 data_size =
sizeof(SetMotorStateMessage_data_t);
788 data = (SetMotorStateMessage_data_t *)
data_ptr;
807 data = (SetMotorStateMessage_data_t *)
data_ptr;
821 return data->motor_state;
843 data->motor_state = new_motor_state;
869 data_size =
sizeof(AcquireControlMessage_data_t);
872 data = (AcquireControlMessage_data_t *)
data_ptr;
874 data->controller = ini_controller;
875 strncpy(data->controller_thread_name, ini_controller_thread_name, 64);
882 data_size =
sizeof(AcquireControlMessage_data_t);
885 data = (AcquireControlMessage_data_t *)
data_ptr;
905 data = (AcquireControlMessage_data_t *)
data_ptr;
920 return data->controller;
943 data->controller = new_controller;
957 return data->controller_thread_name;
981 strncpy(data->controller_thread_name, new_controller_thread_name,
sizeof(data->controller_thread_name));
1004 data_size =
sizeof(ResetOdometryMessage_data_t);
1007 data = (ResetOdometryMessage_data_t *)
data_ptr;
1025 data = (ResetOdometryMessage_data_t *)
data_ptr;
1054 data_size =
sizeof(SetOdometryMessage_data_t);
1057 data = (SetOdometryMessage_data_t *)
data_ptr;
1061 data->odometry_orientation = ini_odometry_orientation;
1069 data_size =
sizeof(SetOdometryMessage_data_t);
1072 data = (SetOdometryMessage_data_t *)
data_ptr;
1093 data = (SetOdometryMessage_data_t *)
data_ptr;
1165 return data->odometry_orientation;
1185 data->odometry_orientation = new_odometry_orientation;
1212 data_size =
sizeof(DriveRPMMessage_data_t);
1215 data = (DriveRPMMessage_data_t *)
data_ptr;
1217 data->front_right = ini_front_right;
1218 data->front_left = ini_front_left;
1219 data->rear = ini_rear;
1227 data_size =
sizeof(DriveRPMMessage_data_t);
1230 data = (DriveRPMMessage_data_t *)
data_ptr;
1251 data = (DriveRPMMessage_data_t *)
data_ptr;
1263 return data->front_right;
1283 data->front_right = new_front_right;
1293 return data->front_left;
1313 data->front_left = new_front_left;
1343 data->rear = new_rear;
1374 data = (GotoMessage_data_t *)
data_ptr;
1378 data->phi = ini_phi;
1379 data->time_sec = ini_time_sec;
1391 data = (GotoMessage_data_t *)
data_ptr;
1413 data = (GotoMessage_data_t *)
data_ptr;
1505 data->phi = new_phi;
1515 return data->time_sec;
1535 data->time_sec = new_time_sec;
1561 data_size =
sizeof(TransMessage_data_t);
1564 data = (TransMessage_data_t *)
data_ptr;
1574 data_size =
sizeof(TransMessage_data_t);
1577 data = (TransMessage_data_t *)
data_ptr;
1597 data = (TransMessage_data_t *)
data_ptr;
1687 data = (RotMessage_data_t *)
data_ptr;
1689 data->omega = ini_omega;
1698 data = (RotMessage_data_t *)
data_ptr;
1717 data = (RotMessage_data_t *)
data_ptr;
1749 data->omega = new_omega;
1776 data_size =
sizeof(TransRotMessage_data_t);
1779 data = (TransRotMessage_data_t *)
data_ptr;
1783 data->omega = ini_omega;
1791 data_size =
sizeof(TransRotMessage_data_t);
1794 data = (TransRotMessage_data_t *)
data_ptr;
1815 data = (TransRotMessage_data_t *)
data_ptr;
1907 data->omega = new_omega;
1934 data_size =
sizeof(OrbitMessage_data_t);
1937 data = (OrbitMessage_data_t *)
data_ptr;
1941 data->omega = ini_omega;
1949 data_size =
sizeof(OrbitMessage_data_t);
1952 data = (OrbitMessage_data_t *)
data_ptr;
1973 data = (OrbitMessage_data_t *)
data_ptr;
2065 data->omega = new_omega;
2092 data_size =
sizeof(LinTransRotMessage_data_t);
2095 data = (LinTransRotMessage_data_t *)
data_ptr;
2099 data->omega = ini_omega;
2107 data_size =
sizeof(LinTransRotMessage_data_t);
2110 data = (LinTransRotMessage_data_t *)
data_ptr;
2131 data = (LinTransRotMessage_data_t *)
data_ptr;
2223 data->omega = new_omega;
2284 if ( m10 != NULL ) {
~TransMessage()
Destructor.
void set_des_vx(const float new_des_vx)
Set des_vx value.
size_t maxlenof_motor_state() const
Get maximum length of motor_state value.
void set_vy(const float new_vy)
Set vy value.
OrbitMessage()
Constructor.
virtual Message * clone() const
Clone this message.
~ResetOdometryMessage()
Destructor.
void set_omega(const float new_omega)
Set omega value.
void * data_ptr
Pointer to memory that contains local data.
SetMotorStateMessage Fawkes BlackBoard Interface Message.
float vx() const
Get vx value.
static const uint32_t DRIVE_MODE_LINE_TRANS_ROT
DRIVE_MODE_LINE_TRANS_ROT constant.
virtual Message * clone() const
Clone this message.
virtual Message * clone() const
Clone this message.
float px() const
Get px value.
size_t maxlenof_omega() const
Get maximum length of omega value.
DriveRPMMessage()
Constructor.
virtual Message * clone() const
Clone this message.
RotMessage Fawkes BlackBoard Interface Message.
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
static const uint32_t MOTOR_ENABLED
MOTOR_ENABLED constant.
size_t maxlenof_controller() const
Get maximum length of controller value.
float odometry_position_x() const
Get odometry_position_x value.
uint32_t controller() const
Get controller value.
size_t maxlenof_omega() const
Get maximum length of omega value.
virtual Message * clone() const
Clone this message.
void set_rear(const float new_rear)
Set rear value.
float vy() const
Get vy value.
static const uint32_t DRIVE_MODE_RPM
DRIVE_MODE_RPM constant.
virtual Message * clone() const
Clone this message.
void set_omega(const float new_omega)
Set omega value.
void set_vx(const float new_vx)
Set vx value.
TransRotMessage Fawkes BlackBoard Interface Message.
size_t maxlenof_x() const
Get maximum length of x value.
float front_left() const
Get front_left value.
size_t maxlenof_odometry_position_x() const
Get maximum length of odometry_position_x value.
void set_hash(unsigned char *ihash)
Set hash.
void set_odometry_position_y(const float new_odometry_position_y)
Set odometry_position_y value.
float omega() const
Get omega value.
uint32_t controller() const
Get controller value.
~AcquireControlMessage()
Destructor.
Fawkes library namespace.
~SetOdometryMessage()
Destructor.
size_t maxlenof_rear_rpm() const
Get maximum length of rear_rpm value.
size_t maxlenof_vx() const
Get maximum length of vx value.
TransMessage()
Constructor.
void set_controller(const uint32_t new_controller)
Set controller value.
Timestamp data, must be present and first entries for each interface data structs! This leans on time...
float y() const
Get y value.
void set_vy(const float new_vy)
Set vy value.
float vx() const
Get vx value.
void set_y(const float new_y)
Set y value.
int32_t left_rpm() const
Get left_rpm value.
void set_motor_state(const uint32_t new_motor_state)
Set motor_state value.
void set_vy(const float new_vy)
Set vy value.
float odometry_path_length() const
Get odometry_path_length value.
SetOdometryMessage()
Constructor.
virtual Message * create_message(const char *type) const
Create message based on type name.
~TransRotMessage()
Destructor.
void set_controller(const uint32_t new_controller)
Set controller value.
void set_odometry_orientation(const float new_odometry_orientation)
Set odometry_orientation value.
void set_rear_rpm(const int32_t new_rear_rpm)
Set rear_rpm value.
void set_front_right(const float new_front_right)
Set front_right value.
ResetOdometryMessage()
Constructor.
virtual Message * clone() const
Clone this message.
float x() const
Get x value.
OrbitMessage Fawkes BlackBoard Interface Message.
void set_motor_state(const uint32_t new_motor_state)
Set motor_state value.
size_t maxlenof_front_left() const
Get maximum length of front_left value.
uint32_t drive_mode() const
Get drive_mode value.
size_t maxlenof_right_rpm() const
Get maximum length of right_rpm value.
size_t maxlenof_phi() const
Get maximum length of phi value.
Base class for all Fawkes BlackBoard interfaces.
size_t maxlenof_controller() const
Get maximum length of controller value.
int32_t rear_rpm() const
Get rear_rpm value.
AcquireControlMessage()
Constructor.
size_t maxlenof_odometry_orientation() const
Get maximum length of odometry_orientation value.
void set_time_sec(const float new_time_sec)
Set time_sec value.
size_t maxlenof_motor_state() const
Get maximum length of motor_state value.
void set_omega(const float new_omega)
Set omega value.
size_t maxlenof_odometry_orientation() const
Get maximum length of odometry_orientation value.
size_t maxlenof_front_right() const
Get maximum length of front_right value.
void set_right_rpm(const int32_t new_right_rpm)
Set right_rpm value.
void set_left_rpm(const int32_t new_left_rpm)
Set left_rpm value.
float vx() const
Get vx value.
void set_des_omega(const float new_des_omega)
Set des_omega value.
message_data_ts_t * data_ts
data timestamp aliasing pointer
float phi() const
Get phi value.
~SetMotorStateMessage()
Destructor.
ResetOdometryMessage Fawkes BlackBoard Interface Message.
unsigned int data_size
Size of memory needed to hold all data.
void set_odometry_path_length(const float new_odometry_path_length)
Set odometry_path_length value.
virtual Message * clone() const
Clone this message.
size_t maxlenof_drive_mode() const
Get maximum length of drive_mode value.
float odometry_orientation() const
Get odometry_orientation value.
float odometry_position_y() const
Get odometry_position_y value.
AcquireControlMessage Fawkes BlackBoard Interface Message.
LinTransRotMessage()
Constructor.
void add_messageinfo(const char *name)
Add an entry to the message info list.
float time_sec() const
Get time_sec value.
bool data_changed
Indicator if data has changed.
size_t maxlenof_px() const
Get maximum length of px value.
void set_des_vy(const float new_des_vy)
Set des_vy value.
float vy() const
Get vy value.
const char * type() const
Get type of interface.
size_t maxlenof_vy() const
Get maximum length of vy value.
static const uint32_t DRIVE_MODE_TRANS_ROT
DRIVE_MODE_TRANS_ROT constant.
void set_x(const float new_x)
Set x value.
~OrbitMessage()
Destructor.
void set_vy(const float new_vy)
Set vy value.
void set_phi(const float new_phi)
Set phi value.
void set_vx(const float new_vx)
Set vx value.
void set_omega(const float new_omega)
Set omega value.
float rear() const
Get rear value.
void set_py(const float new_py)
Set py value.
float omega() const
Get omega value.
static const uint32_t DRIVE_MODE_TRANS
DRIVE_MODE_TRANS constant.
float y() const
Get y value.
void set_omega(const float new_omega)
Set omega value.
size_t maxlenof_des_vy() const
Get maximum length of des_vy value.
void set_odometry_orientation(const float new_odometry_orientation)
Set odometry_orientation value.
size_t maxlenof_vx() const
Get maximum length of vx value.
void set_front_left(const float new_front_left)
Set front_left value.
float omega() const
Get omega value.
size_t maxlenof_y() const
Get maximum length of y value.
int32_t right_rpm() const
Get right_rpm value.
~LinTransRotMessage()
Destructor.
~DriveRPMMessage()
Destructor.
size_t maxlenof_rear() const
Get maximum length of rear value.
void set_controller_thread_name(const char *new_controller_thread_name)
Set controller_thread_name value.
LinTransRotMessage Fawkes BlackBoard Interface Message.
float vx() const
Get vx value.
GotoMessage()
Constructor.
void set_px(const float new_px)
Set px value.
float omega() const
Get omega value.
uint32_t motor_state() const
Get motor_state value.
SetMotorStateMessage()
Constructor.
size_t maxlenof_vx() const
Get maximum length of vx value.
size_t maxlenof_controller_thread_name() const
Get maximum length of controller_thread_name value.
char * controller_thread_name() const
Get controller_thread_name value.
char * controller_thread_name() const
Get controller_thread_name value.
virtual Message * clone() const
Clone this message.
float des_vx() const
Get des_vx value.
DriveRPMMessage Fawkes BlackBoard Interface Message.
size_t maxlenof_omega() const
Get maximum length of omega value.
size_t maxlenof_y() const
Get maximum length of y value.
float vy() const
Get vy value.
void set_drive_mode(const uint32_t new_drive_mode)
Set drive_mode value.
void set_vx(const float new_vx)
Set vx value.
float front_right() const
Get front_right value.
virtual Message * clone() const
Clone this message.
void set_vx(const float new_vx)
Set vx value.
size_t maxlenof_vy() const
Get maximum length of vy value.
size_t maxlenof_vx() const
Get maximum length of vx value.
float des_omega() const
Get des_omega value.
virtual Message * clone() const
Clone this message.
static const uint32_t MOTOR_DISABLED
MOTOR_DISABLED constant.
void set_odometry_position_x(const float new_odometry_position_x)
Set odometry_position_x value.
float des_vy() const
Get des_vy value.
size_t maxlenof_omega() const
Get maximum length of omega value.
size_t maxlenof_left_rpm() const
Get maximum length of left_rpm value.
size_t maxlenof_odometry_position_y() const
Get maximum length of odometry_position_y value.
static const uint32_t DRIVE_MODE_ORBIT
DRIVE_MODE_ORBIT constant.
size_t maxlenof_controller_thread_name() const
Get maximum length of controller_thread_name value.
MotorInterface Fawkes BlackBoard Interface.
size_t maxlenof_time_sec() const
Get maximum length of time_sec value.
virtual const char * enum_tostring(const char *enumtype, int val) const
Convert arbitrary enum value to string.
float py() const
Get py value.
size_t maxlenof_des_omega() const
Get maximum length of des_omega value.
size_t maxlenof_odometry_path_length() const
Get maximum length of odometry_path_length value.
TransRotMessage()
Constructor.
float odometry_orientation() const
Get odometry_orientation value.
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.
GotoMessage Fawkes BlackBoard Interface Message.
size_t maxlenof_des_vx() const
Get maximum length of des_vx value.
SetOdometryMessage Fawkes BlackBoard Interface Message.
~GotoMessage()
Destructor.
size_t maxlenof_omega() const
Get maximum length of omega value.
float x() const
Get x value.
const char * type() const
Get message type.
size_t maxlenof_vy() const
Get maximum length of vy value.
void set_controller_thread_name(const char *new_controller_thread_name)
Set controller_thread_name value.
void set_x(const float new_x)
Set x value.
uint32_t motor_state() const
Get motor_state value.
32 bit unsigned integer field
size_t maxlenof_py() const
Get maximum length of py 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 vy() const
Get vy value.
size_t maxlenof_x() const
Get maximum length of x value.
TransMessage Fawkes BlackBoard Interface Message.
float omega() const
Get omega value.
size_t maxlenof_vy() const
Get maximum length of vy value.
void set_y(const float new_y)
Set y value.