mirror of https://github.com/nymea/nymea.git
Merge PR #472: Add api to set the zigbee channel during network setup
commit
a741b13994
|
|
@ -128,6 +128,7 @@ ZigbeeHandler::ZigbeeHandler(ZigbeeManager *zigbeeManager, QObject *parent) :
|
||||||
params.insert("serialPort", enumValueName(String));
|
params.insert("serialPort", enumValueName(String));
|
||||||
params.insert("baudRate", enumValueName(Uint));
|
params.insert("baudRate", enumValueName(Uint));
|
||||||
params.insert("backend", enumValueName(String));
|
params.insert("backend", enumValueName(String));
|
||||||
|
params.insert("o:channelMask", enumValueName(Uint));
|
||||||
returns.insert("zigbeeError", enumRef<ZigbeeManager::ZigbeeError>());
|
returns.insert("zigbeeError", enumRef<ZigbeeManager::ZigbeeError>());
|
||||||
returns.insert("o:networkUuid", enumValueName(Uuid));
|
returns.insert("o:networkUuid", enumValueName(Uuid));
|
||||||
registerMethod("AddNetwork", description, params, returns);
|
registerMethod("AddNetwork", description, params, returns);
|
||||||
|
|
@ -300,7 +301,16 @@ JsonReply *ZigbeeHandler::AddNetwork(const QVariantMap ¶ms)
|
||||||
return createReply(returnMap);
|
return createReply(returnMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
QPair<ZigbeeManager::ZigbeeError, QUuid> result = m_zigbeeManager->createZigbeeNetwork(serialPort, baudRate, ZigbeeAdapter::backendNames().key(backendString));
|
ZigbeeChannelMask channelMask = ZigbeeChannelMask::ChannelConfigurationAllChannels;
|
||||||
|
if (params.contains("channelMask")) {
|
||||||
|
channelMask = params.value("channelMask").toUInt() & ZigbeeChannelMask::ChannelConfigurationAllChannels;
|
||||||
|
if (channelMask == ZigbeeChannelMask::ChannelConfigurationNoChannel) {
|
||||||
|
returnMap.insert("zigbeeError", enumValueName<ZigbeeManager::ZigbeeError>(ZigbeeManager::ZigbeeErrorInvalidChannel));
|
||||||
|
return createReply(returnMap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QPair<ZigbeeManager::ZigbeeError, QUuid> result = m_zigbeeManager->createZigbeeNetwork(serialPort, baudRate, ZigbeeAdapter::backendNames().key(backendString), channelMask);
|
||||||
if (result.first == ZigbeeManager::ZigbeeErrorNoError) {
|
if (result.first == ZigbeeManager::ZigbeeErrorNoError) {
|
||||||
returnMap.insert("networkUuid", result.second);
|
returnMap.insert("networkUuid", result.second);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -149,7 +149,7 @@ QHash<QUuid, ZigbeeNetwork *> ZigbeeManager::zigbeeNetworks() const
|
||||||
|
|
||||||
QPair<ZigbeeManager::ZigbeeError, QUuid> ZigbeeManager::createZigbeeNetwork(const QString &serialPort, uint baudRate, ZigbeeAdapter::ZigbeeBackendType backendType, ZigbeeChannelMask channelMask)
|
QPair<ZigbeeManager::ZigbeeError, QUuid> ZigbeeManager::createZigbeeNetwork(const QString &serialPort, uint baudRate, ZigbeeAdapter::ZigbeeBackendType backendType, ZigbeeChannelMask channelMask)
|
||||||
{
|
{
|
||||||
qCDebug(dcZigbee()) << "Start creating network for" << serialPort << baudRate << backendType << channelMask;
|
qCDebug(dcZigbee()) << "Creating network for" << serialPort << baudRate << backendType << channelMask;
|
||||||
|
|
||||||
// Make sure we don't have aleardy a network for this adapter
|
// Make sure we don't have aleardy a network for this adapter
|
||||||
foreach (ZigbeeNetwork *existingNetwork, m_zigbeeNetworks.values()) {
|
foreach (ZigbeeNetwork *existingNetwork, m_zigbeeNetworks.values()) {
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,8 @@ public:
|
||||||
ZigbeeErrorNetworkOffline,
|
ZigbeeErrorNetworkOffline,
|
||||||
ZigbeeErrorUnknownBackend,
|
ZigbeeErrorUnknownBackend,
|
||||||
ZigbeeErrorNodeNotFound,
|
ZigbeeErrorNodeNotFound,
|
||||||
ZigbeeErrorForbidden
|
ZigbeeErrorForbidden,
|
||||||
|
ZigbeeErrorInvalidChannel,
|
||||||
};
|
};
|
||||||
Q_ENUM(ZigbeeError)
|
Q_ENUM(ZigbeeError)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,9 @@ INSTALLS += target
|
||||||
|
|
||||||
QT += sql xml websockets bluetooth dbus network
|
QT += sql xml websockets bluetooth dbus network
|
||||||
|
|
||||||
|
CONFIG += link_pkgconfig
|
||||||
|
PKGCONFIG += nymea-zigbee
|
||||||
|
|
||||||
LIBS += -L$$top_builddir/libnymea/ -lnymea \
|
LIBS += -L$$top_builddir/libnymea/ -lnymea \
|
||||||
-L$$top_builddir/libnymea-core -lnymea-core \
|
-L$$top_builddir/libnymea-core -lnymea-core \
|
||||||
-lnymea-remoteproxyclient
|
-lnymea-remoteproxyclient
|
||||||
|
|
|
||||||
|
|
@ -412,7 +412,8 @@
|
||||||
"ZigbeeErrorNetworkOffline",
|
"ZigbeeErrorNetworkOffline",
|
||||||
"ZigbeeErrorUnknownBackend",
|
"ZigbeeErrorUnknownBackend",
|
||||||
"ZigbeeErrorNodeNotFound",
|
"ZigbeeErrorNodeNotFound",
|
||||||
"ZigbeeErrorForbidden"
|
"ZigbeeErrorForbidden",
|
||||||
|
"ZigbeeErrorInvalidChannel"
|
||||||
],
|
],
|
||||||
"ZigbeeNetworkState": [
|
"ZigbeeNetworkState": [
|
||||||
"ZigbeeNetworkStateOffline",
|
"ZigbeeNetworkStateOffline",
|
||||||
|
|
@ -2120,6 +2121,7 @@
|
||||||
"params": {
|
"params": {
|
||||||
"backend": "String",
|
"backend": "String",
|
||||||
"baudRate": "Uint",
|
"baudRate": "Uint",
|
||||||
|
"o:channelMask": "Uint",
|
||||||
"serialPort": "String"
|
"serialPort": "String"
|
||||||
},
|
},
|
||||||
"returns": {
|
"returns": {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue