BeeeOn Gateway  v2020.3.1-2-g6f737dc
Platform to interconnect the IoT world
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Attributes
BeeeOn::RevogiDevice Class Referenceabstract

Abstract class for Revogi devices. More...

#include <RevogiDevice.h>

Inheritance diagram for BeeeOn::RevogiDevice:
BeeeOn::BLESmartDevice BeeeOn::PollableDevice BeeeOn::Loggable BeeeOn::RevogiRGBLight BeeeOn::RevogiSmartPlug BeeeOn::RevogiSmartCandle BeeeOn::RevogiSmartLite

Public Types

typedef Poco::SharedPtr
< RevogiDevice
Ptr
 
- Public Types inherited from BeeeOn::BLESmartDevice
typedef Poco::SharedPtr
< BLESmartDevice
Ptr
 
- Public Types inherited from BeeeOn::PollableDevice
typedef Poco::SharedPtr
< PollableDevice
Ptr
 

Public Member Functions

 RevogiDevice (const MACAddress &address, const Poco::Timespan &timeout, const RefreshTime &refresh, const std::string &productName, const std::list< ModuleType > &moduleTypes, const HciInterface::Ptr hci)
 
std::list< ModuleTypemoduleTypes () const override
 
std::string vendor () const override
 
std::string productName () const override
 
bool pollable () const override
 Returns true if the device is pollable, otherwise false.
 
void poll (Distributor::Ptr distributor) override
 Perform polling for data and ship them via the given distributor.
 
- Public Member Functions inherited from BeeeOn::BLESmartDevice
 BLESmartDevice (const MACAddress &address, const Poco::Timespan &timeout, const RefreshTime &refresh, const HciInterface::Ptr hci)
 
DeviceID id () const override
 
RefreshTime refresh () const override
 Regular period telling how often to call the method PollableDevice::poll(). The refresh must contain a valid time.
 
MACAddress macAddress () const
 
virtual void pair (Poco::SharedPtr< HciInterface::WatchCallback > callback)
 When the device supports processing of advertising data, it should call a watch() on the given HciInterface in this method and a unwatch() in the destructor. When the method is re-called it do not have any effect.
 
virtual void requestModifyState (const ModuleID &moduleID, const double value)
 Modifies the device module given by moduleID to a given value. More...
 
virtual SensorData parseAdvertisingData (const std::vector< unsigned char > &data) const
 Transforms advertising data to SensorData. More...
 

Static Public Member Functions

static bool match (const std::string &modelID)
 The method returns true if the model ID of the device may be model ID of some Revogi device. More...
 
static RevogiDevice::Ptr createDevice (const MACAddress &address, const Poco::Timespan &timeout, const RefreshTime &refresh, const HciInterface::Ptr hci, HciConnection::Ptr conn)
 Creates Revogi device according to device name located in the vendor specific characteristic of the BLE device.
 

Protected Member Functions

virtual SensorData parseValues (const std::vector< unsigned char > &values) const =0
 Convert actual setting of the device to SensorData.
 
void sendWriteRequest (HciConnection::Ptr conn, std::vector< unsigned char > payload, const unsigned char checksum)
 Prepends header and appends footer to payload and then sends it to device.
 
virtual void prependHeader (std::vector< unsigned char > &payload) const =0
 
virtual void appendFooter (std::vector< unsigned char > &payload, const unsigned char checksum) const
 
- Protected Member Functions inherited from BeeeOn::Loggable
void setupLogger (Poco::Logger *logger=0) const
 
Poco::Logger & logger () const
 
 Loggable (const ClassInfo &info)
 
 Loggable (const std::type_info &info)
 

Static Protected Attributes

static const Poco::UUID ACTUAL_VALUES_GATT = UUID("0000fff4-0000-1000-8000-00805f9b34fb")
 
static const Poco::UUID WRITE_VALUES_GATT = UUID("0000fff3-0000-1000-8000-00805f9b34fb")
 
static const Poco::UUID UUID_DEVICE_NAME = UUID("0000fff6-0000-1000-8000-00805f9b34fb")
 
static const std::string VENDOR_NAME = "Revogi"
 
static const std::vector
< unsigned char > 
NOTIFY_DATA
 

Additional Inherited Members

- Static Protected Member Functions inherited from BeeeOn::Loggable
static Poco::Logger & forMethod (const char *name)
 
static Poco::Logger & forClass (const ClassInfo &info)
 
static Poco::Logger & forClass (const std::type_info &info)
 
template<typename T >
static Poco::Logger & forInstance (const T *i)
 
static void configureSimple (Poco::Logger &logger, const std::string &level)
 
static void logException (Poco::Logger &logger, const Poco::Message::Priority priority, const Poco::Exception &e, const char *file, size_t line)
 
- Protected Attributes inherited from BeeeOn::BLESmartDevice
DeviceID m_deviceId
 
MACAddress m_address
 
Poco::Timespan m_timeout
 
RefreshTime m_refresh
 
HciInterface::Ptr m_hci
 

Detailed Description

Abstract class for Revogi devices.

The class provides static method to create instance of specific Reovig device class. Device identification is according to device name located in the vendor specific characteristic. The class also allows to obtain actual setting of the device and send commands. The command consist of three parts: the prefix, the message body and the suffix. In the suffix is located checksum.

Member Function Documentation

bool RevogiDevice::match ( const std::string &  modelID)
static

The method returns true if the model ID of the device may be model ID of some Revogi device.

Guyes have been creative about this value, not very helpful...

Field Documentation

const UUID RevogiDevice::ACTUAL_VALUES_GATT = UUID("0000fff4-0000-1000-8000-00805f9b34fb")
staticprotected

UUID of characteristics containing actual values of all modules.

const vector< unsigned char > RevogiDevice::NOTIFY_DATA
staticprotected
Initial value:
= {
0x0f, 0x05, 0x04, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff
}

Writing this data to WRITE_VALUES_GATT characteristic triggers sending actual setting of the device to ACTUAL_VALUES_GATT characteristic.

const UUID RevogiDevice::UUID_DEVICE_NAME = UUID("0000fff6-0000-1000-8000-00805f9b34fb")
staticprotected

UUID of characteristics containing device name.

const UUID RevogiDevice::WRITE_VALUES_GATT = UUID("0000fff3-0000-1000-8000-00805f9b34fb")
staticprotected

UUID of characteristics to modify device status.


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