24 #include <interfaces/FacialExpressionInterface.h> 26 #include <core/exceptions/software.h> 46 FacialExpressionInterface::FacialExpressionInterface() : Interface()
48 data_size =
sizeof(FacialExpressionInterface_data_t);
50 data = (FacialExpressionInterface_data_t *)
data_ptr;
53 enum_map_brows_t[(int)BROWS_DEFAULT] =
"BROWS_DEFAULT";
54 enum_map_brows_t[(int)BROWS_FROWN] =
"BROWS_FROWN";
55 enum_map_brows_t[(int)BROWS_LIFT] =
"BROWS_LIFT";
56 enum_map_eyes_t[(int)EYES_DEFAULT] =
"EYES_DEFAULT";
57 enum_map_eyes_t[(int)EYES_UP] =
"EYES_UP";
58 enum_map_eyes_t[(int)EYES_DOWN] =
"EYES_DOWN";
59 enum_map_eyes_t[(int)EYES_LEFT] =
"EYES_LEFT";
60 enum_map_eyes_t[(int)EYES_RIGHT] =
"EYES_RIGHT";
61 enum_map_eyes_t[(int)EYES_COOL] =
"EYES_COOL";
62 enum_map_eyes_t[(int)EYES_CROSS] =
"EYES_CROSS";
63 enum_map_eyes_t[(int)EYES_HEART] =
"EYES_HEART";
64 enum_map_eyes_t[(int)EYES_DOLLAR] =
"EYES_DOLLAR";
65 enum_map_jowl_t[(int)JOWL_DEFAULT] =
"JOWL_DEFAULT";
66 enum_map_jowl_t[(int)JOWL_BLUSH] =
"JOWL_BLUSH";
67 enum_map_jowl_t[(int)JOWL_TEARS] =
"JOWL_TEARS";
68 enum_map_mouth_t[(int)MOUTH_DEFAULT] =
"MOUTH_DEFAULT";
69 enum_map_mouth_t[(int)MOUTH_OPEN] =
"MOUTH_OPEN";
70 enum_map_mouth_t[(int)MOUTH_CLOSE] =
"MOUTH_CLOSE";
71 enum_map_mouth_t[(int)MOUTH_SMILE] =
"MOUTH_SMILE";
72 enum_map_mouth_t[(int)MOUTH_SCOWL] =
"MOUTH_SCOWL";
81 unsigned char tmp_hash[] = {0x1, 0xbd, 0xc6, 0x65, 0xb3, 0x10, 0xcb, 0x5f, 0xe8, 0x78, 0xdd, 0x6, 0xe, 0x82, 0x7f, 0x80};
86 FacialExpressionInterface::~FacialExpressionInterface()
98 case BROWS_DEFAULT:
return "BROWS_DEFAULT";
99 case BROWS_FROWN:
return "BROWS_FROWN";
100 case BROWS_LIFT:
return "BROWS_LIFT";
101 default:
return "UNKNOWN";
112 case EYES_DEFAULT:
return "EYES_DEFAULT";
113 case EYES_UP:
return "EYES_UP";
114 case EYES_DOWN:
return "EYES_DOWN";
115 case EYES_LEFT:
return "EYES_LEFT";
116 case EYES_RIGHT:
return "EYES_RIGHT";
117 case EYES_COOL:
return "EYES_COOL";
118 case EYES_CROSS:
return "EYES_CROSS";
119 case EYES_HEART:
return "EYES_HEART";
120 case EYES_DOLLAR:
return "EYES_DOLLAR";
121 default:
return "UNKNOWN";
132 case JOWL_DEFAULT:
return "JOWL_DEFAULT";
133 case JOWL_BLUSH:
return "JOWL_BLUSH";
134 case JOWL_TEARS:
return "JOWL_TEARS";
135 default:
return "UNKNOWN";
146 case MOUTH_DEFAULT:
return "MOUTH_DEFAULT";
147 case MOUTH_OPEN:
return "MOUTH_OPEN";
148 case MOUTH_CLOSE:
return "MOUTH_CLOSE";
149 case MOUTH_SMILE:
return "MOUTH_SMILE";
150 case MOUTH_SCOWL:
return "MOUTH_SCOWL";
151 default:
return "UNKNOWN";
182 data->brows_action = new_brows_action;
213 data->eyes_action = new_eyes_action;
244 data->jowl_action = new_jowl_action;
275 data->mouth_action = new_mouth_action;
283 if ( strncmp(
"MoveBrowsMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
285 }
else if ( strncmp(
"MoveEyesMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
287 }
else if ( strncmp(
"MoveJowlMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
289 }
else if ( strncmp(
"MoveMouthMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
293 "message type for this interface type.", type);
309 memcpy(data, oi->data,
sizeof(FacialExpressionInterface_data_t));
315 if (strcmp(enumtype,
"brows_t") == 0) {
316 return tostring_brows_t((
brows_t)val);
318 if (strcmp(enumtype,
"eyes_t") == 0) {
319 return tostring_eyes_t((
eyes_t)val);
321 if (strcmp(enumtype,
"jowl_t") == 0) {
322 return tostring_jowl_t((
jowl_t)val);
324 if (strcmp(enumtype,
"mouth_t") == 0) {
325 return tostring_mouth_t((
mouth_t)val);
343 data_size =
sizeof(MoveBrowsMessage_data_t);
346 data = (MoveBrowsMessage_data_t *)
data_ptr;
348 data->brows_action = ini_brows_action;
350 enum_map_brows_t[(int)
BROWS_FROWN] =
"BROWS_FROWN";
351 enum_map_brows_t[(int)
BROWS_LIFT] =
"BROWS_LIFT";
353 enum_map_eyes_t[(int)
EYES_UP] =
"EYES_UP";
354 enum_map_eyes_t[(int)
EYES_DOWN] =
"EYES_DOWN";
355 enum_map_eyes_t[(int)
EYES_LEFT] =
"EYES_LEFT";
356 enum_map_eyes_t[(int)
EYES_RIGHT] =
"EYES_RIGHT";
357 enum_map_eyes_t[(int)
EYES_COOL] =
"EYES_COOL";
358 enum_map_eyes_t[(int)
EYES_CROSS] =
"EYES_CROSS";
359 enum_map_eyes_t[(int)
EYES_HEART] =
"EYES_HEART";
362 enum_map_jowl_t[(int)
JOWL_BLUSH] =
"JOWL_BLUSH";
363 enum_map_jowl_t[(int)
JOWL_TEARS] =
"JOWL_TEARS";
365 enum_map_mouth_t[(int)
MOUTH_OPEN] =
"MOUTH_OPEN";
366 enum_map_mouth_t[(int)
MOUTH_CLOSE] =
"MOUTH_CLOSE";
367 enum_map_mouth_t[(int)
MOUTH_SMILE] =
"MOUTH_SMILE";
368 enum_map_mouth_t[(int)
MOUTH_SCOWL] =
"MOUTH_SCOWL";
374 data_size =
sizeof(MoveBrowsMessage_data_t);
377 data = (MoveBrowsMessage_data_t *)
data_ptr;
380 enum_map_brows_t[(int)
BROWS_FROWN] =
"BROWS_FROWN";
381 enum_map_brows_t[(int)
BROWS_LIFT] =
"BROWS_LIFT";
383 enum_map_eyes_t[(int)
EYES_UP] =
"EYES_UP";
384 enum_map_eyes_t[(int)
EYES_DOWN] =
"EYES_DOWN";
385 enum_map_eyes_t[(int)
EYES_LEFT] =
"EYES_LEFT";
386 enum_map_eyes_t[(int)
EYES_RIGHT] =
"EYES_RIGHT";
387 enum_map_eyes_t[(int)
EYES_COOL] =
"EYES_COOL";
388 enum_map_eyes_t[(int)
EYES_CROSS] =
"EYES_CROSS";
389 enum_map_eyes_t[(int)
EYES_HEART] =
"EYES_HEART";
392 enum_map_jowl_t[(int)
JOWL_BLUSH] =
"JOWL_BLUSH";
393 enum_map_jowl_t[(int)
JOWL_TEARS] =
"JOWL_TEARS";
395 enum_map_mouth_t[(int)
MOUTH_OPEN] =
"MOUTH_OPEN";
396 enum_map_mouth_t[(int)
MOUTH_CLOSE] =
"MOUTH_CLOSE";
397 enum_map_mouth_t[(int)
MOUTH_SMILE] =
"MOUTH_SMILE";
398 enum_map_mouth_t[(int)
MOUTH_SCOWL] =
"MOUTH_SCOWL";
416 data = (MoveBrowsMessage_data_t *)
data_ptr;
448 data->brows_action = new_brows_action;
473 data_size =
sizeof(MoveEyesMessage_data_t);
476 data = (MoveEyesMessage_data_t *)
data_ptr;
478 data->eyes_action = ini_eyes_action;
480 enum_map_brows_t[(int)
BROWS_FROWN] =
"BROWS_FROWN";
481 enum_map_brows_t[(int)
BROWS_LIFT] =
"BROWS_LIFT";
483 enum_map_eyes_t[(int)
EYES_UP] =
"EYES_UP";
484 enum_map_eyes_t[(int)
EYES_DOWN] =
"EYES_DOWN";
485 enum_map_eyes_t[(int)
EYES_LEFT] =
"EYES_LEFT";
486 enum_map_eyes_t[(int)
EYES_RIGHT] =
"EYES_RIGHT";
487 enum_map_eyes_t[(int)
EYES_COOL] =
"EYES_COOL";
488 enum_map_eyes_t[(int)
EYES_CROSS] =
"EYES_CROSS";
489 enum_map_eyes_t[(int)
EYES_HEART] =
"EYES_HEART";
492 enum_map_jowl_t[(int)
JOWL_BLUSH] =
"JOWL_BLUSH";
493 enum_map_jowl_t[(int)
JOWL_TEARS] =
"JOWL_TEARS";
495 enum_map_mouth_t[(int)
MOUTH_OPEN] =
"MOUTH_OPEN";
496 enum_map_mouth_t[(int)
MOUTH_CLOSE] =
"MOUTH_CLOSE";
497 enum_map_mouth_t[(int)
MOUTH_SMILE] =
"MOUTH_SMILE";
498 enum_map_mouth_t[(int)
MOUTH_SCOWL] =
"MOUTH_SCOWL";
504 data_size =
sizeof(MoveEyesMessage_data_t);
507 data = (MoveEyesMessage_data_t *)
data_ptr;
510 enum_map_brows_t[(int)
BROWS_FROWN] =
"BROWS_FROWN";
511 enum_map_brows_t[(int)
BROWS_LIFT] =
"BROWS_LIFT";
513 enum_map_eyes_t[(int)
EYES_UP] =
"EYES_UP";
514 enum_map_eyes_t[(int)
EYES_DOWN] =
"EYES_DOWN";
515 enum_map_eyes_t[(int)
EYES_LEFT] =
"EYES_LEFT";
516 enum_map_eyes_t[(int)
EYES_RIGHT] =
"EYES_RIGHT";
517 enum_map_eyes_t[(int)
EYES_COOL] =
"EYES_COOL";
518 enum_map_eyes_t[(int)
EYES_CROSS] =
"EYES_CROSS";
519 enum_map_eyes_t[(int)
EYES_HEART] =
"EYES_HEART";
522 enum_map_jowl_t[(int)
JOWL_BLUSH] =
"JOWL_BLUSH";
523 enum_map_jowl_t[(int)
JOWL_TEARS] =
"JOWL_TEARS";
525 enum_map_mouth_t[(int)
MOUTH_OPEN] =
"MOUTH_OPEN";
526 enum_map_mouth_t[(int)
MOUTH_CLOSE] =
"MOUTH_CLOSE";
527 enum_map_mouth_t[(int)
MOUTH_SMILE] =
"MOUTH_SMILE";
528 enum_map_mouth_t[(int)
MOUTH_SCOWL] =
"MOUTH_SCOWL";
546 data = (MoveEyesMessage_data_t *)
data_ptr;
578 data->eyes_action = new_eyes_action;
603 data_size =
sizeof(MoveJowlMessage_data_t);
606 data = (MoveJowlMessage_data_t *)
data_ptr;
608 data->jowl_action = ini_jowl_action;
610 enum_map_brows_t[(int)
BROWS_FROWN] =
"BROWS_FROWN";
611 enum_map_brows_t[(int)
BROWS_LIFT] =
"BROWS_LIFT";
613 enum_map_eyes_t[(int)
EYES_UP] =
"EYES_UP";
614 enum_map_eyes_t[(int)
EYES_DOWN] =
"EYES_DOWN";
615 enum_map_eyes_t[(int)
EYES_LEFT] =
"EYES_LEFT";
616 enum_map_eyes_t[(int)
EYES_RIGHT] =
"EYES_RIGHT";
617 enum_map_eyes_t[(int)
EYES_COOL] =
"EYES_COOL";
618 enum_map_eyes_t[(int)
EYES_CROSS] =
"EYES_CROSS";
619 enum_map_eyes_t[(int)
EYES_HEART] =
"EYES_HEART";
622 enum_map_jowl_t[(int)
JOWL_BLUSH] =
"JOWL_BLUSH";
623 enum_map_jowl_t[(int)
JOWL_TEARS] =
"JOWL_TEARS";
625 enum_map_mouth_t[(int)
MOUTH_OPEN] =
"MOUTH_OPEN";
626 enum_map_mouth_t[(int)
MOUTH_CLOSE] =
"MOUTH_CLOSE";
627 enum_map_mouth_t[(int)
MOUTH_SMILE] =
"MOUTH_SMILE";
628 enum_map_mouth_t[(int)
MOUTH_SCOWL] =
"MOUTH_SCOWL";
634 data_size =
sizeof(MoveJowlMessage_data_t);
637 data = (MoveJowlMessage_data_t *)
data_ptr;
640 enum_map_brows_t[(int)
BROWS_FROWN] =
"BROWS_FROWN";
641 enum_map_brows_t[(int)
BROWS_LIFT] =
"BROWS_LIFT";
643 enum_map_eyes_t[(int)
EYES_UP] =
"EYES_UP";
644 enum_map_eyes_t[(int)
EYES_DOWN] =
"EYES_DOWN";
645 enum_map_eyes_t[(int)
EYES_LEFT] =
"EYES_LEFT";
646 enum_map_eyes_t[(int)
EYES_RIGHT] =
"EYES_RIGHT";
647 enum_map_eyes_t[(int)
EYES_COOL] =
"EYES_COOL";
648 enum_map_eyes_t[(int)
EYES_CROSS] =
"EYES_CROSS";
649 enum_map_eyes_t[(int)
EYES_HEART] =
"EYES_HEART";
652 enum_map_jowl_t[(int)
JOWL_BLUSH] =
"JOWL_BLUSH";
653 enum_map_jowl_t[(int)
JOWL_TEARS] =
"JOWL_TEARS";
655 enum_map_mouth_t[(int)
MOUTH_OPEN] =
"MOUTH_OPEN";
656 enum_map_mouth_t[(int)
MOUTH_CLOSE] =
"MOUTH_CLOSE";
657 enum_map_mouth_t[(int)
MOUTH_SMILE] =
"MOUTH_SMILE";
658 enum_map_mouth_t[(int)
MOUTH_SCOWL] =
"MOUTH_SCOWL";
676 data = (MoveJowlMessage_data_t *)
data_ptr;
708 data->jowl_action = new_jowl_action;
733 data_size =
sizeof(MoveMouthMessage_data_t);
736 data = (MoveMouthMessage_data_t *)
data_ptr;
738 data->mouth_action = ini_mouth_action;
740 enum_map_brows_t[(int)
BROWS_FROWN] =
"BROWS_FROWN";
741 enum_map_brows_t[(int)
BROWS_LIFT] =
"BROWS_LIFT";
743 enum_map_eyes_t[(int)
EYES_UP] =
"EYES_UP";
744 enum_map_eyes_t[(int)
EYES_DOWN] =
"EYES_DOWN";
745 enum_map_eyes_t[(int)
EYES_LEFT] =
"EYES_LEFT";
746 enum_map_eyes_t[(int)
EYES_RIGHT] =
"EYES_RIGHT";
747 enum_map_eyes_t[(int)
EYES_COOL] =
"EYES_COOL";
748 enum_map_eyes_t[(int)
EYES_CROSS] =
"EYES_CROSS";
749 enum_map_eyes_t[(int)
EYES_HEART] =
"EYES_HEART";
752 enum_map_jowl_t[(int)
JOWL_BLUSH] =
"JOWL_BLUSH";
753 enum_map_jowl_t[(int)
JOWL_TEARS] =
"JOWL_TEARS";
755 enum_map_mouth_t[(int)
MOUTH_OPEN] =
"MOUTH_OPEN";
756 enum_map_mouth_t[(int)
MOUTH_CLOSE] =
"MOUTH_CLOSE";
757 enum_map_mouth_t[(int)
MOUTH_SMILE] =
"MOUTH_SMILE";
758 enum_map_mouth_t[(int)
MOUTH_SCOWL] =
"MOUTH_SCOWL";
764 data_size =
sizeof(MoveMouthMessage_data_t);
767 data = (MoveMouthMessage_data_t *)
data_ptr;
770 enum_map_brows_t[(int)
BROWS_FROWN] =
"BROWS_FROWN";
771 enum_map_brows_t[(int)
BROWS_LIFT] =
"BROWS_LIFT";
773 enum_map_eyes_t[(int)
EYES_UP] =
"EYES_UP";
774 enum_map_eyes_t[(int)
EYES_DOWN] =
"EYES_DOWN";
775 enum_map_eyes_t[(int)
EYES_LEFT] =
"EYES_LEFT";
776 enum_map_eyes_t[(int)
EYES_RIGHT] =
"EYES_RIGHT";
777 enum_map_eyes_t[(int)
EYES_COOL] =
"EYES_COOL";
778 enum_map_eyes_t[(int)
EYES_CROSS] =
"EYES_CROSS";
779 enum_map_eyes_t[(int)
EYES_HEART] =
"EYES_HEART";
782 enum_map_jowl_t[(int)
JOWL_BLUSH] =
"JOWL_BLUSH";
783 enum_map_jowl_t[(int)
JOWL_TEARS] =
"JOWL_TEARS";
785 enum_map_mouth_t[(int)
MOUTH_OPEN] =
"MOUTH_OPEN";
786 enum_map_mouth_t[(int)
MOUTH_CLOSE] =
"MOUTH_CLOSE";
787 enum_map_mouth_t[(int)
MOUTH_SMILE] =
"MOUTH_SMILE";
788 enum_map_mouth_t[(int)
MOUTH_SCOWL] =
"MOUTH_SCOWL";
806 data = (MoveMouthMessage_data_t *)
data_ptr;
838 data->mouth_action = new_mouth_action;
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
~MoveBrowsMessage()
Destructor.
void * data_ptr
Pointer to memory that contains local data.
void set_eyes_action(const eyes_t new_eyes_action)
Set eyes_action value.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
MoveEyesMessage()
Constructor.
eyes_t
Action types for moving eyes.
size_t maxlenof_jowl_action() const
Get maximum length of jowl_action value.
const char * tostring_jowl_t(jowl_t value) const
Convert jowl_t constant to string.
MoveEyesMessage Fawkes BlackBoard Interface Message.
virtual Message * clone() const
Clone this message.
void set_hash(unsigned char *ihash)
Set hash.
size_t maxlenof_mouth_action() const
Get maximum length of mouth_action value.
Fawkes library namespace.
Timestamp data, must be present and first entries for each interface data structs! This leans on time...
jowl_t jowl_action() const
Get jowl_action value.
size_t maxlenof_eyes_action() const
Get maximum length of eyes_action value.
virtual const char * enum_tostring(const char *enumtype, int val) const
Convert arbitrary enum value to string.
const char * tostring_eyes_t(eyes_t value) const
Convert eyes_t constant to string.
eyes_t eyes_action() const
Get eyes_action value.
size_t maxlenof_mouth_action() const
Get maximum length of mouth_action value.
MoveMouthMessage()
Constructor.
void set_jowl_action(const jowl_t new_jowl_action)
Set jowl_action value.
brows_t brows_action() const
Get brows_action value.
Base class for all Fawkes BlackBoard interfaces.
MoveBrowsMessage Fawkes BlackBoard Interface Message.
mouth_t mouth_action() const
Get mouth_action value.
MoveJowlMessage()
Constructor.
virtual Message * clone() const
Clone this message.
virtual void copy_values(const Interface *other)
Copy values from other interface.
message_data_ts_t * data_ts
data timestamp aliasing pointer
unsigned int data_size
Size of memory needed to hold all data.
void add_messageinfo(const char *name)
Add an entry to the message info list.
bool data_changed
Indicator if data has changed.
MoveJowlMessage Fawkes BlackBoard Interface Message.
const char * type() const
Get type of interface.
~MoveEyesMessage()
Destructor.
jowl_t jowl_action() const
Get jowl_action value.
eyes_t eyes_action() const
Get eyes_action value.
virtual Message * create_message(const char *type) const
Create message based on type name.
void set_jowl_action(const jowl_t new_jowl_action)
Set jowl_action value.
void set_brows_action(const brows_t new_brows_action)
Set brows_action value.
void set_mouth_action(const mouth_t new_mouth_action)
Set mouth_action value.
mouth_t mouth_action() const
Get mouth_action value.
void set_mouth_action(const mouth_t new_mouth_action)
Set mouth_action value.
size_t maxlenof_eyes_action() const
Get maximum length of eyes_action value.
~MoveMouthMessage()
Destructor.
FacialExpressionInterface Fawkes BlackBoard Interface.
jowl_t
Action types for moving jowl.
mouth_t
Action types for moving mouth.
virtual Message * clone() const
Clone this message.
~MoveJowlMessage()
Destructor.
size_t maxlenof_brows_action() const
Get maximum length of brows_action value.
size_t maxlenof_brows_action() const
Get maximum length of brows_action value.
virtual Message * clone() const
Clone this message.
void set_brows_action(const brows_t new_brows_action)
Set brows_action value.
brows_t brows_action() const
Get brows_action value.
MoveMouthMessage Fawkes BlackBoard Interface Message.
size_t maxlenof_jowl_action() const
Get maximum length of jowl_action value.
void set_eyes_action(const eyes_t new_eyes_action)
Set eyes_action value.
MoveBrowsMessage()
Constructor.
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.
brows_t
Action types for moving brows.
const char * type() const
Get message type.
const char * tostring_mouth_t(mouth_t value) const
Convert mouth_t constant to string.
field with interface specific enum type
const char * tostring_brows_t(brows_t value) const
Convert brows_t constant to string.