added triggers
This commit is contained in:
parent
9f7fd197bb
commit
29217b9aff
2
Hive.pro
2
Hive.pro
@ -3,5 +3,5 @@ TEMPLATE=subdirs
|
|||||||
SUBDIRS += libhive server plugins
|
SUBDIRS += libhive server plugins
|
||||||
|
|
||||||
server.depends = libhive plugins
|
server.depends = libhive plugins
|
||||||
plugins.deoends = libhive
|
libhive.deoends = libhive
|
||||||
|
|
||||||
|
|||||||
@ -25,3 +25,13 @@ void DeviceClass::setName(const QString &name)
|
|||||||
{
|
{
|
||||||
m_name = name;
|
m_name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<TriggerType> DeviceClass::triggers() const
|
||||||
|
{
|
||||||
|
return m_triggers;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeviceClass::setTriggers(const QList<TriggerType> &triggers)
|
||||||
|
{
|
||||||
|
m_triggers = triggers;
|
||||||
|
}
|
||||||
|
|||||||
@ -1,6 +1,9 @@
|
|||||||
#ifndef DEVICECLASS_H
|
#ifndef DEVICECLASS_H
|
||||||
#define DEVICECLASS_H
|
#define DEVICECLASS_H
|
||||||
|
|
||||||
|
#include "triggertype.h"
|
||||||
|
|
||||||
|
#include <QList>
|
||||||
#include <QUuid>
|
#include <QUuid>
|
||||||
|
|
||||||
class DeviceClass
|
class DeviceClass
|
||||||
@ -14,9 +17,13 @@ public:
|
|||||||
QString name() const;
|
QString name() const;
|
||||||
void setName(const QString &name);
|
void setName(const QString &name);
|
||||||
|
|
||||||
|
QList<TriggerType> triggers() const;
|
||||||
|
void setTriggers(const QList<TriggerType> &triggers);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QUuid m_id;
|
QUuid m_id;
|
||||||
QString m_name;
|
QString m_name;
|
||||||
|
QList<TriggerType> m_triggers;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
#define DEVICEPLUGIN_H
|
#define DEVICEPLUGIN_H
|
||||||
|
|
||||||
#include "deviceclass.h"
|
#include "deviceclass.h"
|
||||||
|
#include "trigger.h"
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
|
||||||
@ -21,6 +22,9 @@ public:
|
|||||||
|
|
||||||
virtual QList<DeviceClass> supportedDevices() const = 0;
|
virtual QList<DeviceClass> supportedDevices() const = 0;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void emitTrigger(const Trigger &trigger);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
DeviceManager *deviceManager() const;
|
DeviceManager *deviceManager() const;
|
||||||
|
|
||||||
|
|||||||
@ -9,11 +9,15 @@ SOURCES += device.cpp \
|
|||||||
devicemanager.cpp \
|
devicemanager.cpp \
|
||||||
deviceplugin.cpp \
|
deviceplugin.cpp \
|
||||||
radio433.cpp \
|
radio433.cpp \
|
||||||
gpio.cpp
|
gpio.cpp \
|
||||||
|
trigger.cpp \
|
||||||
|
triggertype.cpp
|
||||||
|
|
||||||
HEADERS += device.h \
|
HEADERS += device.h \
|
||||||
deviceclass.h \
|
deviceclass.h \
|
||||||
devicemanager.h \
|
devicemanager.h \
|
||||||
radio433.h \
|
radio433.h \
|
||||||
gpio.h
|
gpio.h \
|
||||||
|
trigger.h \
|
||||||
|
triggertype.h
|
||||||
|
|
||||||
|
|||||||
31
libhive/trigger.cpp
Normal file
31
libhive/trigger.cpp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#include "trigger.h"
|
||||||
|
|
||||||
|
Trigger::Trigger(const QUuid &id):
|
||||||
|
m_id(id)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QUuid Trigger::id() const
|
||||||
|
{
|
||||||
|
return m_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString Trigger::name() const
|
||||||
|
{
|
||||||
|
return m_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Trigger::setName(const QString &name)
|
||||||
|
{
|
||||||
|
m_name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariantList Trigger::params() const
|
||||||
|
{
|
||||||
|
return m_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Trigger::setParams(const QVariantList ¶ms)
|
||||||
|
{
|
||||||
|
m_params = params;
|
||||||
|
}
|
||||||
27
libhive/trigger.h
Normal file
27
libhive/trigger.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#ifndef TRIGGER_H
|
||||||
|
#define TRIGGER_H
|
||||||
|
|
||||||
|
#include <QString>
|
||||||
|
#include <QUuid>
|
||||||
|
#include <QVariantList>
|
||||||
|
|
||||||
|
class Trigger
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Trigger(const QUuid &id);
|
||||||
|
|
||||||
|
QUuid id() const;
|
||||||
|
|
||||||
|
QString name() const;
|
||||||
|
void setName(const QString &name);
|
||||||
|
|
||||||
|
QVariantList params() const;
|
||||||
|
void setParams(const QVariantList ¶ms);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QUuid m_id;
|
||||||
|
QString m_name;
|
||||||
|
QVariantList m_params;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // TRIGGER_H
|
||||||
31
libhive/triggertype.cpp
Normal file
31
libhive/triggertype.cpp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#include "triggertype.h"
|
||||||
|
|
||||||
|
TriggerType::TriggerType(const QUuid &id):
|
||||||
|
m_id(id)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QUuid TriggerType::id() const
|
||||||
|
{
|
||||||
|
return m_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString TriggerType::name() const
|
||||||
|
{
|
||||||
|
return m_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TriggerType::setName(const QString &name)
|
||||||
|
{
|
||||||
|
m_name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariantList TriggerType::parameters() const
|
||||||
|
{
|
||||||
|
return m_parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TriggerType::setParameters(const QVariantList ¶meters)
|
||||||
|
{
|
||||||
|
m_parameters = parameters;
|
||||||
|
}
|
||||||
28
libhive/triggertype.h
Normal file
28
libhive/triggertype.h
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#ifndef TRIGGERTYPE_H
|
||||||
|
#define TRIGGERTYPE_H
|
||||||
|
|
||||||
|
#include <QUuid>
|
||||||
|
#include <QVariantMap>
|
||||||
|
|
||||||
|
class TriggerType
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
TriggerType(const QUuid &id);
|
||||||
|
|
||||||
|
QUuid id() const;
|
||||||
|
|
||||||
|
QString name() const;
|
||||||
|
void setName(const QString &name);
|
||||||
|
|
||||||
|
QVariantList parameters() const;
|
||||||
|
void setParameters(const QVariantList ¶meters);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QUuid m_id;
|
||||||
|
QString m_name;
|
||||||
|
|
||||||
|
QVariantList m_parameters;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // TRIGGERTYPE_H
|
||||||
@ -21,6 +21,41 @@ QList<DeviceClass> RfSwitch::supportedDevices() const
|
|||||||
|
|
||||||
DeviceClass deviceClassRfRemote(QUuid::createUuid());
|
DeviceClass deviceClassRfRemote(QUuid::createUuid());
|
||||||
deviceClassRfRemote.setName("RF Remote");
|
deviceClassRfRemote.setName("RF Remote");
|
||||||
|
QList<TriggerType> buttonTriggers;
|
||||||
|
|
||||||
|
QVariantList params;
|
||||||
|
QVariantMap param;
|
||||||
|
param.insert("name", "on");
|
||||||
|
param.insert("type", "bool");
|
||||||
|
params.append(param);
|
||||||
|
|
||||||
|
TriggerType buttonATrigger(QUuid::createUuid());
|
||||||
|
buttonATrigger.setName("Button A");
|
||||||
|
buttonATrigger.setParameters(params);
|
||||||
|
buttonTriggers.append(buttonATrigger);
|
||||||
|
|
||||||
|
TriggerType buttonBTrigger(QUuid::createUuid());
|
||||||
|
buttonBTrigger.setName("Button B");
|
||||||
|
buttonBTrigger.setParameters(params);
|
||||||
|
buttonTriggers.append(buttonBTrigger);
|
||||||
|
|
||||||
|
TriggerType buttonCTrigger(QUuid::createUuid());
|
||||||
|
buttonCTrigger.setName("Button C");
|
||||||
|
buttonCTrigger.setParameters(params);
|
||||||
|
buttonTriggers.append(buttonCTrigger);
|
||||||
|
|
||||||
|
TriggerType buttonDTrigger(QUuid::createUuid());
|
||||||
|
buttonDTrigger.setName("Button D");
|
||||||
|
buttonDTrigger.setParameters(params);
|
||||||
|
buttonTriggers.append(buttonDTrigger);
|
||||||
|
|
||||||
|
TriggerType buttonETrigger(QUuid::createUuid());
|
||||||
|
buttonETrigger.setName("Button E");
|
||||||
|
buttonETrigger.setParameters(params);
|
||||||
|
buttonTriggers.append(buttonETrigger);
|
||||||
|
|
||||||
|
deviceClassRfRemote.setTriggers(buttonTriggers);
|
||||||
|
|
||||||
ret.append(deviceClassRfRemote);
|
ret.append(deviceClassRfRemote);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -83,6 +83,16 @@ QVariantMap JsonRPCServer::packDeviceClass(const DeviceClass &deviceClass)
|
|||||||
QVariantMap variant;
|
QVariantMap variant;
|
||||||
variant.insert("name", deviceClass.name());
|
variant.insert("name", deviceClass.name());
|
||||||
variant.insert("id", deviceClass.id());
|
variant.insert("id", deviceClass.id());
|
||||||
|
QVariantList triggerTypes;
|
||||||
|
foreach (const TriggerType &triggerType, deviceClass.triggers()) {
|
||||||
|
QVariantMap triggerMap;
|
||||||
|
triggerMap.insert("id", triggerType.id().toString());
|
||||||
|
triggerMap.insert("name", triggerType.name());
|
||||||
|
triggerMap.insert("params", triggerType.parameters());
|
||||||
|
|
||||||
|
triggerTypes.append(triggerMap);
|
||||||
|
}
|
||||||
|
variant.insert("triggers", triggerTypes);
|
||||||
return variant;
|
return variant;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user