update discoveryParams from QVariantMap to QList<Param> too

This commit is contained in:
Michael Zanetti 2014-06-22 01:05:22 +02:00
parent a1353da833
commit da9c937f94
9 changed files with 33 additions and 12 deletions

View File

@ -173,7 +173,7 @@ QList<DeviceClass> DeviceManager::supportedDevices(const VendorId &vendorId) con
return ret; return ret;
} }
DeviceManager::DeviceError DeviceManager::discoverDevices(const DeviceClassId &deviceClassId, const QVariantMap &params) const DeviceManager::DeviceError DeviceManager::discoverDevices(const DeviceClassId &deviceClassId, const QList<Param> &params) const
{ {
DeviceClass deviceClass = findDeviceClass(deviceClassId); DeviceClass deviceClass = findDeviceClass(deviceClassId);
if (!deviceClass.isValid()) { if (!deviceClass.isValid()) {

View File

@ -78,7 +78,7 @@ public:
QList<Vendor> supportedVendors() const; QList<Vendor> supportedVendors() const;
QList<DeviceClass> supportedDevices(const VendorId &vendorId = VendorId()) const; QList<DeviceClass> supportedDevices(const VendorId &vendorId = VendorId()) const;
DeviceError discoverDevices(const DeviceClassId &deviceClassId, const QVariantMap &params) const; DeviceError discoverDevices(const DeviceClassId &deviceClassId, const QList<Param> &params) const;
QList<Device*> configuredDevices() const; QList<Device*> configuredDevices() const;
QPair<DeviceError, QString> addConfiguredDevice(const DeviceClassId &deviceClassId, const QList<Param> &params, const DeviceId id = DeviceId::createDeviceId()); QPair<DeviceError, QString> addConfiguredDevice(const DeviceClassId &deviceClassId, const QList<Param> &params, const DeviceId id = DeviceId::createDeviceId());

View File

@ -152,7 +152,7 @@ bool DevicePlugin::configureAutoDevice(QList<Device*> loadedDevices, Device *dev
be an async operation. Return DeviceErrorAsync or DeviceErrorNoError if the discovery be an async operation. Return DeviceErrorAsync or DeviceErrorNoError if the discovery
has been started successfully. Return an appropriate error otherwise. has been started successfully. Return an appropriate error otherwise.
Once devices are discovered, emit devicesDiscovered() once. */ Once devices are discovered, emit devicesDiscovered() once. */
DeviceManager::DeviceError DevicePlugin::discoverDevices(const DeviceClassId &deviceClassId, const QVariantMap &params) const DeviceManager::DeviceError DevicePlugin::discoverDevices(const DeviceClassId &deviceClassId, const QList<Param> &params) const
{ {
Q_UNUSED(deviceClassId) Q_UNUSED(deviceClassId)
Q_UNUSED(params) Q_UNUSED(params)

View File

@ -50,7 +50,7 @@ public:
virtual DeviceManager::HardwareResources requiredHardware() const = 0; virtual DeviceManager::HardwareResources requiredHardware() const = 0;
virtual bool configureAutoDevice(QList<Device *> loadedDevices, Device *device) const; virtual bool configureAutoDevice(QList<Device *> loadedDevices, Device *device) const;
virtual DeviceManager::DeviceError discoverDevices(const DeviceClassId &deviceClassId, const QVariantMap &params) const; virtual DeviceManager::DeviceError discoverDevices(const DeviceClassId &deviceClassId, const QList<Param> &params) const;
virtual QPair<DeviceManager::DeviceSetupStatus, QString> setupDevice(Device *device); virtual QPair<DeviceManager::DeviceSetupStatus, QString> setupDevice(Device *device);
virtual void deviceRemoved(Device *device); virtual void deviceRemoved(Device *device);

View File

@ -423,14 +423,20 @@ QList<DeviceClass> DevicePluginOpenweathermap::supportedDevices() const
return ret; return ret;
} }
DeviceManager::DeviceError DevicePluginOpenweathermap::discoverDevices(const DeviceClassId &deviceClassId, const QVariantMap &params) const DeviceManager::DeviceError DevicePluginOpenweathermap::discoverDevices(const DeviceClassId &deviceClassId, const QList<Param> &params) const
{ {
qDebug() << "should discover divces for" << deviceClassId << params.value("location").toString(); QString location;
if(params.value("location").toString() == ""){ foreach (const Param &param, params) {
if (param.name() == "location") {
location = param.value().toString();
}
}
if (location.isEmpty()){
m_openweaher->searchAutodetect(); m_openweaher->searchAutodetect();
return DeviceManager::DeviceErrorAsync; return DeviceManager::DeviceErrorAsync;
} }
m_openweaher->search(params.value("location").toString()); m_openweaher->search(location);
return DeviceManager::DeviceErrorAsync; return DeviceManager::DeviceErrorAsync;
} }

View File

@ -38,7 +38,7 @@ public:
QList<Vendor> supportedVendors() const override; QList<Vendor> supportedVendors() const override;
QList<DeviceClass> supportedDevices() const override; QList<DeviceClass> supportedDevices() const override;
DeviceManager::DeviceError discoverDevices(const DeviceClassId &deviceClassId, const QVariantMap &params) const override; DeviceManager::DeviceError discoverDevices(const DeviceClassId &deviceClassId, const QList<Param> &params) const override;
QPair<DeviceManager::DeviceSetupStatus, QString> setupDevice(Device *device) override; QPair<DeviceManager::DeviceSetupStatus, QString> setupDevice(Device *device) override;
DeviceManager::HardwareResources requiredHardware() const override; DeviceManager::HardwareResources requiredHardware() const override;
QPair<DeviceManager::DeviceError, QString> executeAction(Device *device, const Action &action) override; QPair<DeviceManager::DeviceError, QString> executeAction(Device *device, const Action &action) override;

View File

@ -157,7 +157,7 @@ QList<ParamType> DevicePluginPhilipsHue::configurationDescription() const
return params; return params;
} }
DeviceManager::DeviceError DevicePluginPhilipsHue::discoverDevices(const DeviceClassId &deviceClassId, const QVariantMap &params) const DeviceManager::DeviceError DevicePluginPhilipsHue::discoverDevices(const DeviceClassId &deviceClassId, const QList<Param> &params) const
{ {
m_discovery->findBridges(4000); m_discovery->findBridges(4000);
return DeviceManager::DeviceErrorAsync; return DeviceManager::DeviceErrorAsync;

View File

@ -46,7 +46,7 @@ public:
PluginId pluginId() const override; PluginId pluginId() const override;
QList<ParamType> configurationDescription() const override; QList<ParamType> configurationDescription() const override;
DeviceManager::DeviceError discoverDevices(const DeviceClassId &deviceClassId, const QVariantMap &params) const override; DeviceManager::DeviceError discoverDevices(const DeviceClassId &deviceClassId, const QList<Param> &params) const override;
QPair<DeviceManager::DeviceSetupStatus, QString> setupDevice(Device *device) override; QPair<DeviceManager::DeviceSetupStatus, QString> setupDevice(Device *device) override;

View File

@ -243,7 +243,13 @@ JsonReply *DeviceHandler::GetDiscoveredDevices(const QVariantMap &params) const
DeviceClassId deviceClassId = DeviceClassId(params.value("deviceClassId").toString()); DeviceClassId deviceClassId = DeviceClassId(params.value("deviceClassId").toString());
DeviceManager::DeviceError status = GuhCore::instance()->deviceManager()->discoverDevices(deviceClassId, params.value("discoveryParams").toMap()); QList<Param> discoveryParams;
foreach (const QVariant &discoveryParam, params.value("discoveryParams").toList()) {
Param dp(discoveryParam.toMap().keys().first(), discoveryParam.toMap().values().first());
discoveryParams.append(dp);
}
DeviceManager::DeviceError status = GuhCore::instance()->deviceManager()->discoverDevices(deviceClassId, discoveryParams);
switch (status) { switch (status) {
case DeviceManager::DeviceErrorAsync: case DeviceManager::DeviceErrorAsync:
case DeviceManager::DeviceErrorNoError: { case DeviceManager::DeviceErrorNoError: {
@ -621,5 +627,14 @@ void DeviceHandler::pairingFinished(const QUuid &pairingTransactionId, DeviceMan
return; return;
} }
if (status != DeviceManager::DeviceErrorNoError) {
QVariantMap returns;
returns.insert("success", false);
returns.insert("errorMessage", errorMessage);
reply->setData(returns);
reply->finished();
return;
}
m_asynDeviceAdditions.insert(deviceId, reply); m_asynDeviceAdditions.insert(deviceId, reply);
} }