Fawkes API
Fawkes Development Version
|
SkillerInterface Fawkes BlackBoard Interface. More...
#include <>>
Classes | |
class | AcquireControlMessage |
AcquireControlMessage Fawkes BlackBoard Interface Message. More... | |
class | ExecSkillMessage |
ExecSkillMessage Fawkes BlackBoard Interface Message. More... | |
class | ReleaseControlMessage |
ReleaseControlMessage Fawkes BlackBoard Interface Message. More... | |
class | RestartInterpreterMessage |
RestartInterpreterMessage Fawkes BlackBoard Interface Message. More... | |
class | StopExecMessage |
StopExecMessage Fawkes BlackBoard Interface Message. More... | |
Public Types | |
enum | SkillStatusEnum { S_INACTIVE, S_FINAL, S_RUNNING, S_FAILED } |
This determines the current status of skill execution. More... | |
Public Member Functions | |
const char * | tostring_SkillStatusEnum (SkillStatusEnum value) const |
Convert SkillStatusEnum constant to string. More... | |
virtual bool | message_valid (const Message *message) const |
Check if message is valid and can be enqueued. More... | |
char * | skill_string () const |
Get skill_string value. More... | |
void | set_skill_string (const char *new_skill_string) |
Set skill_string value. More... | |
size_t | maxlenof_skill_string () const |
Get maximum length of skill_string value. More... | |
char * | error () const |
Get error value. More... | |
void | set_error (const char *new_error) |
Set error value. More... | |
size_t | maxlenof_error () const |
Get maximum length of error value. More... | |
uint32_t | exclusive_controller () const |
Get exclusive_controller value. More... | |
void | set_exclusive_controller (const uint32_t new_exclusive_controller) |
Set exclusive_controller value. More... | |
size_t | maxlenof_exclusive_controller () const |
Get maximum length of exclusive_controller value. More... | |
uint32_t | msgid () const |
Get msgid value. More... | |
void | set_msgid (const uint32_t new_msgid) |
Set msgid value. More... | |
size_t | maxlenof_msgid () const |
Get maximum length of msgid value. More... | |
SkillStatusEnum | status () const |
Get status value. More... | |
void | set_status (const SkillStatusEnum new_status) |
Set status value. More... | |
size_t | maxlenof_status () const |
Get maximum length of status value. More... | |
virtual Message * | create_message (const char *type) const |
Create message based on type name. More... | |
virtual void | copy_values (const Interface *other) |
Copy values from other interface. More... | |
virtual const char * | enum_tostring (const char *enumtype, int val) const |
Convert arbitrary enum value to string. More... | |
![]() | |
virtual | ~Interface () |
Destructor. More... | |
bool | oftype (const char *interface_type) const |
Check if interface is of given type. More... | |
const void * | datachunk () const |
Get data chunk. More... | |
unsigned int | datasize () const |
Get data size. More... | |
const char * | type () const |
Get type of interface. More... | |
const char * | id () const |
Get identifier of interface. More... | |
const char * | uid () const |
Get unique identifier of interface. More... | |
unsigned short | serial () const |
Get instance serial of interface. More... | |
unsigned int | mem_serial () const |
Get memory serial of interface. More... | |
bool | operator== (Interface &comp) const |
Check equality of two interfaces. More... | |
const unsigned char * | hash () const |
Get interface hash. More... | |
size_t | hash_size () const |
Get size of interface hash. More... | |
const char * | hash_printable () const |
Get printable interface hash. More... | |
bool | is_writer () const |
Check if this is a writing instance. More... | |
void | set_validity (bool valid) |
Mark this interface invalid. More... | |
bool | is_valid () const |
Check validity of interface. More... | |
const char * | owner () const |
Get owner of interface. More... | |
void | set_from_chunk (void *chunk) |
Set from a raw data chunk. More... | |
void | resize_buffers (unsigned int num_buffers) |
Resize buffer array. More... | |
unsigned int | num_buffers () const |
Get number of buffers. More... | |
void | copy_shared_to_buffer (unsigned int buffer) |
Copy data from private memory to buffer. More... | |
void | copy_private_to_buffer (unsigned int buffer) |
Copy data from private memory to buffer. More... | |
void | read_from_buffer (unsigned int buffer) |
Copy data from buffer to private memory. More... | |
int | compare_buffers (unsigned int buffer) |
Compare buffer to private memory. More... | |
Time | buffer_timestamp (unsigned int buffer) |
Get time of a buffer. More... | |
void | buffer_timestamp (unsigned int buffer, Time *timestamp) |
Get time of a buffer. More... | |
void | read () |
Read from BlackBoard into local copy. More... | |
void | write () |
Write from local copy into BlackBoard memory. More... | |
bool | has_writer () const |
Check if there is a writer for the interface. More... | |
unsigned int | num_readers () const |
Get the number of readers. More... | |
std::string | writer () const |
Get owner name of writing interface instance. More... | |
std::list< std::string > | readers () const |
Get owner names of reading interface instances. More... | |
bool | changed () const |
Check if data has been changed. More... | |
const Time * | timestamp () const |
Get timestamp of last write. More... | |
void | set_auto_timestamping (bool enabled) |
Enable or disable automated timestamping. More... | |
void | set_timestamp (const Time *t=NULL) |
Set timestamp. More... | |
void | set_clock (Clock *clock) |
Set clock to use for timestamping. More... | |
void | mark_data_changed () |
Mark data as changed. More... | |
std::list< const char * > | get_message_types () |
Obtain a list of textual representations of the message types available for this interface. More... | |
unsigned int | msgq_enqueue (Message *message) |
Enqueue message at end of queue. More... | |
unsigned int | msgq_enqueue_copy (Message *message) |
Enqueue copy of message at end of queue. More... | |
void | msgq_remove (Message *message) |
Remove message from queue. More... | |
void | msgq_remove (unsigned int message_id) |
Remove message from queue. More... | |
unsigned int | msgq_size () |
Get size of message queue. More... | |
void | msgq_flush () |
Flush all messages. More... | |
void | msgq_lock () |
Lock message queue. More... | |
bool | msgq_try_lock () |
Try to lock message queue. More... | |
void | msgq_unlock () |
Unlock message queue. More... | |
void | msgq_pop () |
Erase first message from queue. More... | |
Message * | msgq_first () |
Get the first message from the message queue. More... | |
bool | msgq_empty () |
Check if queue is empty. More... | |
void | msgq_append (Message *message) |
Enqueue message. More... | |
template<class MessageType > | |
bool | msgq_first_is () |
Check if first message has desired type. More... | |
template<class MessageType > | |
MessageType * | msgq_first () |
Get first message casted to the desired type. More... | |
template<class MessageType > | |
MessageType * | msgq_first (MessageType *&msg) |
Get first message casted to the desired type. More... | |
template<class MessageType > | |
MessageType * | msgq_first_safe (MessageType *&msg) throw () |
Get first message casted to the desired type without exceptions. More... | |
MessageQueue::MessageIterator | msgq_begin () |
Get start iterator for message queue. More... | |
MessageQueue::MessageIterator | msgq_end () |
Get end iterator for message queue. More... | |
InterfaceFieldIterator | fields () |
Get iterator over all fields of this interface instance. More... | |
InterfaceFieldIterator | fields_end () |
Invalid iterator. More... | |
unsigned int | num_fields () |
Get the number of fields in the interface. More... | |
Additional Inherited Members | |
![]() | |
static void | parse_uid (const char *uid, std::string &type, std::string &id) |
Parse UID to type and ID strings. More... | |
![]() | |
Interface () | |
Constructor. More... | |
void | set_hash (unsigned char *ihash) |
Set hash. More... | |
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 field info list. More... | |
void | add_messageinfo (const char *name) |
Add an entry to the message info list. More... | |
![]() | |
void * | data_ptr |
Pointer to local memory storage. More... | |
unsigned int | data_size |
Minimal data size to hold data storage. More... | |
bool | data_changed |
Indicator if data has changed. More... | |
interface_data_ts_t * | data_ts |
Pointer to data casted to timestamp struct. More... | |
SkillerInterface Fawkes BlackBoard Interface.
The interface provides access to the skill execution runtime plugin. It provides basic status information about skiller and allows for calling skills via messages. It can also be used to manually restart the Lua interpreter if something is wedged.
Definition at line 33 of file SkillerInterface.h.
This determines the current status of skill execution.
Enumerator | |
---|---|
S_INACTIVE | No skill is running. |
S_FINAL | The skill string has been successfully processed. |
S_RUNNING | The execution is still running. |
S_FAILED | The execution failed and cannot succeed anymore. |
Definition at line 44 of file SkillerInterface.h.
|
virtual |
Copy values from other interface.
other | other interface to copy values from |
Implements fawkes::Interface.
Definition at line 303 of file SkillerInterface.cpp.
References fawkes::Message::type(), and fawkes::Interface::type().
|
virtual |
Create message based on type name.
This will create a new message of the given type. The type must be given without the InterfaceName:: prefix but just the plain class name of the message.
type | message type |
UnknownTypeException | thrown if this interface cannot create a message of the given type. |
Implements fawkes::Interface.
Definition at line 280 of file SkillerInterface.cpp.
|
virtual |
Convert arbitrary enum value to string.
Given the string representation of the enum type and the value this method returns the string representation of the specific value, or the string UNKNOWN if the value is not defined. An exception is thrown if the enum type is invalid.
enumtype | enum type as string |
val | value to convert |
UnknownTypeException | thrown if enumtype is not specified for interface. |
Implements fawkes::Interface.
Definition at line 314 of file SkillerInterface.cpp.
char * fawkes::SkillerInterface::error | ( | ) | const |
Get error value.
String describing the error. Can be set by a skill when it fails.
Definition at line 139 of file SkillerInterface.cpp.
Referenced by RosSkillerThread::loop(), and SkillGuiGtkWindow::~SkillGuiGtkWindow().
uint32_t fawkes::SkillerInterface::exclusive_controller | ( | ) | const |
Get exclusive_controller value.
Instance serial of the exclusive controller of the skiller. If this does not carry your instance serial your exec messages will be ignored. Aquire control with the AquireControlMessage. Make sure you release control before exiting.
Definition at line 176 of file SkillerInterface.cpp.
Referenced by ClipsAgentThread::init(), LuaAgentPeriodicExecutionThread::init(), LuaAgentContinuousExecutionThread::init(), ClipsAgentThread::loop(), RosSkillerThread::loop(), RosSkillerThread::once(), and SkillGuiGtkWindow::~SkillGuiGtkWindow().
size_t fawkes::SkillerInterface::maxlenof_error | ( | ) | const |
Get maximum length of error value.
Definition at line 149 of file SkillerInterface.cpp.
size_t fawkes::SkillerInterface::maxlenof_exclusive_controller | ( | ) | const |
Get maximum length of exclusive_controller value.
Definition at line 186 of file SkillerInterface.cpp.
size_t fawkes::SkillerInterface::maxlenof_msgid | ( | ) | const |
Get maximum length of msgid value.
Definition at line 224 of file SkillerInterface.cpp.
size_t fawkes::SkillerInterface::maxlenof_skill_string | ( | ) | const |
Get maximum length of skill_string value.
Definition at line 113 of file SkillerInterface.cpp.
size_t fawkes::SkillerInterface::maxlenof_status | ( | ) | const |
Get maximum length of status value.
Definition at line 260 of file SkillerInterface.cpp.
|
virtual |
Check if message is valid and can be enqueued.
message | Message to check |
Implements fawkes::Interface.
Definition at line 690 of file SkillerInterface.cpp.
uint32_t fawkes::SkillerInterface::msgid | ( | ) | const |
Get msgid value.
The ID of the message that is currently being processed, or 0 if no message is being processed.
Definition at line 214 of file SkillerInterface.cpp.
Referenced by RosSkillerThread::loop().
void fawkes::SkillerInterface::set_error | ( | const char * | new_error | ) |
Set error value.
String describing the error. Can be set by a skill when it fails.
new_error | new error value |
Definition at line 161 of file SkillerInterface.cpp.
References fawkes::Interface::data_changed.
void fawkes::SkillerInterface::set_exclusive_controller | ( | const uint32_t | new_exclusive_controller | ) |
Set exclusive_controller value.
Instance serial of the exclusive controller of the skiller. If this does not carry your instance serial your exec messages will be ignored. Aquire control with the AquireControlMessage. Make sure you release control before exiting.
new_exclusive_controller | new exclusive_controller value |
Definition at line 200 of file SkillerInterface.cpp.
References fawkes::Interface::data_changed.
void fawkes::SkillerInterface::set_msgid | ( | const uint32_t | new_msgid | ) |
Set msgid value.
The ID of the message that is currently being processed, or 0 if no message is being processed.
new_msgid | new msgid value |
Definition at line 237 of file SkillerInterface.cpp.
References fawkes::Interface::data_changed.
void fawkes::SkillerInterface::set_skill_string | ( | const char * | new_skill_string | ) |
Set skill_string value.
Currently executed skill string, at least the first 1023 bytes of it. Must be properly null-terminated.
new_skill_string | new skill_string value |
Definition at line 126 of file SkillerInterface.cpp.
References fawkes::Interface::data_changed.
void fawkes::SkillerInterface::set_status | ( | const SkillStatusEnum | new_status | ) |
Set status value.
The status of the current skill execution.
new_status | new status value |
Definition at line 272 of file SkillerInterface.cpp.
References fawkes::Interface::data_changed.
char * fawkes::SkillerInterface::skill_string | ( | ) | const |
Get skill_string value.
Currently executed skill string, at least the first 1023 bytes of it. Must be properly null-terminated.
Definition at line 103 of file SkillerInterface.cpp.
Referenced by ClipsAgentThread::loop(), RosSkillerThread::loop(), and SkillGuiGtkWindow::~SkillGuiGtkWindow().
SkillerInterface::SkillStatusEnum fawkes::SkillerInterface::status | ( | ) | const |
Get status value.
The status of the current skill execution.
Definition at line 250 of file SkillerInterface.cpp.
Referenced by ClipsAgentThread::loop(), RosSkillerThread::loop(), and SkillGuiGtkWindow::~SkillGuiGtkWindow().
const char * fawkes::SkillerInterface::tostring_SkillStatusEnum | ( | SkillStatusEnum | value | ) | const |
Convert SkillStatusEnum constant to string.
value | value to convert to string |
Definition at line 84 of file SkillerInterface.cpp.