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("baudRate", enumValueName(Uint));
|
||||
params.insert("backend", enumValueName(String));
|
||||
params.insert("o:channelMask", enumValueName(Uint));
|
||||
returns.insert("zigbeeError", enumRef<ZigbeeManager::ZigbeeError>());
|
||||
returns.insert("o:networkUuid", enumValueName(Uuid));
|
||||
registerMethod("AddNetwork", description, params, returns);
|
||||
|
|
@ -300,7 +301,16 @@ JsonReply *ZigbeeHandler::AddNetwork(const QVariantMap ¶ms)
|
|||
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) {
|
||||
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)
|
||||
{
|
||||
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
|
||||
foreach (ZigbeeNetwork *existingNetwork, m_zigbeeNetworks.values()) {
|
||||
|
|
|
|||
|
|
@ -62,7 +62,8 @@ public:
|
|||
ZigbeeErrorNetworkOffline,
|
||||
ZigbeeErrorUnknownBackend,
|
||||
ZigbeeErrorNodeNotFound,
|
||||
ZigbeeErrorForbidden
|
||||
ZigbeeErrorForbidden,
|
||||
ZigbeeErrorInvalidChannel,
|
||||
};
|
||||
Q_ENUM(ZigbeeError)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ INSTALLS += target
|
|||
|
||||
QT += sql xml websockets bluetooth dbus network
|
||||
|
||||
CONFIG += link_pkgconfig
|
||||
PKGCONFIG += nymea-zigbee
|
||||
|
||||
LIBS += -L$$top_builddir/libnymea/ -lnymea \
|
||||
-L$$top_builddir/libnymea-core -lnymea-core \
|
||||
-lnymea-remoteproxyclient
|
||||
|
|
|
|||
|
|
@ -412,7 +412,8 @@
|
|||
"ZigbeeErrorNetworkOffline",
|
||||
"ZigbeeErrorUnknownBackend",
|
||||
"ZigbeeErrorNodeNotFound",
|
||||
"ZigbeeErrorForbidden"
|
||||
"ZigbeeErrorForbidden",
|
||||
"ZigbeeErrorInvalidChannel"
|
||||
],
|
||||
"ZigbeeNetworkState": [
|
||||
"ZigbeeNetworkStateOffline",
|
||||
|
|
@ -2120,6 +2121,7 @@
|
|||
"params": {
|
||||
"backend": "String",
|
||||
"baudRate": "Uint",
|
||||
"o:channelMask": "Uint",
|
||||
"serialPort": "String"
|
||||
},
|
||||
"returns": {
|
||||
|
|
|
|||
Loading…
Reference in New Issue