Merge PR #355: Fix providing param overrides for rediscovery

This commit is contained in:
Jenkins nymea 2020-04-03 12:29:53 +02:00
commit 13e8b33fda
3 changed files with 17 additions and 9 deletions

View File

@ -503,11 +503,15 @@ void DeviceManager::reconfigureDevice(const QUuid &deviceId, const QVariantList
m_jsonClient->sendCommand("Devices.ReconfigureDevice", params, this, "reconfigureDeviceResponse"); m_jsonClient->sendCommand("Devices.ReconfigureDevice", params, this, "reconfigureDeviceResponse");
} }
void DeviceManager::reconfigureDiscoveredDevice(const QUuid &deviceId, const QUuid &deviceDescriptorId) void DeviceManager::reconfigureDiscoveredDevice(const QUuid &deviceId, const QUuid &deviceDescriptorId, const QVariantList &paramOverride)
{ {
QVariantMap params; QVariantMap params;
params.insert("deviceId", deviceId.toString()); params.insert("deviceId", deviceId.toString());
params.insert("deviceDescriptorId", deviceDescriptorId); params.insert("deviceDescriptorId", deviceDescriptorId);
if (!paramOverride.isEmpty()) {
params.insert("deviceParams", paramOverride);
}
qDebug() << "Calling ReconfigureDevice" << qUtf8Printable(QJsonDocument::fromVariant(params).toJson());
m_jsonClient->sendCommand("Devices.ReconfigureDevice", params, this, "reconfigureDeviceResponse"); m_jsonClient->sendCommand("Devices.ReconfigureDevice", params, this, "reconfigureDeviceResponse");
} }

View File

@ -91,7 +91,7 @@ public:
Q_INVOKABLE void editDevice(const QUuid &deviceId, const QString &name); Q_INVOKABLE void editDevice(const QUuid &deviceId, const QString &name);
Q_INVOKABLE void setDeviceSettings(const QUuid &deviceId, const QVariantList &settings); Q_INVOKABLE void setDeviceSettings(const QUuid &deviceId, const QVariantList &settings);
Q_INVOKABLE void reconfigureDevice(const QUuid &deviceId, const QVariantList &deviceParams); Q_INVOKABLE void reconfigureDevice(const QUuid &deviceId, const QVariantList &deviceParams);
Q_INVOKABLE void reconfigureDiscoveredDevice(const QUuid &deviceId, const QUuid &deviceDescriptorId); Q_INVOKABLE void reconfigureDiscoveredDevice(const QUuid &deviceId, const QUuid &deviceDescriptorId, const QVariantList &paramOverride);
Q_INVOKABLE int executeAction(const QUuid &deviceId, const QUuid &actionTypeId, const QVariantList &params = QVariantList()); Q_INVOKABLE int executeAction(const QUuid &deviceId, const QUuid &actionTypeId, const QVariantList &params = QVariantList());
Q_INVOKABLE BrowserItems* browseDevice(const QUuid &deviceId, const QString &itemId = QString()); Q_INVOKABLE BrowserItems* browseDevice(const QUuid &deviceId, const QString &itemId = QString());
Q_INVOKABLE void refreshBrowserItems(BrowserItems *browserItems); Q_INVOKABLE void refreshBrowserItems(BrowserItems *browserItems);

View File

@ -75,7 +75,7 @@ Page {
} }
Component.onCompleted: { Component.onCompleted: {
print("Starting setup wizard") print("Starting setup wizard. Create Methods:", root.deviceClass.createMethods, "Setup method:", root.deviceClass.setupMethod)
if (root.deviceClass.createMethods.indexOf("CreateMethodDiscovery") !== -1) { if (root.deviceClass.createMethods.indexOf("CreateMethodDiscovery") !== -1) {
print("CreateMethodDiscovery") print("CreateMethodDiscovery")
if (deviceClass["discoveryParamTypes"].count > 0) { if (deviceClass["discoveryParamTypes"].count > 0) {
@ -115,11 +115,12 @@ Page {
case 2: case 2:
case 3: case 3:
case 4: case 4:
case 5:
print("re-pairing", root.device.id) print("re-pairing", root.device.id)
engine.deviceManager.rePairDevice(root.device.id, []); engine.deviceManager.rePairDevice(root.device.id, []);
break; break;
default: default:
console.warn("Unahndled setup method!") console.warn("Unhandled setup method!")
} }
} }
} }
@ -403,17 +404,20 @@ Page {
var params = [] var params = []
for (var i = 0; i < paramRepeater.count; i++) { for (var i = 0; i < paramRepeater.count; i++) {
var param = {} var param = {}
param.paramTypeId = paramRepeater.itemAt(i).paramType.id var paramType = paramRepeater.itemAt(i).paramType
param.value = paramRepeater.itemAt(i).value if (!paramType.readOnly) {
print("adding param", param.paramTypeId, param.value) param.paramTypeId = paramType.id
params.push(param) param.value = paramRepeater.itemAt(i).value
print("adding param", param.paramTypeId, param.value)
params.push(param)
}
} }
switch (root.deviceClass.setupMethod) { switch (root.deviceClass.setupMethod) {
case 0: case 0:
if (root.device) { if (root.device) {
if (d.deviceDescriptor) { if (d.deviceDescriptor) {
engine.deviceManager.reconfigureDiscoveredDevice(root.device.id, d.deviceDescriptor.id); engine.deviceManager.reconfigureDiscoveredDevice(root.device.id, d.deviceDescriptor.id, params);
} else { } else {
engine.deviceManager.reconfigureDevice(root.device.id, params); engine.deviceManager.reconfigureDevice(root.device.id, params);
} }