24 #include <interfaces/SkillerInterface.h> 26 #include <core/exceptions/software.h> 49 SkillerInterface::SkillerInterface() : Interface()
51 data_size =
sizeof(SkillerInterface_data_t);
53 data = (SkillerInterface_data_t *)
data_ptr;
56 enum_map_SkillStatusEnum[(int)S_INACTIVE] =
"S_INACTIVE";
57 enum_map_SkillStatusEnum[(int)S_FINAL] =
"S_FINAL";
58 enum_map_SkillStatusEnum[(int)S_RUNNING] =
"S_RUNNING";
59 enum_map_SkillStatusEnum[(int)S_FAILED] =
"S_FAILED";
70 unsigned char tmp_hash[] = {0x99, 0x14, 0xe6, 0x2b, 0x7f, 0x3b, 0x80, 0xb, 0xbd, 0x35, 0x10, 0xc0, 0x7e, 0xb5, 0xdc, 0x55};
75 SkillerInterface::~SkillerInterface()
87 case S_INACTIVE:
return "S_INACTIVE";
88 case S_FINAL:
return "S_FINAL";
89 case S_RUNNING:
return "S_RUNNING";
90 case S_FAILED:
return "S_FAILED";
91 default:
return "UNKNOWN";
105 return data->skill_string;
128 strncpy(data->skill_string, new_skill_string,
sizeof(data->skill_string));
163 strncpy(data->error, new_error,
sizeof(data->error));
178 return data->exclusive_controller;
202 data->exclusive_controller = new_exclusive_controller;
239 data->msgid = new_msgid;
274 data->status = new_status;
282 if ( strncmp(
"ExecSkillMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
284 }
else if ( strncmp(
"RestartInterpreterMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
286 }
else if ( strncmp(
"StopExecMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
288 }
else if ( strncmp(
"AcquireControlMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
290 }
else if ( strncmp(
"ReleaseControlMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
294 "message type for this interface type.", type);
310 memcpy(data, oi->data,
sizeof(SkillerInterface_data_t));
316 if (strcmp(enumtype,
"SkillStatusEnum") == 0) {
335 data_size =
sizeof(ExecSkillMessage_data_t);
338 data = (ExecSkillMessage_data_t *)
data_ptr;
340 strncpy(data->skill_string, ini_skill_string, 1024);
341 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
342 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
343 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
344 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
350 data_size =
sizeof(ExecSkillMessage_data_t);
353 data = (ExecSkillMessage_data_t *)
data_ptr;
355 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
356 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
357 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
358 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
376 data = (ExecSkillMessage_data_t *)
data_ptr;
391 return data->skill_string;
414 strncpy(data->skill_string, new_skill_string,
sizeof(data->skill_string));
437 data_size =
sizeof(RestartInterpreterMessage_data_t);
440 data = (RestartInterpreterMessage_data_t *)
data_ptr;
442 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
443 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
444 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
445 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
462 data = (RestartInterpreterMessage_data_t *)
data_ptr;
487 data_size =
sizeof(StopExecMessage_data_t);
490 data = (StopExecMessage_data_t *)
data_ptr;
492 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
493 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
494 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
495 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
512 data = (StopExecMessage_data_t *)
data_ptr;
539 data_size =
sizeof(AcquireControlMessage_data_t);
542 data = (AcquireControlMessage_data_t *)
data_ptr;
544 data->steal_control = ini_steal_control;
545 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
546 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
547 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
548 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
554 data_size =
sizeof(AcquireControlMessage_data_t);
557 data = (AcquireControlMessage_data_t *)
data_ptr;
559 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
560 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
561 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
562 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
580 data = (AcquireControlMessage_data_t *)
data_ptr;
597 return data->steal_control;
622 data->steal_control = new_steal_control;
645 data_size =
sizeof(ReleaseControlMessage_data_t);
648 data = (ReleaseControlMessage_data_t *)
data_ptr;
650 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
651 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
652 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
653 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
670 data = (ReleaseControlMessage_data_t *)
data_ptr;
char * skill_string() const
Get skill_string value.
~RestartInterpreterMessage()
Destructor.
size_t maxlenof_error() const
Get maximum length of error value.
void * data_ptr
Pointer to memory that contains local data.
virtual Message * clone() const
Clone this message.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
~ReleaseControlMessage()
Destructor.
The skill string has been successfully processed.
void set_steal_control(const bool new_steal_control)
Set steal_control value.
size_t maxlenof_skill_string() const
Get maximum length of skill_string value.
void set_hash(unsigned char *ihash)
Set hash.
~StopExecMessage()
Destructor.
void set_exclusive_controller(const uint32_t new_exclusive_controller)
Set exclusive_controller value.
Fawkes library namespace.
Timestamp data, must be present and first entries for each interface data structs! This leans on time...
size_t maxlenof_msgid() const
Get maximum length of msgid value.
~ExecSkillMessage()
Destructor.
void set_skill_string(const char *new_skill_string)
Set skill_string value.
char * skill_string() const
Get skill_string value.
StopExecMessage Fawkes BlackBoard Interface Message.
virtual Message * clone() const
Clone this message.
virtual void copy_values(const Interface *other)
Copy values from other interface.
char * error() const
Get error value.
ReleaseControlMessage Fawkes BlackBoard Interface Message.
SkillStatusEnum
This determines the current status of skill execution.
uint32_t exclusive_controller() const
Get exclusive_controller value.
Base class for all Fawkes BlackBoard interfaces.
AcquireControlMessage Fawkes BlackBoard Interface Message.
virtual Message * clone() const
Clone this message.
virtual Message * clone() const
Clone this message.
message_data_ts_t * data_ts
data timestamp aliasing pointer
unsigned int data_size
Size of memory needed to hold all data.
size_t maxlenof_exclusive_controller() const
Get maximum length of exclusive_controller value.
void add_messageinfo(const char *name)
Add an entry to the message info list.
bool data_changed
Indicator if data has changed.
void set_error(const char *new_error)
Set error value.
StopExecMessage()
Constructor.
const char * type() const
Get type of interface.
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
virtual Message * clone() const
Clone this message.
virtual const char * enum_tostring(const char *enumtype, int val) const
Convert arbitrary enum value to string.
SkillStatusEnum status() const
Get status value.
ExecSkillMessage Fawkes BlackBoard Interface Message.
ReleaseControlMessage()
Constructor.
size_t maxlenof_skill_string() const
Get maximum length of skill_string value.
size_t maxlenof_status() const
Get maximum length of status value.
AcquireControlMessage()
Constructor.
~AcquireControlMessage()
Destructor.
RestartInterpreterMessage Fawkes BlackBoard Interface Message.
ExecSkillMessage()
Constructor.
The execution failed and cannot succeed anymore.
void set_skill_string(const char *new_skill_string)
Set skill_string value.
uint32_t msgid() const
Get msgid value.
SkillerInterface Fawkes BlackBoard Interface.
bool is_steal_control() const
Get steal_control value.
size_t maxlenof_steal_control() const
Get maximum length of steal_control 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.
void set_status(const SkillStatusEnum new_status)
Set status value.
virtual Message * create_message(const char *type) const
Create message based on type name.
const char * tostring_SkillStatusEnum(SkillStatusEnum value) const
Convert SkillStatusEnum constant to string.
RestartInterpreterMessage()
Constructor.
The execution is still running.
const char * type() const
Get message type.
void set_msgid(const uint32_t new_msgid)
Set msgid value.
32 bit unsigned integer field
field with interface specific enum type