24 #include <interfaces/BatteryInterface.h>
26 #include <core/exceptions/software.h>
44 BatteryInterface::BatteryInterface() : Interface()
46 data_size =
sizeof(BatteryInterface_data_t);
47 data_ptr = malloc(data_size);
48 data = (BatteryInterface_data_t *)data_ptr;
49 data_ts = (interface_data_ts_t *)data_ptr;
50 memset(data_ptr, 0, data_size);
51 add_fieldinfo(
IFT_UINT32,
"current", 1, &data->current);
52 add_fieldinfo(
IFT_UINT32,
"voltage", 1, &data->voltage);
53 add_fieldinfo(
IFT_UINT32,
"temperature", 1, &data->temperature);
54 add_fieldinfo(
IFT_FLOAT,
"absolute_soc", 1, &data->absolute_soc);
55 add_fieldinfo(
IFT_FLOAT,
"relative_soc", 1, &data->relative_soc);
56 add_messageinfo(
"PushButtonMessage");
57 add_messageinfo(
"SleepMessage");
58 unsigned char tmp_hash[] = {0x28, 0xb6, 0xbe, 0xe7, 0xf1, 0x47, 0x2, 0x12, 0x1d, 0xe3, 0x7c, 0x14, 0xe9, 0x1f, 0x24, 0x4d};
63 BatteryInterface::~BatteryInterface()
95 data->current = new_current;
106 return data->voltage;
126 data->voltage = new_voltage;
137 return data->temperature;
157 data->temperature = new_temperature;
168 return data->absolute_soc;
188 data->absolute_soc = new_absolute_soc;
199 return data->relative_soc;
219 data->relative_soc = new_relative_soc;
227 if ( strncmp(
"PushButtonMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
229 }
else if ( strncmp(
"SleepMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
233 "message type for this interface type.", type);
249 memcpy(data, oi->data,
sizeof(BatteryInterface_data_t));
269 data_size =
sizeof(PushButtonMessage_data_t);
272 data = (PushButtonMessage_data_t *)
data_ptr;
290 data = (PushButtonMessage_data_t *)
data_ptr;
318 data = (SleepMessage_data_t *)
data_ptr;
336 data = (SleepMessage_data_t *)
data_ptr;
void * data_ptr
Pointer to memory that contains local data.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
void set_absolute_soc(const float new_absolute_soc)
Set absolute_soc value.
size_t maxlenof_temperature() const
Get maximum length of temperature value.
size_t maxlenof_voltage() const
Get maximum length of voltage value.
Timestamp data, must be present and first entries for each interface data structs! This leans on time...
size_t maxlenof_absolute_soc() const
Get maximum length of absolute_soc value.
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
BatteryInterface Fawkes BlackBoard Interface.
SleepMessage()
Constructor.
void set_voltage(const uint32_t new_voltage)
Set voltage value.
Base class for all Fawkes BlackBoard interfaces.
~SleepMessage()
Destructor.
message_data_ts_t * data_ts
data timestamp aliasing pointer
unsigned int data_size
Size of memory needed to hold all data.
void set_temperature(const uint32_t new_temperature)
Set temperature value.
void set_relative_soc(const float new_relative_soc)
Set relative_soc value.
size_t maxlenof_current() const
Get maximum length of current value.
virtual const char * enum_tostring(const char *enumtype, int val) const
Convert arbitrary enum value to string.
bool data_changed
Indicator if data has changed.
void * data_ptr
Pointer to local memory storage.
SleepMessage Fawkes BlackBoard Interface Message.
uint32_t current() const
Get current value.
virtual Message * create_message(const char *type) const
Create message based on type name.
float relative_soc() const
Get relative_soc value.
virtual Message * clone() const
Clone this message.
void set_current(const uint32_t new_current)
Set current value.
uint32_t voltage() const
Get voltage value.
float absolute_soc() const
Get absolute_soc value.
size_t maxlenof_relative_soc() const
Get maximum length of relative_soc value.
const char * type() const
Get type of interface.
virtual void copy_values(const Interface *other)
Copy values from other interface.
32 bit unsigned integer field
uint32_t temperature() const
Get temperature value.