mirror of https://github.com/nymea/nymea.git
added triggers
parent
9f7fd197bb
commit
29217b9aff
2
Hive.pro
2
Hive.pro
|
|
@ -3,5 +3,5 @@ TEMPLATE=subdirs
|
|||
SUBDIRS += libhive server plugins
|
||||
|
||||
server.depends = libhive plugins
|
||||
plugins.deoends = libhive
|
||||
libhive.deoends = libhive
|
||||
|
||||
|
|
|
|||
|
|
@ -25,3 +25,13 @@ void DeviceClass::setName(const QString &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
|
||||
#define DEVICECLASS_H
|
||||
|
||||
#include "triggertype.h"
|
||||
|
||||
#include <QList>
|
||||
#include <QUuid>
|
||||
|
||||
class DeviceClass
|
||||
|
|
@ -14,9 +17,13 @@ public:
|
|||
QString name() const;
|
||||
void setName(const QString &name);
|
||||
|
||||
QList<TriggerType> triggers() const;
|
||||
void setTriggers(const QList<TriggerType> &triggers);
|
||||
|
||||
private:
|
||||
QUuid m_id;
|
||||
QString m_name;
|
||||
QList<TriggerType> m_triggers;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define DEVICEPLUGIN_H
|
||||
|
||||
#include "deviceclass.h"
|
||||
#include "trigger.h"
|
||||
|
||||
#include <QObject>
|
||||
|
||||
|
|
@ -21,6 +22,9 @@ public:
|
|||
|
||||
virtual QList<DeviceClass> supportedDevices() const = 0;
|
||||
|
||||
signals:
|
||||
void emitTrigger(const Trigger &trigger);
|
||||
|
||||
protected:
|
||||
DeviceManager *deviceManager() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,11 +9,15 @@ SOURCES += device.cpp \
|
|||
devicemanager.cpp \
|
||||
deviceplugin.cpp \
|
||||
radio433.cpp \
|
||||
gpio.cpp
|
||||
gpio.cpp \
|
||||
trigger.cpp \
|
||||
triggertype.cpp
|
||||
|
||||
HEADERS += device.h \
|
||||
deviceclass.h \
|
||||
devicemanager.h \
|
||||
radio433.h \
|
||||
gpio.h
|
||||
gpio.h \
|
||||
trigger.h \
|
||||
triggertype.h
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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());
|
||||
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);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,16 @@ QVariantMap JsonRPCServer::packDeviceClass(const DeviceClass &deviceClass)
|
|||
QVariantMap variant;
|
||||
variant.insert("name", deviceClass.name());
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue