BeeeOn Gateway
v2020.3.1-2-g6f737dc
Platform to interconnect the IoT world
|
Abstract class for Revogi devices. More...
#include <RevogiDevice.h>
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< ModuleType > | moduleTypes () 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 |
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.
|
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...
|
staticprotected |
UUID of characteristics containing actual values of all modules.
|
staticprotected |
Writing this data to WRITE_VALUES_GATT characteristic triggers sending actual setting of the device to ACTUAL_VALUES_GATT characteristic.
|
staticprotected |
UUID of characteristics containing device name.
|
staticprotected |
UUID of characteristics to modify device status.