aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@pelagicore.com>2018-10-29 15:00:56 +0100
committerDominik Holland <dominik.holland@pelagicore.com>2018-11-07 10:35:15 +0000
commitdc548209aa828e59a177f174f62af45001e1aabe (patch)
treee65a0452cf4e6ae2c2596c3b91ef29f267c1f01f
parenta8bb96bc59182a1d249d11d5ec07937f2fac5766 (diff)
ivigenerator: Fix the "backend_simulator" simulation to support zones
Forward the zone argument for the properties to the QML simulation. Fix the QML code to use the zone argument for loading the correct simulationData. Change-Id: I6bffd47333c423347421754c30856f2927170cd6 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
-rw-r--r--src/tools/ivigenerator/templates_backend_simulator/backend.cpp.tpl6
-rw-r--r--src/tools/ivigenerator/templates_backend_simulator/backend.qml.tpl20
2 files changed, 23 insertions, 3 deletions
diff --git a/src/tools/ivigenerator/templates_backend_simulator/backend.cpp.tpl b/src/tools/ivigenerator/templates_backend_simulator/backend.cpp.tpl
index 8dbe5d7..f43ec4e 100644
--- a/src/tools/ivigenerator/templates_backend_simulator/backend.cpp.tpl
+++ b/src/tools/ivigenerator/templates_backend_simulator/backend.cpp.tpl
@@ -231,7 +231,11 @@ void {{class}}::addZone(const QString &zone)
*/
{{ivi.prop_setter(property, class, interface_zoned, model_interface = true)}}
{
- QIVI_SIMULATION_TRY_CALL({{class}}, "{{property|setter_name}}", void, {{property}});
+{% set parameters = property.name %}
+{% if interface_zoned %}
+{% set parameters = parameters + ', zone' %}
+{% endif%}
+ QIVI_SIMULATION_TRY_CALL({{class}}, "{{property|setter_name}}", void, {{parameters}});
{% if interface_zoned %}
if (zone.isEmpty()) {
diff --git a/src/tools/ivigenerator/templates_backend_simulator/backend.qml.tpl b/src/tools/ivigenerator/templates_backend_simulator/backend.qml.tpl
index ad83229..f4278b4 100644
--- a/src/tools/ivigenerator/templates_backend_simulator/backend.qml.tpl
+++ b/src/tools/ivigenerator/templates_backend_simulator/backend.qml.tpl
@@ -61,16 +61,32 @@ QtObject {
return settings.zones;
}
{% endif %}
-
{% for property in interface.properties %}
+
+{% if interface_zoned %}
+ function {{property|setter_name}}({{property}}, zone) {
+ if (IviSimulator.checkSettings({{property}}, settings["{{property}}"], zone)) {
+ if (zone) {
+ console.log("SIMULATION {{ property }} for zone: " + zone + " changed to: " + {{property}});
+ backend.zones[zone].{{property}} = {{property}}
+ } else {
+ console.log("SIMULATION {{ property }} changed to: " + {{property}});
+ backend.{{property}} = {{property}}
+ }
+ } else {
+ setError("SIMULATION changing {{property}} is not possible: provided: " + {{property}} + " constraint: " + IviSimulator.constraint_string(settings["{{property}}"]));
+ }
+ }
+{% else %}
function {{property|setter_name}}({{property}}) {
if (IviSimulator.checkSettings({{property}}, settings["{{property}}"])) {
console.log("SIMULATION {{ property }} changed to: " + {{property}});
backend.{{property}} = {{property}}
} else {
- setError("SIMULATION changing {{property}} is not possible: provided: " + {{property}} + "constraint: " + IviSimulator.constraint_string(settings["{{property}}"]));
+ setError("SIMULATION changing {{property}} is not possible: provided: " + {{property}} + " constraint: " + IviSimulator.constraint_string(settings["{{property}}"]));
}
}
+{% endif %}
{% endfor %}
}
}