HAN-FUN API  1.5.3
This project provides the common implementation of ULE Alliance's HAN-FUN application protocol.
HF::Core::AttributeReporting::AbstractClient Struct Referenceabstract

Helper class for using the Attribute Reporting service. More...

#include <attribute_reporting.h>

+ Inheritance diagram for HF::Core::AttributeReporting::AbstractClient:
+ Collaboration diagram for HF::Core::AttributeReporting::AbstractClient:

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...
 
- Public Member Functions inherited from HF::Core::AttributeReporting::Client
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...
 
- Public Member Functions inherited from HF::Interfaces::Interface< HF::Interface::ATTRIBUTE_REPORTING >
uint16_t uid () const
 This method returns the interface UID. More...
 
- Public Member Functions inherited from HF::Interfaces::AbstractInterface
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::IAttributeattribute (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::IUnitunit () const =0
 Get the unit that contains this interface. More...
 
- Protected Member Functions inherited from HF::Core::AttributeReporting::Client
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...
 
- Protected Member Functions inherited from HF::Interfaces::Interface< HF::Interface::ATTRIBUTE_REPORTING >
bool check_uid (uint16_t uid) const
 
- Protected Member Functions inherited from HF::Interfaces::AbstractInterface
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

- Public Types inherited from HF::Interface
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 Public Attributes inherited from HF::Interface
static constexpr uint8_t MAX_CMD_ID = 0xFF
 Maximum value for command IDs in interfaces.
 

Detailed Description

Helper class for using the Attribute Reporting service.

Definition at line 1467 of file attribute_reporting.h.

Member Function Documentation

◆ add() [1/2]

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.

Parameters
[in]destinationdevice address the rule should be sent to.
[in]reportreport reference
[in]beginiterator to the start of the periodic entries to add.
[in]enditerator to the end of the periodic entries to add.

◆ add() [2/2]

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.

Parameters
[in]destinationdevice address the rule should be sent to.
[in]reportreport reference
[in]beginiterator to the start of the event entries to add.
[in]enditerator to the end of the event entries to add.

◆ create() [1/2]

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.

Parameters
[in]destinationdevice address the rule should be sent to.

◆ create() [2/2]

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.

Parameters
[in]destinationdevice address the rule should be sent to.
[in]intervaltime interval in seconds for the periodic rule.

◆ destroy() [1/2]

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.

Parameters
[in]destinationdevice address the rule should be sent to.
[in]typereport type (HF::Core::AttributeReporting::Type)
[in]report_idreport ID.

◆ destroy() [2/2]

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.

Parameters
[in]destinationdevice address the rule should be sent to.
[in]reportreport reference to remove the rule for.

◆ unit()

virtual HF::Units::IUnit& HF::Core::AttributeReporting::AbstractClient::unit ( ) const
protectedpure virtual

Get the unit that contains this interface.

Returns
reference to unit that contains this interface.

◆ update_interval()

void HF::Core::AttributeReporting::AbstractClient::update_interval ( Protocol::Address destination,
Reference  report,
uint32_t  interval 
)

Update the interval of an existent report.

Parameters
[in]destinationdevice address the rule should be sent to.
[in]reportreport reference
[in]intervaltime interval in seconds for the periodic rule.

The documentation for this struct was generated from the following file: