HAN-FUN API  1.5.3
This project provides the common implementation of ULE Alliance's HAN-FUN application protocol.
HF::Core::Scheduling::IServer Class Referenceabstract

Scheduling Service : Server side implementation. More...

#include <scheduling.h>

+ Inheritance diagram for HF::Core::Scheduling::IServer:
+ Collaboration diagram for HF::Core::Scheduling::IServer:

Public Member Functions

virtual ~IServer ()
 Destructor.
 
uint8_t maximum_number_of_entries () const
 Get the Maximum Number Of Entries for the Scheduling server. More...
 
void maximum_number_of_entries (uint8_t __value)
 Set the Maximum Number Of Entries for the Scheduling server. More...
 
virtual uint8_t number_of_entries () const =0
 Get the Number Of Entries for the Scheduling server. More...
 
bool status () const
 Get the Status for the Scheduling server. More...
 
bool enabled () const
 Check if scheduler is enabled. More...
 
void status (bool __value)
 Set the Status for the Scheduling server. More...
 
void enable (bool __value)
 Enable/Disable scheduler. More...
 
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...
 
Events
virtual Common::Result activate_scheduler (const Protocol::Packet &packet, const ActivateScheduler &msg)
 Callback that is called when a Scheduling::ACTIVATE_SCHEDULER_CMD, is received. More...
 
- Public Member Functions inherited from HF::Core::ServiceRole< AbstractService, HF::Interface::SERVER_ROLE >
Interface::Role role () const
 Return the Interface::Role this interface implements. More...
 
- Public Member Functions inherited from HF::Core::AbstractService
Unit0unit () const
 The device this unit is associated with.
 
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...
 
- Public Member Functions inherited from HF::Interface
virtual uint16_t uid () const =0
 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...
 

Protected Member Functions

 IServer (Unit0 &unit)
 Constructor.
 
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::Core::ServiceRole< AbstractService, HF::Interface::SERVER_ROLE >
 ServiceRole (Unit0 &unit)
 Constructor. More...
 
- Protected Member Functions inherited from HF::Core::AbstractService
 AbstractService (Unit0 &unit)
 Constructor. More...
 
void send (const Protocol::Address &addr, Protocol::Message &message)
 Send message msg to the network address given by addr. More...
 
void send (const Protocol::Address &addr, Protocol::Message &message, Transport::Link *link)
 Create and send a new packet with the given message to the given address. More...
 
- Protected Member Functions inherited from HF::Interfaces::AbstractInterface
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_attribute (Protocol::Packet &packet, Common::ByteArray &payload, uint16_t offset)
 Handle incoming messages from the network. More...
 
virtual bool check_uid (uint16_t uid) const =0
 Check if the given UID matches the interface UID. More...
 

Protected Attributes

uint8_t _maximum_number_of_entries
 Maximum Number Of Entries.
 
bool _status
 Server Status
 
- Protected Attributes inherited from HF::Core::AbstractService
Unit0_unit
 Reference to the unit the service belongs to.
 

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

Scheduling Service : Server side implementation.

This class provides the server side of the Scheduling interface.

Definition at line 753 of file scheduling.h.

Member Function Documentation

◆ activate_scheduler()

virtual Common::Result HF::Core::Scheduling::IServer::activate_scheduler ( const Protocol::Packet packet,
const ActivateScheduler msg 
)
virtual

Callback that is called when a Scheduling::ACTIVATE_SCHEDULER_CMD, is received.

Parameters
[in]packetthe packet received.
[in]msgthe activate scheduler message received.
Return values
Common::Result::OK,ifthe scheduler was enabled/disabled.
Common::Result::FAIL_ARGotherwise.

◆ attribute()

HF::Attributes::IAttribute* HF::Core::Scheduling::IServer::attribute ( uint8_t  uid)
virtual

Return a pointer to the interface attribute with the given uid.

Parameters
[in]uididentifier of the attribute in the interface.
Returns
a pointer to the attribute if it exists, nullptr otherwise.

Implements HF::Interface.

◆ attributes()

HF::Attributes::UIDS HF::Core::Scheduling::IServer::attributes ( uint8_t  pack_id = HF::Attributes::Pack::MANDATORY) const
virtual

Return a vector containing the attribute UIDs, for the given pack ID.

Parameters
[in]pack_idthe Attribute pack ID to get the attributes UIDs for.
Returns
vector containing the attributes UIDs.

Reimplemented from HF::Interfaces::AbstractInterface.

◆ enable()

void HF::Core::Scheduling::IServer::enable ( bool  __value)
inline

Enable/Disable scheduler.

Parameters
[in]__valuetrue / false –> enable/disable scheduler.

Definition at line 851 of file scheduling.h.

References status().

852  {
853  status(__value);
854  }
bool status() const
Get the Status for the Scheduling server.
+ Here is the call graph for this function:

◆ enabled()

bool HF::Core::Scheduling::IServer::enabled ( ) const
inline

Check if scheduler is enabled.

Return values
trueif the scheduler is enabled,
falseotherwise.

Definition at line 834 of file scheduling.h.

References status().

835  {
836  return status();
837  }
bool status() const
Get the Status for the Scheduling server.
+ Here is the call graph for this function:

◆ handle_command()

Common::Result HF::Core::Scheduling::IServer::handle_command ( Protocol::Packet packet,
Common::ByteArray payload,
uint16_t  offset 
)
protectedvirtual

Handle incoming messages from the network.

Parameters
[in]packetthe packet receive from the network.
[in]payloadthe byte array containing the data received from the network.
[in]offsetthe offset the payload start at in the byte array.
Returns
the result of the message processing.

Handle command request/response messages, i.e. :

  • Protocol::Message:Type::COMMAND_REQ;
  • Protocol::Message:Type::COMMAND_RESP_REQ;
  • Protocol::Message:Type::COMMAND_RES;

Reimplemented from HF::Interfaces::AbstractInterface.

◆ maximum_number_of_entries() [1/2]

uint8_t HF::Core::Scheduling::IServer::maximum_number_of_entries ( ) const

Get the Maximum Number Of Entries for the Scheduling server.

Returns
the current Maximum Number Of Entries.

◆ maximum_number_of_entries() [2/2]

void HF::Core::Scheduling::IServer::maximum_number_of_entries ( uint8_t  __value)

Set the Maximum Number Of Entries for the Scheduling server.

Parameters
[in]__valuethe Maximum Number Of Entries value to set the server to.

◆ number_of_entries()

virtual uint8_t HF::Core::Scheduling::IServer::number_of_entries ( ) const
pure virtual

Get the Number Of Entries for the Scheduling server.

Returns
the current Number Of Entries.

◆ status() [1/2]

bool HF::Core::Scheduling::IServer::status ( ) const

Get the Status for the Scheduling server.

Return values
trueif the scheduler is enabled,
falseotherwise.

Referenced by enable(), and enabled().

+ Here is the caller graph for this function:

◆ status() [2/2]

void HF::Core::Scheduling::IServer::status ( bool  __value)

Set the Status for the Scheduling server.

Parameters
[in]__valuethe Status value to set the server to.

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