![]() |
HAN-FUN API
1.5.3
This project provides the common implementation of ULE Alliance's HAN-FUN application protocol.
|
Helper class for using the Attribute Reporting service. More...
#include <attribute_reporting.h>
Public Member Functions | |
Commands | |
void | create (Protocol::Address &destination) |
Create a new attribute reporting event rule on the device with the given destination address, for the device/unit that contains this interface. More... | |
void | create (Protocol::Address &destination, uint32_t interval) |
Create a new attribute reporting periodic rule on the device with the given destination address and the given interval , for the device/unit that contains this interface. More... | |
void | destroy (Protocol::Address &destination, Type type, uint8_t report_id) |
Remove the rule with the given type and the given report_id , on the device with the given destination address. More... | |
void | destroy (Protocol::Address &destination, Reference report) |
Remove the rule for the given report reference, on the device with the given destination address. More... | |
void | add (Protocol::Address &destination, Reference report, periodic_iterator begin, periodic_iterator end) |
Add the periodic entries from start to end into the rule with the given report reference, on the device with the given destination address. More... | |
void | add (Protocol::Address &destination, Reference report, event_iterator begin, event_iterator end) |
Add the event entries from start to end into the rule with the given report reference, on the device with the given destination address. More... | |
void | update_interval (Protocol::Address &destination, Reference report, uint32_t interval) |
Update the interval of an existent report. More... | |
![]() | |
Interface::Role | role () const |
Return the Interface::Role this interface implements. More... | |
virtual void | report (Type type, const Protocol::Address &address, const Common::ByteArray &payload, uint16_t offset) |
Event indicating a PERIODIC_REPORT_CMD or a EVENT_REPORT_CMD . More... | |
virtual void | created (const Protocol::Address &address, const Response &response) |
Event indicating the result of a CREATE_PERIODIC_CMD or CREATE_EVENT_CMD . More... | |
virtual void | added (const Protocol::Address &address, const Response &response) |
Event indicating the result of a ADD_PERIODIC_ENTRY_CMD or ADD_EVENT_ENTRY_CMD . More... | |
virtual void | deleted (const Protocol::Address &address, const Response &response) |
Event indicating the result of a DELETE_REPORT_CMD . More... | |
virtual void | updated (const Protocol::Address &address, const Response &response) |
Event indicating the result of a UPDATE_INTERVAL_CMD . More... | |
![]() | |
uint16_t | uid () const |
This method returns the interface UID. More... | |
![]() | |
Common::Result | handle (Protocol::Packet &packet, Common::ByteArray &payload, uint16_t offset) |
Handle incoming messages from the network. More... | |
void | periodic (uint32_t time) |
Handle periodic processing. More... | |
HF::Attributes::IAttribute * | attribute (uint8_t uid) |
Return a pointer to the interface attribute with the given uid . More... | |
virtual HF::Attributes::UIDS | attributes (uint8_t pack_id=HF::Attributes::Pack::MANDATORY) const |
Return a vector containing the attribute UIDs, for the given pack ID. More... | |
Protected Member Functions | |
virtual HF::Units::IUnit & | unit () const =0 |
Get the unit that contains this interface. More... | |
![]() | |
uint16_t | payload_size (Protocol::Message &message) const |
Return the minimal payload size that should be present for the given message. More... | |
uint16_t | payload_size (Protocol::Message::Interface &itf) const |
Return the minimal payload size that a message should hold when addressed at the given interface. More... | |
Common::Result | handle_command (Protocol::Packet &packet, Common::ByteArray &payload, uint16_t offset) |
Handle incoming messages from the network. More... | |
![]() | |
bool | check_uid (uint16_t uid) const |
![]() | |
virtual void | send (const Protocol::Address &addr, Protocol::Message &message)=0 |
Send message msg to the network address given by addr . More... | |
virtual void | notify (const HF::Attributes::IAttribute &old_value, const HF::Attributes::IAttribute &new_value) const |
Notify that an attribute value as changed. More... | |
Common::Result | check (Protocol::Message &message, Common::ByteArray &payload, uint16_t offset) |
Check if message has correct attributes to be processed by the interface. More... | |
Common::Result | check_payload_size (Protocol::Message &message, Common::ByteArray &payload, uint16_t offset) |
Check if payload data size if sufficient for processing the message . More... | |
template<typename _Message > | |
uint16_t | payload_size_helper () const |
Helper function template to retrieve minimum size required for serializing/deserializing the class given. More... | |
virtual Common::Result | handle_attribute (Protocol::Packet &packet, Common::ByteArray &payload, uint16_t offset) |
Handle incoming messages from the network. More... | |
Additional Inherited Members | |
![]() | |
enum | Role { CLIENT_ROLE = 0, SERVER_ROLE = 1 } |
Interface roles. More... | |
enum | UID { DEVICE_MANAGEMENT = 0x0001, BIND_MANAGEMENT = 0x0002, GROUP_MANAGEMENT = 0x0003, IDENTIFY = 0x0004, DEVICE_INFORMATION = 0x0005, ATTRIBUTE_REPORTING = 0x0006, BATCH_PROGRAM_MANAGEMENT = 0x0007, EVENT_SCHEDULING = 0x0008, WEEKLY_SCHEDULING = 0x0009, GROUP_TABLE = 0x000A, TAMPER_ALERT = 0x0101, TIME = 0x0102, POWER = 0x0110, KEEP_ALIVE = 0x0115, RSSI = 0x0111, SUOTA = 0x0400, ALERT = 0x0100, ON_OFF = 0x0200, LEVEL_CONTROL = 0x0201, COLOUR_CONTROL = 0x0202, SIMPLE_KEYPAD = 0x0203, SIMPLE_POWER_METER = 0x0300, SIMPLE_TEMPERATURE = 0x0301, SIMPLE_HUMIDITY = 0x0302, SIMPLE_THERMOSTAT = 0x0303, SIMPLE_BUTTON = 0x0304, SIMPLE_VISUAL_EFFECTS = 0x0305, SIMPLE_AIR_PRESSURE = 0x0306, SIMPLE_LIGHT_SENSOR = 0x0307, RESERVED = 0x7F00, MAX_UID = 0x7FFE, ANY_UID = 0x7FFF } |
Interfaces Unique Identifiers (UID). More... | |
![]() | |
static constexpr uint8_t | MAX_CMD_ID = 0xFF |
Maximum value for command IDs in interfaces. | |
Helper class for using the Attribute Reporting service.
Definition at line 1467 of file attribute_reporting.h.
void HF::Core::AttributeReporting::AbstractClient::add | ( | Protocol::Address & | destination, |
Reference | report, | ||
periodic_iterator | begin, | ||
periodic_iterator | end | ||
) |
Add the periodic entries from start
to end
into the rule with the given report
reference, on the device with the given destination
address.
[in] | destination | device address the rule should be sent to. |
[in] | report | report reference |
[in] | begin | iterator to the start of the periodic entries to add. |
[in] | end | iterator to the end of the periodic entries to add. |
void HF::Core::AttributeReporting::AbstractClient::add | ( | Protocol::Address & | destination, |
Reference | report, | ||
event_iterator | begin, | ||
event_iterator | end | ||
) |
Add the event entries from start
to end
into the rule with the given report
reference, on the device with the given destination
address.
[in] | destination | device address the rule should be sent to. |
[in] | report | report reference |
[in] | begin | iterator to the start of the event entries to add. |
[in] | end | iterator to the end of the event entries to add. |
void HF::Core::AttributeReporting::AbstractClient::create | ( | Protocol::Address & | destination | ) |
Create a new attribute reporting event rule on the device with the given destination
address, for the device/unit that contains this interface.
[in] | destination | device address the rule should be sent to. |
void HF::Core::AttributeReporting::AbstractClient::create | ( | Protocol::Address & | destination, |
uint32_t | interval | ||
) |
Create a new attribute reporting periodic rule on the device with the given destination
address and the given interval
, for the device/unit that contains this interface.
[in] | destination | device address the rule should be sent to. |
[in] | interval | time interval in seconds for the periodic rule. |
void HF::Core::AttributeReporting::AbstractClient::destroy | ( | Protocol::Address & | destination, |
Type | type, | ||
uint8_t | report_id | ||
) |
Remove the rule with the given type
and the given report_id
, on the device with the given destination
address.
[in] | destination | device address the rule should be sent to. |
[in] | type | report type (HF::Core::AttributeReporting::Type) |
[in] | report_id | report ID. |
void HF::Core::AttributeReporting::AbstractClient::destroy | ( | Protocol::Address & | destination, |
Reference | report | ||
) |
Remove the rule for the given report
reference, on the device with the given destination
address.
[in] | destination | device address the rule should be sent to. |
[in] | report | report reference to remove the rule for. |
|
protectedpure virtual |
Get the unit that contains this interface.
void HF::Core::AttributeReporting::AbstractClient::update_interval | ( | Protocol::Address & | destination, |
Reference | report, | ||
uint32_t | interval | ||
) |
Update the interval of an existent report.
[in] | destination | device address the rule should be sent to. |
[in] | report | report reference |
[in] | interval | time interval in seconds for the periodic rule. |