From 1018083052f08e6e6173a99bdca7c69c7e54ab80 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Thu, 16 Jul 2020 23:48:29 +0200 Subject: [PATCH] add 2 missing data type conversions --- libnymea-core/integrations/python/pyutils.h | 11 ++++++++++- .../integrations/thingmanagerimplementation.cpp | 1 - plugins/pymock/integrationpluginpymock.py | 3 +-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/libnymea-core/integrations/python/pyutils.h b/libnymea-core/integrations/python/pyutils.h index 103e9d9b..62b3cc7b 100644 --- a/libnymea-core/integrations/python/pyutils.h +++ b/libnymea-core/integrations/python/pyutils.h @@ -56,7 +56,16 @@ QVariant PyObjectToQVariant(PyObject *pyObject) if (qstrcmp(pyObject->ob_type->tp_name, "double") == 0) { return QVariant(PyFloat_AsDouble(pyObject)); } - Q_ASSERT_X(false, "pyutils.h", "Unhandled data type in conversion from Param to PyParam!"); + + if (qstrcmp(pyObject->ob_type->tp_name, "float") == 0) { + return QVariant(PyFloat_AsDouble(pyObject)); + } + + if (qstrcmp(pyObject->ob_type->tp_name, "bool") == 0) { + return QVariant(PyObject_IsTrue(pyObject)); + } + + Q_ASSERT_X(false, "pyutils.h", "Unhandled data type in conversion PyObject to QVariant!"); return QVariant(); } diff --git a/libnymea-core/integrations/thingmanagerimplementation.cpp b/libnymea-core/integrations/thingmanagerimplementation.cpp index e8e9e653..e21e99f1 100644 --- a/libnymea-core/integrations/thingmanagerimplementation.cpp +++ b/libnymea-core/integrations/thingmanagerimplementation.cpp @@ -1966,7 +1966,6 @@ void ThingManagerImplementation::loadThingStates(Thing *thing) } value.convert(stateType.type()); thing->setStateValue(stateType.id(), value); - qWarning() << "**** loaded state" << stateType.name() << value; } else { thing->setStateValue(stateType.id(), stateType.defaultValue()); } diff --git a/plugins/pymock/integrationpluginpymock.py b/plugins/pymock/integrationpluginpymock.py index 63b2220e..285a0071 100644 --- a/plugins/pymock/integrationpluginpymock.py +++ b/plugins/pymock/integrationpluginpymock.py @@ -7,8 +7,7 @@ async def init(): logger.log("Python mock plugin init") while True: - await asyncio.sleep(2); - logger.log("Updating stuff") + await asyncio.sleep(5); for thing in myThings(): if thing.thingClassId == pyMockThingClassId: logger.log("Emitting event 1 for", thing.name, "eventTypeId", pyMockEvent1EventTypeId)