Add api to set the zigbee channel during network setup
This commit is contained in:
parent
bd7205866f
commit
eee810aa4d
@ -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)
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ NYMEA_VERSION_STRING=$$system('dpkg-parsechangelog | sed -n -e "s/^Version: //p"
|
||||
|
||||
# define protocol versions
|
||||
JSON_PROTOCOL_VERSION_MAJOR=5
|
||||
JSON_PROTOCOL_VERSION_MINOR=7
|
||||
JSON_PROTOCOL_VERSION_MINOR=8
|
||||
JSON_PROTOCOL_VERSION="$${JSON_PROTOCOL_VERSION_MAJOR}.$${JSON_PROTOCOL_VERSION_MINOR}"
|
||||
LIBNYMEA_API_VERSION_MAJOR=7
|
||||
LIBNYMEA_API_VERSION_MINOR=2
|
||||
|
||||
@ -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
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
5.7
|
||||
5.8
|
||||
{
|
||||
"enums": {
|
||||
"BasicType": [
|
||||
@ -411,7 +411,8 @@
|
||||
"ZigbeeErrorNetworkOffline",
|
||||
"ZigbeeErrorUnknownBackend",
|
||||
"ZigbeeErrorNodeNotFound",
|
||||
"ZigbeeErrorForbidden"
|
||||
"ZigbeeErrorForbidden",
|
||||
"ZigbeeErrorInvalidChannel"
|
||||
],
|
||||
"ZigbeeNetworkState": [
|
||||
"ZigbeeNetworkStateOffline",
|
||||
@ -2119,6 +2120,7 @@
|
||||
"params": {
|
||||
"backend": "String",
|
||||
"baudRate": "Uint",
|
||||
"o:channelMask": "Uint",
|
||||
"serialPort": "String"
|
||||
},
|
||||
"returns": {
|
||||
|
||||
Reference in New Issue
Block a user