24 #include <interfaces/OpenRaveInterface.h>
26 #include <core/exceptions/software.h>
46 OpenRaveInterface::OpenRaveInterface() : Interface()
48 data_size =
sizeof(OpenRaveInterface_data_t);
49 data_ptr = malloc(data_size);
50 data = (OpenRaveInterface_data_t *)data_ptr;
51 data_ts = (interface_data_ts_t *)data_ptr;
52 memset(data_ptr, 0, data_size);
53 add_fieldinfo(IFT_UINT32,
"msgid", 1, &data->msgid);
54 add_fieldinfo(IFT_BOOL,
"final", 1, &data->final);
55 add_fieldinfo(IFT_UINT32,
"error_code", 1, &data->error_code);
56 add_fieldinfo(IFT_BOOL,
"success", 1, &data->success);
57 add_messageinfo(
"StartViewerMessage");
58 add_messageinfo(
"AddObjectMessage");
59 add_messageinfo(
"DeleteObjectMessage");
60 add_messageinfo(
"DeleteAllObjectsMessage");
61 add_messageinfo(
"AttachObjectMessage");
62 add_messageinfo(
"ReleaseObjectMessage");
63 add_messageinfo(
"ReleaseAllObjectsMessage");
64 add_messageinfo(
"MoveObjectMessage");
65 add_messageinfo(
"RotateObjectQuatMessage");
66 add_messageinfo(
"RotateObjectMessage");
67 add_messageinfo(
"RenameObjectMessage");
68 unsigned char tmp_hash[] = {0xac, 0x95, 0xde, 0xc, 0xea, 0xa4, 0x97, 0x56, 0x5c, 0x46, 0x11, 0x5b, 0xf7, 0x60, 0x41, 0xb};
73 OpenRaveInterface::~OpenRaveInterface()
84 OpenRaveInterface::msgid()
const
94 OpenRaveInterface::maxlenof_msgid()
const
105 OpenRaveInterface::set_msgid(
const uint32_t new_msgid)
107 set_field(data->msgid, new_msgid);
116 OpenRaveInterface::is_final()
const
126 OpenRaveInterface::maxlenof_final()
const
137 OpenRaveInterface::set_final(
const bool new_final)
139 set_field(data->final, new_final);
149 OpenRaveInterface::error_code()
const
151 return data->error_code;
159 OpenRaveInterface::maxlenof_error_code()
const
171 OpenRaveInterface::set_error_code(
const uint32_t new_error_code)
173 set_field(data->error_code, new_error_code);
181 OpenRaveInterface::is_success()
const
183 return data->success;
191 OpenRaveInterface::maxlenof_success()
const
201 OpenRaveInterface::set_success(
const bool new_success)
203 set_field(data->success, new_success);
208 OpenRaveInterface::create_message(
const char *type)
const
210 if ( strncmp(
"StartViewerMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
212 }
else if ( strncmp(
"AddObjectMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
214 }
else if ( strncmp(
"DeleteObjectMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
216 }
else if ( strncmp(
"DeleteAllObjectsMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
218 }
else if ( strncmp(
"AttachObjectMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
220 }
else if ( strncmp(
"ReleaseObjectMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
222 }
else if ( strncmp(
"ReleaseAllObjectsMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
224 }
else if ( strncmp(
"MoveObjectMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
226 }
else if ( strncmp(
"RotateObjectQuatMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
228 }
else if ( strncmp(
"RotateObjectMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
230 }
else if ( strncmp(
"RenameObjectMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
234 "message type for this interface type.", type);
248 type(), other->
type());
250 memcpy(data, oi->data,
sizeof(OpenRaveInterface_data_t));
254 OpenRaveInterface::enum_tostring(
const char *enumtype,
int val)
const
269 OpenRaveInterface::StartViewerMessage::StartViewerMessage() :
Message(
"StartViewerMessage")
271 data_size =
sizeof(StartViewerMessage_data_t);
274 data = (StartViewerMessage_data_t *)
data_ptr;
292 data = (StartViewerMessage_data_t *)
data_ptr;
320 data_size =
sizeof(AddObjectMessage_data_t);
323 data = (AddObjectMessage_data_t *)
data_ptr;
325 strncpy(data->name, ini_name, 30-1);
326 data->name[30-1] = 0;
327 strncpy(data->path, ini_path, 1024-1);
328 data->path[1024-1] = 0;
335 data_size =
sizeof(AddObjectMessage_data_t);
338 data = (AddObjectMessage_data_t *)
data_ptr;
358 data = (AddObjectMessage_data_t *)
data_ptr;
445 data_size =
sizeof(DeleteObjectMessage_data_t);
448 data = (DeleteObjectMessage_data_t *)
data_ptr;
450 strncpy(data->name, ini_name, 30-1);
451 data->name[30-1] = 0;
457 data_size =
sizeof(DeleteObjectMessage_data_t);
460 data = (DeleteObjectMessage_data_t *)
data_ptr;
479 data = (DeleteObjectMessage_data_t *)
data_ptr;
534 data_size =
sizeof(DeleteAllObjectsMessage_data_t);
537 data = (DeleteAllObjectsMessage_data_t *)
data_ptr;
555 data = (DeleteAllObjectsMessage_data_t *)
data_ptr;
583 data_size =
sizeof(AttachObjectMessage_data_t);
586 data = (AttachObjectMessage_data_t *)
data_ptr;
588 strncpy(data->name, ini_name, 30-1);
589 data->name[30-1] = 0;
590 strncpy(data->manip_name, ini_manip_name, 30-1);
591 data->manip_name[30-1] = 0;
598 data_size =
sizeof(AttachObjectMessage_data_t);
601 data = (AttachObjectMessage_data_t *)
data_ptr;
621 data = (AttachObjectMessage_data_t *)
data_ptr;
663 return data->manip_name;
683 set_field(data->manip_name, new_manip_name);
708 data_size =
sizeof(ReleaseObjectMessage_data_t);
711 data = (ReleaseObjectMessage_data_t *)
data_ptr;
713 strncpy(data->name, ini_name, 30-1);
714 data->name[30-1] = 0;
720 data_size =
sizeof(ReleaseObjectMessage_data_t);
723 data = (ReleaseObjectMessage_data_t *)
data_ptr;
742 data = (ReleaseObjectMessage_data_t *)
data_ptr;
797 data_size =
sizeof(ReleaseAllObjectsMessage_data_t);
800 data = (ReleaseAllObjectsMessage_data_t *)
data_ptr;
818 data = (ReleaseAllObjectsMessage_data_t *)
data_ptr;
848 data_size =
sizeof(MoveObjectMessage_data_t);
851 data = (MoveObjectMessage_data_t *)
data_ptr;
853 strncpy(data->name, ini_name, 30-1);
854 data->name[30-1] = 0;
866 data_size =
sizeof(MoveObjectMessage_data_t);
869 data = (MoveObjectMessage_data_t *)
data_ptr;
891 data = (MoveObjectMessage_data_t *)
data_ptr;
1042 data_size =
sizeof(RotateObjectQuatMessage_data_t);
1045 data = (RotateObjectQuatMessage_data_t *)
data_ptr;
1047 strncpy(data->name, ini_name, 30-1);
1048 data->name[30-1] = 0;
1062 data_size =
sizeof(RotateObjectQuatMessage_data_t);
1065 data = (RotateObjectQuatMessage_data_t *)
data_ptr;
1088 data = (RotateObjectQuatMessage_data_t *)
data_ptr;
1268 data_size =
sizeof(RotateObjectMessage_data_t);
1271 data = (RotateObjectMessage_data_t *)
data_ptr;
1273 strncpy(data->name, ini_name, 30-1);
1274 data->name[30-1] = 0;
1286 data_size =
sizeof(RotateObjectMessage_data_t);
1289 data = (RotateObjectMessage_data_t *)
data_ptr;
1311 data = (RotateObjectMessage_data_t *)
data_ptr;
1459 data_size =
sizeof(RenameObjectMessage_data_t);
1462 data = (RenameObjectMessage_data_t *)
data_ptr;
1464 strncpy(data->name, ini_name, 30-1);
1465 data->name[30-1] = 0;
1466 strncpy(data->newName, ini_newName, 30-1);
1467 data->newName[30-1] = 0;
1474 data_size =
sizeof(RenameObjectMessage_data_t);
1477 data = (RenameObjectMessage_data_t *)
data_ptr;
1497 data = (RenameObjectMessage_data_t *)
data_ptr;
1539 return data->newName;
1620 if ( m10 != NULL ) {
Base class for all Fawkes BlackBoard interfaces.
const char * type() const
Get type of interface.
void * data_ptr
Pointer to local memory storage.
void set_field(FieldT &field, DataT &data)
Set a field, set data_changed to true and update data_changed accordingly.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
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.
void * data_ptr
Pointer to memory that contains local data.
message_data_ts_t * data_ts
data timestamp aliasing pointer
unsigned int data_size
Size of memory needed to hold all data.
AddObjectMessage Fawkes BlackBoard Interface Message.
char * name() const
Get name value.
virtual Message * clone() const
Clone this message.
char * path() const
Get path value.
AddObjectMessage()
Constructor.
size_t maxlenof_name() const
Get maximum length of name value.
void set_path(const char *new_path)
Set path value.
size_t maxlenof_path() const
Get maximum length of path value.
~AddObjectMessage()
Destructor.
void set_name(const char *new_name)
Set name value.
AttachObjectMessage Fawkes BlackBoard Interface Message.
void set_manip_name(const char *new_manip_name)
Set manip_name value.
char * manip_name() const
Get manip_name value.
virtual Message * clone() const
Clone this message.
void set_name(const char *new_name)
Set name value.
size_t maxlenof_manip_name() const
Get maximum length of manip_name value.
char * name() const
Get name value.
AttachObjectMessage()
Constructor.
size_t maxlenof_name() const
Get maximum length of name value.
~AttachObjectMessage()
Destructor.
DeleteAllObjectsMessage Fawkes BlackBoard Interface Message.
~DeleteAllObjectsMessage()
Destructor.
virtual Message * clone() const
Clone this message.
DeleteAllObjectsMessage()
Constructor.
DeleteObjectMessage Fawkes BlackBoard Interface Message.
void set_name(const char *new_name)
Set name value.
virtual Message * clone() const
Clone this message.
char * name() const
Get name value.
DeleteObjectMessage()
Constructor.
~DeleteObjectMessage()
Destructor.
size_t maxlenof_name() const
Get maximum length of name value.
MoveObjectMessage Fawkes BlackBoard Interface Message.
virtual Message * clone() const
Clone this message.
void set_z(const float new_z)
Set z value.
void set_x(const float new_x)
Set x value.
~MoveObjectMessage()
Destructor.
size_t maxlenof_x() const
Get maximum length of x value.
char * name() const
Get name value.
float x() const
Get x value.
float z() const
Get z value.
void set_name(const char *new_name)
Set name value.
size_t maxlenof_z() const
Get maximum length of z value.
size_t maxlenof_name() const
Get maximum length of name value.
void set_y(const float new_y)
Set y value.
size_t maxlenof_y() const
Get maximum length of y value.
MoveObjectMessage()
Constructor.
float y() const
Get y value.
ReleaseAllObjectsMessage Fawkes BlackBoard Interface Message.
ReleaseAllObjectsMessage()
Constructor.
virtual Message * clone() const
Clone this message.
~ReleaseAllObjectsMessage()
Destructor.
ReleaseObjectMessage Fawkes BlackBoard Interface Message.
virtual Message * clone() const
Clone this message.
void set_name(const char *new_name)
Set name value.
~ReleaseObjectMessage()
Destructor.
ReleaseObjectMessage()
Constructor.
size_t maxlenof_name() const
Get maximum length of name value.
char * name() const
Get name value.
RenameObjectMessage Fawkes BlackBoard Interface Message.
~RenameObjectMessage()
Destructor.
char * name() const
Get name value.
size_t maxlenof_name() const
Get maximum length of name value.
RenameObjectMessage()
Constructor.
size_t maxlenof_newName() const
Get maximum length of newName value.
char * newName() const
Get newName value.
void set_name(const char *new_name)
Set name value.
void set_newName(const char *new_newName)
Set newName value.
virtual Message * clone() const
Clone this message.
RotateObjectMessage Fawkes BlackBoard Interface Message.
~RotateObjectMessage()
Destructor.
void set_y(const float new_y)
Set y value.
size_t maxlenof_z() const
Get maximum length of z value.
float y() const
Get y value.
void set_x(const float new_x)
Set x value.
void set_name(const char *new_name)
Set name value.
virtual Message * clone() const
Clone this message.
void set_z(const float new_z)
Set z value.
size_t maxlenof_x() const
Get maximum length of x value.
float x() const
Get x value.
size_t maxlenof_y() const
Get maximum length of y value.
char * name() const
Get name value.
RotateObjectMessage()
Constructor.
size_t maxlenof_name() const
Get maximum length of name value.
float z() const
Get z value.
RotateObjectQuatMessage Fawkes BlackBoard Interface Message.
virtual Message * clone() const
Clone this message.
size_t maxlenof_x() const
Get maximum length of x value.
float x() const
Get x value.
size_t maxlenof_name() const
Get maximum length of name value.
~RotateObjectQuatMessage()
Destructor.
size_t maxlenof_w() const
Get maximum length of w value.
RotateObjectQuatMessage()
Constructor.
char * name() const
Get name value.
void set_y(const float new_y)
Set y value.
size_t maxlenof_z() const
Get maximum length of z value.
float y() const
Get y value.
void set_w(const float new_w)
Set w value.
void set_name(const char *new_name)
Set name value.
void set_x(const float new_x)
Set x value.
float z() const
Get z value.
float w() const
Get w value.
void set_z(const float new_z)
Set z value.
size_t maxlenof_y() const
Get maximum length of y value.
StartViewerMessage Fawkes BlackBoard Interface Message.
virtual Message * clone() const
Clone this message.
StartViewerMessage()
Constructor.
~StartViewerMessage()
Destructor.
OpenRaveInterface Fawkes BlackBoard Interface.
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
Fawkes library namespace.
Timestamp data, must be present and first entries for each interface data structs!...