HAN-FUN API  1.5.3
This project provides the common implementation of ULE Alliance's HAN-FUN application protocol.
HF::Profiles::Detector< _uid > Struct Template Reference

Class template for Detector type profiles. More...

#include <profiles.h>

+ Inheritance diagram for HF::Profiles::Detector< _uid >:
+ Collaboration diagram for HF::Profiles::Detector< _uid >:

Public Member Functions

void alert (Protocol::Address &addr, bool state)
 Send an alert command to the remote device given by the address in addr. More...
 
void alert (bool state)
 Send an alert command to the broadcast address. More...
 
HF::Attributes::List attributes (Common::Interface itf, uint8_t pack_id, const HF::Attributes::UIDS &uids) const
 Return a list of all the attributes for a given interface, pack id and list of attributes UID's. More...
 
- Public Member Functions inherited from HF::Profiles::AbstractProfile< _uid >
uint16_t uid () const
 Return this profile HAN-FUN UID. More...
 
Common::Result handle (Protocol::Packet &packet, Common::ByteArray &payload, uint16_t offset)
 Handle incoming messages from the network. More...
 

Additional Inherited Members

- Protected 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...
 
- Protected Member Functions inherited from HF::Interfaces::Alert::Server
Alert::Messagecreate_status (uint16_t unit_type)
 Create a HAN-FUN message containing a Alert::STATUS_CMD, to be sent to the network. More...
 
 Server ()
 Constructor.
 
virtual ~Server ()
 Destructor.
 
uint32_t state ()
 Return the current state for all the alerts as a bitmask. More...
 
void set_state (uint32_t value)
 Set the state bitmask to the given value. More...
 
bool state (uint8_t index, bool value)
 Set the alert given by index to value. More...
 
bool state (uint8_t index)
 Get the state of the alert given by index. More...
 
void clear ()
 Clear all the alerts.
 
void enable (uint8_t index)
 Enable alert at index. More...
 
void enableAll ()
 Enable all alerts.
 
bool enabled (uint8_t index)
 Check if alert at index is enabled. More...
 
uint32_t enabled ()
 Return the bitmask of the enable state of the alerts. More...
 
void set_enabled (uint32_t value)
 Set the bitmask of the enable state of the alerts. More...
 
void disable (uint8_t index)
 Disable the alert at index. More...
 
bool disabled (uint8_t index)
 Check if alert at index is disabled. More...
 
void disableAll ()
 Disable all alerts.
 
HF::Attributes::IAttributeattribute (uint8_t uid)
 Return a pointer to the interface attribute with the given uid. More...
 
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...
 
void status (Protocol::Address &addr, uint16_t unit_type)
 Send a HAN-FUN message containing a Alert::STATUS_CMD, to the given network address. More...
 
void status (uint16_t unit_type)
 Send a HAN-FUN message containing a Alert::STATUS_CMD, to the broadcast network address. More...
 
- Protected Member Functions inherited from HF::Interfaces::InterfaceRole< Alert::Base, HF::Interface::SERVER_ROLE >
HF::Interface::Role role () const
 Return the Interface::Role this interface implements. More...
 
- Protected Member Functions inherited from HF::Interfaces::Alert::Base
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...
 
- Protected Member Functions inherited from HF::Interfaces::Interface< HF::Interface::ALERT >
bool check_uid (uint16_t uid) const
 
uint16_t uid () const
 This method returns the interface UID. More...
 
- 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...
 
virtual uint16_t payload_size (Protocol::Message &message) const
 Return the minimal payload size that should be present for the given 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_command (Protocol::Packet &packet, Common::ByteArray &payload, uint16_t offset)
 Handle incoming messages from the network. More...
 
virtual Common::Result handle_attribute (Protocol::Packet &packet, Common::ByteArray &payload, uint16_t offset)
 Handle incoming messages from the network. 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...
 
- Protected Attributes inherited from HF::Interfaces::Alert::Server
uint32_t _state
 Alert's state.
 
uint32_t _enabled
 Alert's enable state.
 
- Static Protected Attributes inherited from HF::Interface
static constexpr uint8_t MAX_CMD_ID = 0xFF
 Maximum value for command IDs in interfaces.
 

Detailed Description

template<Profiles::UID _uid>
struct HF::Profiles::Detector< _uid >

Class template for Detector type profiles.

Definition at line 438 of file profiles.h.

Member Function Documentation

◆ alert() [1/2]

template<Profiles::UID _uid>
void HF::Profiles::Detector< _uid >::alert ( Protocol::Address addr,
bool  state 
)
inline

Send an alert command to the remote device given by the address in addr.

Parameters
[in]addrdevice address to send the message to.
[in]statealert state to send.

Definition at line 458 of file profiles.h.

Referenced by HF::Profiles::Detector< FLOOD_DETECTOR >::alert().

459  {
462  }
uint16_t uid() const
Return this profile HAN-FUN UID.
Definition: profiles.h:274
uint32_t state()
Return the current state for all the alerts as a bitmask.
void status(Protocol::Address &addr, uint16_t unit_type)
Send a HAN-FUN message containing a Alert::STATUS_CMD, to the given network address.
+ Here is the caller graph for this function:

◆ alert() [2/2]

template<Profiles::UID _uid>
void HF::Profiles::Detector< _uid >::alert ( bool  state)
inline

Send an alert command to the broadcast address.

Parameters
[in]statealert state to send.

Definition at line 469 of file profiles.h.

470  {
471  Protocol::Address addr;
472  this->alert(addr, state);
473  }
uint32_t state()
Return the current state for all the alerts as a bitmask.
void alert(Protocol::Address &addr, bool state)
Send an alert command to the remote device given by the address in addr.
Definition: profiles.h:458

◆ attributes()

template<Profiles::UID _uid>
HF::Attributes::List HF::Profiles::Detector< _uid >::attributes ( Common::Interface  itf,
uint8_t  pack_id,
const HF::Attributes::UIDS uids 
) const
inlinevirtual

Return a list of all the attributes for a given interface, pack id and list of attributes UID's.

Parameters
[in]itfinterface UID.
[in]pack_idattribute pack id.
[in]uidslist of attributes UID's.
Returns
attribute list.

Reimplemented from HF::Profiles::AbstractProfile< _uid >.

Definition at line 478 of file profiles.h.

480  {
481  if (Interfaces::Alert::Server::uid() == itf.id)
482  {
483  return HF::Attributes::get(*this, pack_id, uids);
484  }
485  else
486  {
487  return HF::Attributes::List();
488  }
489  }
List get(const HF::Interface &itf, uint8_t pack_id, const UIDS &uids)
Get a list with the attributes for the given interface, pack id or the uids passed in...
This class has the same behavior has a list, however the list element access methods where overwritte...
Definition: attributes.h:752
uint16_t uid() const
This method returns the interface UID.
Definition: interface.h:374

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