![]() |
HAN-FUN API
1.5.3
This project provides the common implementation of ULE Alliance's HAN-FUN application protocol.
|
Helper class used to implement custom functionality to the device management server side. More...
#include <device_management.h>
Public Member Functions | |
Server (Unit0 &unit) | |
Constructor. More... | |
Container & | entries () const |
Get a reference to the current object implementing the persistence API, for the device information. More... | |
SessionMgr & | sessions () |
Reference to the session management API. More... | |
void | send (const Protocol::Address &addr, Protocol::Message &message) |
Send message msg to the network address given by addr . More... | |
![]() | |
HF::Devices::Concentrator::IUnit0 & | unit0 () const |
Return a reference to the unit that this service belongs to. More... | |
DevicePtr | entry (uint16_t address) const |
Return the Device entry for the given address. More... | |
DevicePtr | entry (const HF::UID::UID &uid) const |
Return the Device entry for the given UID. More... | |
virtual uint16_t | next_address () |
Return next available address for registering a device. More... | |
virtual void | registered (DevicePtr &device) |
Indicate that a device has been registered. More... | |
virtual void | deregistered (DevicePtr &device) |
Indicate that a device has been de-registered. More... | |
![]() | |
Interface::Role | role () const |
Return the Interface::Role this interface implements. More... | |
![]() | |
void | receive (HF::Protocol::Packet &packet, HF::Common::ByteArray &payload, uint16_t offset) |
Callback to deliver a packet received from the transport layer. More... | |
bool | has_bind (uint16_t dev_addr_1, uint16_t dev_addr_2) |
Check if bind exists. More... | |
uint8_t | bind (uint16_t dev_addr_1, uint16_t dev_addr_2) |
Create a new bind entry. More... | |
bool | unbind (uint16_t dev_addr_1, uint16_t dev_addr_2) |
Remove the binding entry for the given devices. More... | |
![]() | |
CoreServices * | unit0 () const |
Get the unit 0 used by this concentrator device. More... | |
![]() | |
uint16_t | address () const |
Return the device address on the HAN-FUN network, when the device is registered, or HF_BROADCAST_ADDR otherwise. More... | |
void | connected (HF::Transport::Link *link) |
Callback to report that a new transport link was been created to a remote device. More... | |
void | disconnected (HF::Transport::Link *link) |
Callback to the report that the given transport link no longer is valid and MUST not be used to send messages to the corresponding end-point. More... | |
![]() | |
const IUnits & | units () const |
Return the list of units registered in this device. More... | |
void | add (Units::IUnit *unit) |
Add unit to devices unit lists. More... | |
void | remove (Units::IUnit *unit) |
Remove unit from device's unit list. More... | |
Units::IUnit * | unit (uint8_t id) const |
Return pointer to the unit with the given id. More... | |
void | send (Protocol::Packet &packet) |
Send given packet into the HAN-FUN network. More... | |
void | periodic (uint32_t time) |
Handle periodic processing. More... | |
Events | |
![]() | |
Container & | entries () const |
Return the container for the service entries. More... | |
![]() | |
AbstractServer () | |
Constructor. | |
void | start_session (uint16_t address) |
Start a session for the device with the given address . More... | |
void | end_session (uint16_t address) |
Terminate the session associated with the device with the given address . More... | |
bool | exists (uint16_t address) const |
Check if a session for the device with the given address exists. More... | |
bool | is_valid (uint16_t address) const |
Check if the session for the device with the given address is valid, i.e., the underling entries have not been modified since the start of the session. More... | |
void | invalidate () |
Invalidate all sessions. | |
Protected Member Functions | |
Container & | entries () const |
Return the container for the service entries. More... | |
![]() | |
AbstractServer (Unit0 &unit) | |
Constructor. More... | |
virtual Common::Result | register_device (Protocol::Packet &packet, Common::ByteArray &payload, uint16_t offset) |
This method is called when a registration message is received. | |
virtual Common::Result | deregister_device (Protocol::Packet &packet, Common::ByteArray &payload, uint16_t offset) |
This method is called when a de-registration message is received. | |
virtual bool | authorized (uint8_t member, DevicePtr &source, DevicePtr &destination) |
This method serves to indicate if a given member of the interface can be used by the source device affecting the destination device configuration on the system. More... | |
virtual Common::Result | deregister (DevicePtr &device) |
De-register the device that corresponds to the given Device entry. More... | |
![]() | |
IServer (Unit0 &unit) | |
Constructor. More... | |
![]() | |
ServiceRole (Unit0 &unit) | |
Constructor. More... | |
![]() | |
HF::Transport::Link * | link (uint16_t addr) const |
Return the link that can be used to send a packet to the device with the given address. More... | |
virtual void | route_packet (Protocol::Packet &packet, Common::ByteArray &payload, uint16_t offset) |
Route the given packet to the corresponding device. More... | |
![]() | |
virtual bool | to_local (const Protocol::Packet &packet) const |
Check if the given packet is for this device. More... | |
bool | from_local (const Protocol::Packet &packet) const |
Check if the given packet is from the local device. More... | |
bool | from_remote (const Protocol::Packet &packet) |
Check if the given packet is from the a remote device. More... | |
bool | is_registered () |
Check if the device has a valid, i.e. More... | |
![]() | |
Server (const Server &other) | |
Copy-Constructor. More... | |
uint16_t | entries_size () const |
Get the number of entries present in the container. More... | |
Common::Result | entries (uint16_t offset, uint8_t count, Common::ByteArray &payload) |
Create a GetEntriesResponse message message with, count entries starting from the given offset and serialize the created message into the given byte array in payload . More... | |
![]() | |
Common::Result | handle_command (CMD cmd, Protocol::Packet &packet, Common::ByteArray &payload, uint16_t offset=0) |
Handle command request/response messages. More... | |
iterator | find (uint16_t address) |
Find the session associated with the given device address . More... | |
const_iterator | find (uint16_t address) const |
Find the session associated with the given device address . More... | |
uint16_t | payload_size (CMD cmd) const |
Get the minimum number of bytes necessary to pack/unpack a message of the given command. More... | |
Common::Result | check_offset (uint16_t offset, uint8_t &count, uint16_t size) const |
Check if the given offset is valid and adjust the count value if necessary. More... | |
Common::Result | check_session (uint16_t address, Common::ByteArray &payload) const |
Check if a session for the given device address exists and if it is valid. More... | |
Additional Inherited Members | |
![]() | |
Common::SimpleList< Transport::Link * > | _links |
List of links present in this concentrator. | |
![]() | |
uint8_t | next_reference |
Last reference number used to send a packet. | |
IUnits | _units |
List containing pointers to the units present in the device. | |
Protocol::Filters::ResponseRequired | response_filter |
Support for generating missing responses for messages. | |
![]() | |
Container | sessions |
Session's database. | |
Helper class used to implement custom functionality to the device management server side.
Definition at line 850 of file device_management.h.
|
inline |
Constructor.
[in] | unit | reference to the unit containing this service. |
Definition at line 860 of file device_management.h.
|
inlinevirtual |
Get a reference to the current object implementing the persistence API, for the device information.
Implements HF::Core::DeviceManagement::IServer.
Definition at line 867 of file device_management.h.
|
inlineprotected |
Return the container for the service entries.
Definition at line 607 of file session_management.h.
|
inlinevirtual |
Send message msg
to the network address given by addr
.
[in] | addr | HF network address. |
[in] | message | pointer to the message to be sent to the network. |
Implements HF::Core::SessionManagement::AbstractServer.
Definition at line 879 of file device_management.h.
|
inlinevirtual |
Reference to the session management API.
Implements HF::Core::DeviceManagement::IServer.
Definition at line 872 of file device_management.h.