24 #include <interfaces/LedInterface.h>
26 #include <core/exceptions/software.h>
52 LedInterface::LedInterface() : Interface()
54 data_size =
sizeof(LedInterface_data_t);
55 data_ptr = malloc(data_size);
56 data = (LedInterface_data_t *)data_ptr;
57 data_ts = (interface_data_ts_t *)data_ptr;
58 memset(data_ptr, 0, data_size);
59 add_fieldinfo(IFT_FLOAT,
"intensity", 1, &data->intensity);
60 add_messageinfo(
"SetIntensityMessage");
61 add_messageinfo(
"TurnOnMessage");
62 add_messageinfo(
"TurnOffMessage");
63 unsigned char tmp_hash[] = {0xd, 0x86, 0x60, 0xcd, 0xae, 0x41, 0xa5, 0xa1, 0xbc, 0xb7, 0xf, 0x9, 0x90, 00, 0x4d, 0x40};
68 LedInterface::~LedInterface()
78 LedInterface::intensity()
const
80 return data->intensity;
88 LedInterface::maxlenof_intensity()
const
98 LedInterface::set_intensity(
const float new_intensity)
100 set_field(data->intensity, new_intensity);
105 LedInterface::create_message(
const char *type)
const
107 if ( strncmp(
"SetIntensityMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
109 }
else if ( strncmp(
"TurnOnMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
111 }
else if ( strncmp(
"TurnOffMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
115 "message type for this interface type.", type);
129 type(), other->
type());
131 memcpy(data, oi->data,
sizeof(LedInterface_data_t));
135 LedInterface::enum_tostring(
const char *enumtype,
int val)
const
152 LedInterface::SetIntensityMessage::SetIntensityMessage(
const float ini_time_sec,
const float ini_intensity) :
Message(
"SetIntensityMessage")
154 data_size =
sizeof(SetIntensityMessage_data_t);
157 data = (SetIntensityMessage_data_t *)
data_ptr;
159 data->time_sec = ini_time_sec;
160 data->intensity = ini_intensity;
167 data_size =
sizeof(SetIntensityMessage_data_t);
170 data = (SetIntensityMessage_data_t *)
data_ptr;
190 data = (SetIntensityMessage_data_t *)
data_ptr;
204 return data->time_sec;
236 return data->intensity;
256 set_field(data->intensity, new_intensity);
279 data_size =
sizeof(TurnOnMessage_data_t);
282 data = (TurnOnMessage_data_t *)
data_ptr;
300 data = (TurnOnMessage_data_t *)
data_ptr;
325 data_size =
sizeof(TurnOffMessage_data_t);
328 data = (TurnOffMessage_data_t *)
data_ptr;
346 data = (TurnOffMessage_data_t *)
data_ptr;
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.
SetIntensityMessage Fawkes BlackBoard Interface Message.
SetIntensityMessage()
Constructor.
size_t maxlenof_time_sec() const
Get maximum length of time_sec value.
float intensity() const
Get intensity value.
~SetIntensityMessage()
Destructor.
size_t maxlenof_intensity() const
Get maximum length of intensity value.
float time_sec() const
Get time_sec value.
void set_time_sec(const float new_time_sec)
Set time_sec value.
virtual Message * clone() const
Clone this message.
void set_intensity(const float new_intensity)
Set intensity value.
TurnOffMessage Fawkes BlackBoard Interface Message.
TurnOffMessage()
Constructor.
virtual Message * clone() const
Clone this message.
~TurnOffMessage()
Destructor.
TurnOnMessage Fawkes BlackBoard Interface Message.
TurnOnMessage()
Constructor.
virtual Message * clone() const
Clone this message.
~TurnOnMessage()
Destructor.
LedInterface Fawkes BlackBoard Interface.
static const float OFF
OFF constant.
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
static const float ON
ON constant.
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.
Fawkes library namespace.
Timestamp data, must be present and first entries for each interface data structs!...