diff --git a/libhive/device.cpp b/libhive/device.cpp index 9d7d7381..392332e2 100644 --- a/libhive/device.cpp +++ b/libhive/device.cpp @@ -1,7 +1,9 @@ #include "device.h" -Device::Device(QObject *parent): - QObject(parent) +Device::Device(const QUuid &deviceClassId, QObject *parent): + QObject(parent), + m_id(QUuid::createUuid()), + m_deviceClassId(deviceClassId) { } @@ -10,3 +12,18 @@ QUuid Device::id() const { return m_id; } + +QUuid Device::deviceClassId() const +{ + return m_deviceClassId; +} + +QString Device::name() const +{ + return m_name; +} + +void Device::setName(const QString &name) +{ + m_name = name; +} diff --git a/libhive/device.h b/libhive/device.h index a719eb06..c733b83f 100644 --- a/libhive/device.h +++ b/libhive/device.h @@ -10,12 +10,18 @@ class Device: public QObject Q_PROPERTY(QUuid id READ id CONSTANT) public: - Device(QObject *parent = 0); + Device(const QUuid &deviceClassId, QObject *parent = 0); QUuid id() const; + QUuid deviceClassId() const; + + QString name() const; + void setName(const QString &name); private: QUuid m_id; + QUuid m_deviceClassId; + QString m_name; }; #endif diff --git a/libhive/devicemanager.cpp b/libhive/devicemanager.cpp index 96ada1c7..f3a05869 100644 --- a/libhive/devicemanager.cpp +++ b/libhive/devicemanager.cpp @@ -25,9 +25,26 @@ QList DeviceManager::supportedDevices() return m_supportedDevices; } -QList DeviceManager::devices() const +void DeviceManager::createDevice(const DeviceClass &deviceClass) { - return m_devices; + Device *device = new Device(deviceClass.id(), this); + device->setName(deviceClass.name()); +} + +QList DeviceManager::configuredDevices() const +{ + return m_configuredDevices; +} + +QList DeviceManager::findConfiguredDevices(const DeviceClass &deviceClass) +{ + QList ret; + foreach (Device *device, m_configuredDevices) { + if (device->deviceClassId() == deviceClass.id()) { + ret << device; + } + } + return ret; } Radio433 *DeviceManager::radio433() const diff --git a/libhive/devicemanager.h b/libhive/devicemanager.h index 4c3e29f8..f198a9d6 100644 --- a/libhive/devicemanager.h +++ b/libhive/devicemanager.h @@ -17,7 +17,11 @@ public: QList supportedDevices(); - QList devices() const; + void createDevice(const DeviceClass &deviceClass); + + QList configuredDevices() const; + + QList findConfiguredDevices(const DeviceClass &deviceClass); Radio433 *radio433() const; @@ -28,7 +32,7 @@ private slots: private: QList m_supportedDevices; - QList m_devices; + QList m_configuredDevices; QList m_devicePlugins; Radio433* m_radio433; diff --git a/plugins/deviceplugins/rfswitch/rfswitch.cpp b/plugins/deviceplugins/rfswitch/rfswitch.cpp index a59c00bf..b7a07b20 100644 --- a/plugins/deviceplugins/rfswitch/rfswitch.cpp +++ b/plugins/deviceplugins/rfswitch/rfswitch.cpp @@ -74,4 +74,6 @@ QString RfSwitch::pluginName() const void RfSwitch::dataReceived(QList rawData) { qDebug() << "data received from Radio433" << rawData; + + }