![]() |
HAN-FUN API
1.5.3
This project provides the common implementation of ULE Alliance's HAN-FUN application protocol.
|
Simple Button Interface : Server side implementation. More...
#include <simple_button.h>
Public Member Functions | |
Server () | |
Constructor. | |
virtual | ~Server () |
Destructor. | |
void | pressed (const Protocol::Address &addr, uint16_t timestamp) |
This method is used to indicate that the button was pressed and generate the appropriate message, to the given address. More... | |
void | pressed (uint16_t timestamp) |
This method is used to indicate that the button was pressed. More... | |
void | released (const Protocol::Address &addr, uint16_t timestamp) |
This method is used to indicate that the button was released and generate the appropriate message, to the given address. More... | |
void | released (uint16_t timestamp) |
This method is used to indicate that the button was released and generate the appropriate message, to the given broadcast address based on the difference between the timestamp of the last call to pressed and the given timestamp . More... | |
uint16_t | short_press_max_duration () const |
Get the Short Press Max Duration for the Simple Button server. More... | |
virtual void | short_press_max_duration (uint16_t __value) |
Set the Short Press Max Duration for the Simple Button server. More... | |
uint16_t | extra_long_press_min_duration () const |
Get the Extra Long Press Min Duration for the Simple Button server. More... | |
virtual void | extra_long_press_min_duration (uint16_t __value) |
Set the Extra Long Press Min Duration for the Simple Button server. More... | |
HF::Attributes::IAttribute * | attribute (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... | |
![]() | |
HF::Interface::Role | role () const |
Return the Interface::Role this interface implements. 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... | |
Static Public Attributes | |
static constexpr uint16_t | DOUBLE_CLICK_GAP_DURATION_MIN_VALUE = 0x0064 |
This is the minimum value that the Double Click Gap Duration can have. | |
![]() | |
static constexpr uint8_t | MAX_CMD_ID = 0xFF |
Maximum value for command IDs in interfaces. | |
Protected Member Functions | |
Commands | |
void | short_press (const Protocol::Address &addr) |
Send a HAN-FUN message containing a SimpleButton::SHORT_PRESS_CMD , to the given network address. More... | |
void | short_press () |
Send a HAN-FUN message containing a SimpleButton::SHORT_PRESS_CMD , to the broadcast network address. | |
void | long_press (const Protocol::Address &addr) |
Send a HAN-FUN message containing a SimpleButton::LONG_PRESS_CMD , to the given network address. More... | |
void | long_press () |
Send a HAN-FUN message containing a SimpleButton::LONG_PRESS_CMD , to the broadcast network address. | |
![]() | |
Base () | |
Constructor. | |
![]() | |
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... | |
virtual uint16_t | payload_size (Protocol::Message &message) const |
Return the minimal payload size that should be present for the given message. More... | |
virtual 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... | |
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... | |
Protected Attributes | |
uint16_t | _short_press_max_duration |
Short Press Max Duration. | |
uint16_t | _extra_long_press_min_duration |
Extra Long Press Minimum Duration. | |
uint16_t | _timestamp |
Timestamp of last call. 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... | |
Simple Button Interface : Server side implementation.
This class provides the server side of the Simple Button interface.
Definition at line 157 of file simple_button.h.
|
virtual |
Return a pointer to the interface attribute with the given uid
.
[in] | uid | identifier of the attribute in the interface. |
nullptr
otherwise. Reimplemented from HF::Interfaces::AbstractInterface.
|
virtual |
Return a vector containing the attribute UIDs, for the given pack ID.
[in] | pack_id | the Attribute pack ID to get the attributes UIDs for. |
Reimplemented from HF::Interfaces::AbstractInterface.
uint16_t HF::Interfaces::SimpleButton::Server::extra_long_press_min_duration | ( | ) | const |
Get the Extra Long Press Min Duration for the Simple Button server.
|
virtual |
Set the Extra Long Press Min Duration for the Simple Button server.
[in] | __value | the Extra Long Press Min Duration value to set the server to. |
|
protected |
Send a HAN-FUN message containing a SimpleButton::LONG_PRESS_CMD
, to the given network address.
[in] | addr | the network address to send the message to. |
void HF::Interfaces::SimpleButton::Server::pressed | ( | const Protocol::Address & | addr, |
uint16_t | timestamp | ||
) |
This method is used to indicate that the button was pressed and generate the appropriate message, to the given address.
[in] | addr | the network address to send any generated message to. |
[in] | timestamp | time in milliseconds the button was released. |
Referenced by pressed().
|
inline |
This method is used to indicate that the button was pressed.
[in] | timestamp | time in milliseconds the button was pressed. |
Definition at line 213 of file simple_button.h.
References pressed().
void HF::Interfaces::SimpleButton::Server::released | ( | const Protocol::Address & | addr, |
uint16_t | timestamp | ||
) |
This method is used to indicate that the button was released and generate the appropriate message, to the given address.
pressed
before has undefined behavior.[in] | addr | the network address to send any generated message to. |
[in] | timestamp | time in milliseconds the button was released. |
Referenced by released().
|
inline |
This method is used to indicate that the button was released and generate the appropriate message, to the given broadcast address based on the difference between the timestamp
of the last call to pressed
and the given timestamp
.
pressed
before has undefined behavior.[in] | timestamp | time in milliseconds the button was released. |
Definition at line 239 of file simple_button.h.
References released().
|
protected |
Send a HAN-FUN message containing a SimpleButton::SHORT_PRESS_CMD
, to the given network address.
[in] | addr | the network address to send the message to. |
uint16_t HF::Interfaces::SimpleButton::Server::short_press_max_duration | ( | ) | const |
Get the Short Press Max Duration for the Simple Button server.
|
virtual |
Set the Short Press Max Duration for the Simple Button server.
[in] | __value | the Short Press Max Duration value to set the server to. |
|
protected |
Timestamp of last call.
Definition at line 169 of file simple_button.h.