Merge PR #492: Add support for TI z-Stack based Zigbee adapters
This commit is contained in:
commit
5273d87c83
@ -433,6 +433,9 @@ QVariantMap ZigbeeHandler::packNetwork(ZigbeeNetwork *network)
|
|||||||
case Zigbee::ZigbeeBackendTypeNxp:
|
case Zigbee::ZigbeeBackendTypeNxp:
|
||||||
networkMap.insert("backend", ZigbeeAdapter::backendNames().value(ZigbeeAdapter::ZigbeeBackendTypeNxp));
|
networkMap.insert("backend", ZigbeeAdapter::backendNames().value(ZigbeeAdapter::ZigbeeBackendTypeNxp));
|
||||||
break;
|
break;
|
||||||
|
case Zigbee::ZigbeeBackendTypeTi:
|
||||||
|
networkMap.insert("backend", ZigbeeAdapter::backendNames().value(ZigbeeAdapter::ZigbeeBackendTypeTi));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (network->state()) {
|
switch (network->state()) {
|
||||||
|
|||||||
@ -127,6 +127,7 @@ QHash<ZigbeeAdapter::ZigbeeBackendType, QString> ZigbeeAdapter::backendNames()
|
|||||||
QHash<ZigbeeAdapter::ZigbeeBackendType, QString> backendNameHash;
|
QHash<ZigbeeAdapter::ZigbeeBackendType, QString> backendNameHash;
|
||||||
backendNameHash.insert(ZigbeeBackendTypeDeconz, "deCONZ");
|
backendNameHash.insert(ZigbeeBackendTypeDeconz, "deCONZ");
|
||||||
backendNameHash.insert(ZigbeeBackendTypeNxp, "NXP");
|
backendNameHash.insert(ZigbeeBackendTypeNxp, "NXP");
|
||||||
|
backendNameHash.insert(ZigbeeBackendTypeTi, "TI");
|
||||||
return backendNameHash;
|
return backendNameHash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,8 @@ class ZigbeeAdapter
|
|||||||
public:
|
public:
|
||||||
enum ZigbeeBackendType {
|
enum ZigbeeBackendType {
|
||||||
ZigbeeBackendTypeDeconz,
|
ZigbeeBackendTypeDeconz,
|
||||||
ZigbeeBackendTypeNxp
|
ZigbeeBackendTypeNxp,
|
||||||
|
ZigbeeBackendTypeTi
|
||||||
};
|
};
|
||||||
Q_ENUM(ZigbeeBackendType)
|
Q_ENUM(ZigbeeBackendType)
|
||||||
|
|
||||||
|
|||||||
@ -266,8 +266,8 @@ void ZigbeeManager::saveNetwork(ZigbeeNetwork *network)
|
|||||||
case Zigbee::ZigbeeBackendTypeNxp:
|
case Zigbee::ZigbeeBackendTypeNxp:
|
||||||
settings.setValue("backendType", static_cast<int>(ZigbeeAdapter::ZigbeeBackendTypeNxp));
|
settings.setValue("backendType", static_cast<int>(ZigbeeAdapter::ZigbeeBackendTypeNxp));
|
||||||
break;
|
break;
|
||||||
default:
|
case Zigbee::ZigbeeBackendTypeTi:
|
||||||
qCWarning(dcZigbee()) << "Unhandled backend type" << network->backendType() << "which is not implemented in nymea yet.";
|
settings.setValue("backendType", static_cast<int>(ZigbeeAdapter::ZigbeeBackendTypeTi));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
settings.setValue("panId", network->panId());
|
settings.setValue("panId", network->panId());
|
||||||
@ -315,6 +315,10 @@ void ZigbeeManager::loadZigbeeNetworks()
|
|||||||
}
|
}
|
||||||
|
|
||||||
ZigbeeNetwork *network = buildNetworkObject(networkUuid, backendType);
|
ZigbeeNetwork *network = buildNetworkObject(networkUuid, backendType);
|
||||||
|
if (!network) {
|
||||||
|
qCWarning(dcZigbee()) << "Invalid zigbee network configuration. Skipping network" << networkUuid;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
network->setSerialPortName(serialPortName);
|
network->setSerialPortName(serialPortName);
|
||||||
network->setSerialBaudrate(serialBaudRate);
|
network->setSerialBaudrate(serialBaudRate);
|
||||||
network->setSerialNumber(serialNumber);
|
network->setSerialNumber(serialNumber);
|
||||||
@ -442,8 +446,13 @@ ZigbeeNetwork *ZigbeeManager::buildNetworkObject(const QUuid &networkId, ZigbeeA
|
|||||||
case ZigbeeAdapter::ZigbeeBackendTypeNxp:
|
case ZigbeeAdapter::ZigbeeBackendTypeNxp:
|
||||||
network = ZigbeeNetworkManager::createZigbeeNetwork(networkId, Zigbee::ZigbeeBackendTypeNxp, this);
|
network = ZigbeeNetworkManager::createZigbeeNetwork(networkId, Zigbee::ZigbeeBackendTypeNxp, this);
|
||||||
break;
|
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;
|
return network;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -613,8 +622,8 @@ ZigbeeAdapter ZigbeeManager::convertUartAdapterToAdapter(const ZigbeeUartAdapter
|
|||||||
case Zigbee::ZigbeeBackendTypeNxp:
|
case Zigbee::ZigbeeBackendTypeNxp:
|
||||||
adapter.setBackendType(ZigbeeAdapter::ZigbeeBackendTypeNxp);
|
adapter.setBackendType(ZigbeeAdapter::ZigbeeBackendTypeNxp);
|
||||||
break;
|
break;
|
||||||
default:
|
case Zigbee::ZigbeeBackendTypeTi:
|
||||||
qCWarning(dcZigbee()) << "Unhandled backend type" << uartAdapter.zigbeeBackend() << "which is not implemented in nymea yet.";
|
adapter.setBackendType(ZigbeeAdapter::ZigbeeBackendTypeTi);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return adapter;
|
return adapter;
|
||||||
|
|||||||
Reference in New Issue
Block a user