Merge PR #492: Add support for TI z-Stack based Zigbee adapters

This commit is contained in:
Jenkins nymea 2022-03-27 19:49:27 +02:00
commit 5273d87c83
4 changed files with 20 additions and 6 deletions

View File

@ -433,6 +433,9 @@ QVariantMap ZigbeeHandler::packNetwork(ZigbeeNetwork *network)
case Zigbee::ZigbeeBackendTypeNxp:
networkMap.insert("backend", ZigbeeAdapter::backendNames().value(ZigbeeAdapter::ZigbeeBackendTypeNxp));
break;
case Zigbee::ZigbeeBackendTypeTi:
networkMap.insert("backend", ZigbeeAdapter::backendNames().value(ZigbeeAdapter::ZigbeeBackendTypeTi));
break;
}
switch (network->state()) {

View File

@ -127,6 +127,7 @@ QHash<ZigbeeAdapter::ZigbeeBackendType, QString> ZigbeeAdapter::backendNames()
QHash<ZigbeeAdapter::ZigbeeBackendType, QString> backendNameHash;
backendNameHash.insert(ZigbeeBackendTypeDeconz, "deCONZ");
backendNameHash.insert(ZigbeeBackendTypeNxp, "NXP");
backendNameHash.insert(ZigbeeBackendTypeTi, "TI");
return backendNameHash;
}

View File

@ -52,7 +52,8 @@ class ZigbeeAdapter
public:
enum ZigbeeBackendType {
ZigbeeBackendTypeDeconz,
ZigbeeBackendTypeNxp
ZigbeeBackendTypeNxp,
ZigbeeBackendTypeTi
};
Q_ENUM(ZigbeeBackendType)

View File

@ -266,8 +266,8 @@ void ZigbeeManager::saveNetwork(ZigbeeNetwork *network)
case Zigbee::ZigbeeBackendTypeNxp:
settings.setValue("backendType", static_cast<int>(ZigbeeAdapter::ZigbeeBackendTypeNxp));
break;
default:
qCWarning(dcZigbee()) << "Unhandled backend type" << network->backendType() << "which is not implemented in nymea yet.";
case Zigbee::ZigbeeBackendTypeTi:
settings.setValue("backendType", static_cast<int>(ZigbeeAdapter::ZigbeeBackendTypeTi));
break;
}
settings.setValue("panId", network->panId());
@ -315,6 +315,10 @@ void ZigbeeManager::loadZigbeeNetworks()
}
ZigbeeNetwork *network = buildNetworkObject(networkUuid, backendType);
if (!network) {
qCWarning(dcZigbee()) << "Invalid zigbee network configuration. Skipping network" << networkUuid;
continue;
}
network->setSerialPortName(serialPortName);
network->setSerialBaudrate(serialBaudRate);
network->setSerialNumber(serialNumber);
@ -442,8 +446,13 @@ ZigbeeNetwork *ZigbeeManager::buildNetworkObject(const QUuid &networkId, ZigbeeA
case ZigbeeAdapter::ZigbeeBackendTypeNxp:
network = ZigbeeNetworkManager::createZigbeeNetwork(networkId, Zigbee::ZigbeeBackendTypeNxp, this);
break;
case ZigbeeAdapter::ZigbeeBackendTypeTi:
network = ZigbeeNetworkManager::createZigbeeNetwork(networkId, Zigbee::ZigbeeBackendTypeTi, this);
break;
}
if (network) {
network->setSettingsDirectory(QDir(NymeaSettings::settingsPath()));
}
network->setSettingsDirectory(QDir(NymeaSettings::settingsPath()));
return network;
}
@ -613,8 +622,8 @@ ZigbeeAdapter ZigbeeManager::convertUartAdapterToAdapter(const ZigbeeUartAdapter
case Zigbee::ZigbeeBackendTypeNxp:
adapter.setBackendType(ZigbeeAdapter::ZigbeeBackendTypeNxp);
break;
default:
qCWarning(dcZigbee()) << "Unhandled backend type" << uartAdapter.zigbeeBackend() << "which is not implemented in nymea yet.";
case Zigbee::ZigbeeBackendTypeTi:
adapter.setBackendType(ZigbeeAdapter::ZigbeeBackendTypeTi);
break;
}
return adapter;