24#include <interfaces/BatteryInterface.h>
26#include <core/exceptions/software.h>
46BatteryInterface::BatteryInterface() : Interface()
48 data_size =
sizeof(BatteryInterface_data_t);
49 data_ptr = malloc(data_size);
50 data = (BatteryInterface_data_t *)data_ptr;
51 data_ts = (interface_data_ts_t *)data_ptr;
52 memset(data_ptr, 0, data_size);
53 add_fieldinfo(IFT_UINT32,
"current", 1, &data->current);
54 add_fieldinfo(IFT_UINT32,
"voltage", 1, &data->voltage);
55 add_fieldinfo(IFT_UINT32,
"temperature", 1, &data->temperature);
56 add_fieldinfo(IFT_FLOAT,
"absolute_soc", 1, &data->absolute_soc);
57 add_fieldinfo(IFT_FLOAT,
"relative_soc", 1, &data->relative_soc);
58 add_messageinfo(
"PushButtonMessage");
59 add_messageinfo(
"SleepMessage");
60 unsigned char tmp_hash[] = {0x28, 0xb6, 0xbe, 0xe7, 0xf1, 0x47, 0x2, 0x12, 0x1d, 0xe3, 0x7c, 0x14, 0xe9, 0x1f, 0x24, 0x4d};
65BatteryInterface::~BatteryInterface()
75BatteryInterface::current()
const
85BatteryInterface::maxlenof_current()
const
95BatteryInterface::set_current(
const uint32_t new_current)
97 set_field(data->current, new_current);
105BatteryInterface::voltage()
const
107 return data->voltage;
115BatteryInterface::maxlenof_voltage()
const
125BatteryInterface::set_voltage(
const uint32_t new_voltage)
127 set_field(data->voltage, new_voltage);
135BatteryInterface::temperature()
const
137 return data->temperature;
145BatteryInterface::maxlenof_temperature()
const
155BatteryInterface::set_temperature(
const uint32_t new_temperature)
157 set_field(data->temperature, new_temperature);
165BatteryInterface::absolute_soc()
const
167 return data->absolute_soc;
175BatteryInterface::maxlenof_absolute_soc()
const
185BatteryInterface::set_absolute_soc(
const float new_absolute_soc)
187 set_field(data->absolute_soc, new_absolute_soc);
195BatteryInterface::relative_soc()
const
197 return data->relative_soc;
205BatteryInterface::maxlenof_relative_soc()
const
215BatteryInterface::set_relative_soc(
const float new_relative_soc)
217 set_field(data->relative_soc, new_relative_soc);
222BatteryInterface::create_message(
const char *type)
const
224 if ( strncmp(
"PushButtonMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
226 }
else if ( strncmp(
"SleepMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
230 "message type for this interface type.", type);
244 type(), other->
type());
246 memcpy(data, oi->data,
sizeof(BatteryInterface_data_t));
250BatteryInterface::enum_tostring(
const char *enumtype,
int val)
const
264BatteryInterface::PushButtonMessage::PushButtonMessage() :
Message(
"PushButtonMessage")
266 data_size =
sizeof(PushButtonMessage_data_t);
269 data = (PushButtonMessage_data_t *)
data_ptr;
287 data = (PushButtonMessage_data_t *)
data_ptr;
315 data = (SleepMessage_data_t *)
data_ptr;
333 data = (SleepMessage_data_t *)
data_ptr;
SleepMessage Fawkes BlackBoard Interface Message.
virtual Message * clone() const
Clone this message.
SleepMessage()
Constructor.
~SleepMessage()
Destructor.
BatteryInterface Fawkes BlackBoard Interface.
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
Base class for all Fawkes BlackBoard interfaces.
const char * type() const
Get type of interface.
void * data_ptr
Pointer to local memory storage.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
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!...