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)-1);
129 data->skill_string[
sizeof(data->skill_string)-1] = 0;
164 strncpy(data->error, new_error,
sizeof(data->error)-1);
165 data->error[
sizeof(data->error)-1] = 0;
180 return data->exclusive_controller;
204 data->exclusive_controller = new_exclusive_controller;
241 data->msgid = new_msgid;
276 data->status = new_status;
284 if ( strncmp(
"ExecSkillMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_) == 0 ) {
286 }
else if ( strncmp(
"RestartInterpreterMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_) == 0 ) {
288 }
else if ( strncmp(
"StopExecMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_) == 0 ) {
290 }
else if ( strncmp(
"AcquireControlMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_) == 0 ) {
292 }
else if ( strncmp(
"ReleaseControlMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_) == 0 ) {
296 "message type for this interface type.",
type);
312 memcpy(data, oi->data,
sizeof(SkillerInterface_data_t));
318 if (strcmp(enumtype,
"SkillStatusEnum") == 0) {
337 data_size =
sizeof(ExecSkillMessage_data_t);
340 data = (ExecSkillMessage_data_t *)
data_ptr;
342 strncpy(data->skill_string, ini_skill_string, 1024-1);
343 data->skill_string[1024-1] = 0;
344 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
345 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
346 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
347 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
353 data_size =
sizeof(ExecSkillMessage_data_t);
356 data = (ExecSkillMessage_data_t *)
data_ptr;
358 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
359 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
360 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
361 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
379 data = (ExecSkillMessage_data_t *)
data_ptr;
394 return data->skill_string;
417 strncpy(data->skill_string, new_skill_string,
sizeof(data->skill_string)-1);
418 data->skill_string[
sizeof(data->skill_string)-1] = 0;
441 data_size =
sizeof(RestartInterpreterMessage_data_t);
444 data = (RestartInterpreterMessage_data_t *)
data_ptr;
446 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
447 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
448 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
449 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
466 data = (RestartInterpreterMessage_data_t *)
data_ptr;
491 data_size =
sizeof(StopExecMessage_data_t);
494 data = (StopExecMessage_data_t *)
data_ptr;
496 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
497 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
498 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
499 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
516 data = (StopExecMessage_data_t *)
data_ptr;
543 data_size =
sizeof(AcquireControlMessage_data_t);
546 data = (AcquireControlMessage_data_t *)
data_ptr;
548 data->steal_control = ini_steal_control;
549 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
550 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
551 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
552 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
558 data_size =
sizeof(AcquireControlMessage_data_t);
561 data = (AcquireControlMessage_data_t *)
data_ptr;
563 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
564 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
565 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
566 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
584 data = (AcquireControlMessage_data_t *)
data_ptr;
601 return data->steal_control;
626 data->steal_control = new_steal_control;
649 data_size =
sizeof(ReleaseControlMessage_data_t);
652 data = (ReleaseControlMessage_data_t *)
data_ptr;
654 enum_map_SkillStatusEnum[(int)
S_INACTIVE] =
"S_INACTIVE";
655 enum_map_SkillStatusEnum[(int)
S_FINAL] =
"S_FINAL";
656 enum_map_SkillStatusEnum[(int)
S_RUNNING] =
"S_RUNNING";
657 enum_map_SkillStatusEnum[(int)
S_FAILED] =
"S_FAILED";
674 data = (ReleaseControlMessage_data_t *)
data_ptr;
696 const ExecSkillMessage *m0 = dynamic_cast<const ExecSkillMessage *>(message);
704 const StopExecMessage *m2 = dynamic_cast<const StopExecMessage *>(message);
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!...
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.
void * data_ptr
Pointer to local memory storage.
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.
void set_msgid(const uint32_t new_msgid)
Set msgid value.
32 bit unsigned integer field
field with interface specific enum type