SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in. svghmi
authorEdouard Tisserant
Fri, 21 Aug 2020 14:29:03 +0200
branchsvghmi
changeset 3034 793ce2117258
parent 3033 52f6548982d4
child 3035 d1fc8c55c1d3
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
svghmi/gen_index_xhtml.xslt
svghmi/widget_input.ysl2
svghmi/widget_jsontable.ysl2
tests/svghmi/py_ext_0@py_ext/pyfile.xml
tests/svghmi/svghmi_0@svghmi/svghmi.svg
--- a/svghmi/gen_index_xhtml.xslt	Fri Aug 21 13:22:54 2020 +0200
+++ b/svghmi/gen_index_xhtml.xslt	Fri Aug 21 14:29:03 2020 +0200
@@ -3337,7 +3337,7 @@
     <xsl:value-of select="path/@value"/>
     <xsl:text>", "</xsl:text>
     <xsl:value-of select="path/@type"/>
-    <xsl:text>", this, this.last_val,size);
+    <xsl:text>", this, this.last_val, size);
 </xsl:text>
     <xsl:text>    },
 </xsl:text>
@@ -3351,15 +3351,15 @@
   <xsl:template mode="widget_class" match="widget[@type='JsonTable']">
     <xsl:text>class JsonTableWidget extends Widget{
 </xsl:text>
+    <xsl:text>    cache = [];
+</xsl:text>
     <xsl:text>    do_http_request() {
 </xsl:text>
     <xsl:text>        const query = {
 </xsl:text>
-    <xsl:text>             offset: '42',
-</xsl:text>
-    <xsl:text>             filter: '*powerloss*',
-</xsl:text>
-    <xsl:text>             args: this.args
+    <xsl:text>            args: this.args,
+</xsl:text>
+    <xsl:text>            vars: this.cache
 </xsl:text>
     <xsl:text>        };
 </xsl:text>
@@ -3373,7 +3373,7 @@
 </xsl:text>
     <xsl:text>             headers: {'Content-Type': 'application/json'}
 </xsl:text>
-    <xsl:text>        }
+    <xsl:text>        };
 </xsl:text>
     <xsl:text>
 </xsl:text>
@@ -3387,7 +3387,11 @@
 </xsl:text>
     <xsl:text>    }
 </xsl:text>
-    <xsl:text>    dispatch(value) {
+    <xsl:text>    dispatch(value, oldval, index) {
+</xsl:text>
+    <xsl:text>        console.log("mhooo", index);
+</xsl:text>
+    <xsl:text>        this.cache[index] = value;
 </xsl:text>
     <xsl:text>        this.do_http_request();
 </xsl:text>
@@ -4017,11 +4021,23 @@
 </xsl:text>
     <xsl:text>     on_Enter_click() {
 </xsl:text>
-    <xsl:text>         end_modal.call(this);
-</xsl:text>
-    <xsl:text>         let callback_obj = this.result_callback_obj;
-</xsl:text>
-    <xsl:text>         callback_obj.edit_callback(this.editstr);
+    <xsl:text>         let coercedval = (typeof this.initial) == "number" ? Number(this.editstr) : this.editstr;
+</xsl:text>
+    <xsl:text>         if(isNaN(coercedval)){
+</xsl:text>
+    <xsl:text>             this.editstr = String(this.initial);
+</xsl:text>
+    <xsl:text>             this.update();
+</xsl:text>
+    <xsl:text>         } else { // revert to initial so it explicitely shows input was ignored
+</xsl:text>
+    <xsl:text>             let callback_obj = this.result_callback_obj;
+</xsl:text>
+    <xsl:text>             end_modal.call(this);
+</xsl:text>
+    <xsl:text>             callback_obj.edit_callback(coercedval);
+</xsl:text>
+    <xsl:text>         }
 </xsl:text>
     <xsl:text>     }
 </xsl:text>
@@ -4115,7 +4131,7 @@
 </xsl:text>
     <xsl:text>         show_modal.call(this,size);
 </xsl:text>
-    <xsl:text>         this.editstr = initial;
+    <xsl:text>         this.editstr = String(initial);
 </xsl:text>
     <xsl:text>         this.result_callback_obj = callback_obj;
 </xsl:text>
@@ -4125,6 +4141,10 @@
 </xsl:text>
     <xsl:text>         this.caps = false;
 </xsl:text>
+    <xsl:text>         this.initial = initial;
+</xsl:text>
+    <xsl:text>
+</xsl:text>
     <xsl:text>         this.update();
 </xsl:text>
     <xsl:text>     }
--- a/svghmi/widget_input.ysl2	Fri Aug 21 13:22:54 2020 +0200
+++ b/svghmi/widget_input.ysl2	Fri Aug 21 14:29:03 2020 +0200
@@ -35,7 +35,7 @@
     |     },
     |     on_edit_click: function(opstr) {
     |         var size = (typeof this.key_pos_elt !== 'undefined') ?  this.key_pos_elt.getBBox() : undefined
-    |         edit_value("«path/@value»", "«path/@type»", this, this.last_val,size);
+    |         edit_value("«path/@value»", "«path/@type»", this, this.last_val, size);
     |     },
 
     |     edit_callback: function(new_val) {
--- a/svghmi/widget_jsontable.ysl2	Fri Aug 21 13:22:54 2020 +0200
+++ b/svghmi/widget_jsontable.ysl2	Fri Aug 21 14:29:03 2020 +0200
@@ -3,25 +3,27 @@
 template "widget[@type='JsonTable']", mode="widget_class"
     ||
     class JsonTableWidget extends Widget{
+        cache = [];
         do_http_request() {
             const query = {
-                 offset: '42',
-                 filter: '*powerloss*',
-                 args: this.args
+                args: this.args,
+                vars: this.cache
             };
 
             const options = {
                  method: 'POST',
                  body: JSON.stringify(query),
                  headers: {'Content-Type': 'application/json'}
-            }
+            };
 
             fetch(this.args[0], options)
                 .then(res => res.json())
                 .then(this.spread_json_data);
 
         }
-        dispatch(value) {
+        dispatch(value, oldval, index) {
+            console.log("mhooo", index);
+            this.cache[index] = value;
             this.do_http_request();
         }
         on_click(evt) {
--- a/tests/svghmi/py_ext_0@py_ext/pyfile.xml	Fri Aug 21 13:22:54 2020 +0200
+++ b/tests/svghmi/py_ext_0@py_ext/pyfile.xml	Fri Aug 21 14:29:03 2020 +0200
@@ -2,7 +2,7 @@
 <PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <variables>
     <variable name="SomePLCglobal" type="HMI_STRING" onchange="MyOnChangeFunc"/>
-    <variable name="AlarmCount" type="HMI_INT"/>
+    <variable name="AlarmNotify" type="HMI_INT"/>
   </variables>
   <globals>
     <xhtml:p><![CDATA[
@@ -14,9 +14,9 @@
         return ''
 
     def render_POST(self, request):
-        print(request.__dict__)
         newdata = request.content.getvalue()
         print newdata
+        print json.loads(newdata)
         selected_alarms = [
             {"name":"three", "sides":3, "textstyle":"alarm"},
             {"name":"four", "sides":4, "textstyle":"ack"},
--- a/tests/svghmi/svghmi_0@svghmi/svghmi.svg	Fri Aug 21 13:22:54 2020 +0200
+++ b/tests/svghmi/svghmi_0@svghmi/svghmi.svg	Fri Aug 21 14:29:03 2020 +0200
@@ -182,12 +182,12 @@
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
      inkscape:document-units="px"
-     inkscape:current-layer="g1384"
+     inkscape:current-layer="hmi0"
      showgrid="false"
      units="px"
-     inkscape:zoom="0.50000001"
-     inkscape:cx="503.83301"
-     inkscape:cy="474.4059"
+     inkscape:zoom="0.43668246"
+     inkscape:cx="735.62981"
+     inkscape:cy="-925.76586"
      inkscape:window-width="1800"
      inkscape:window-height="836"
      inkscape:window-x="0"
@@ -1492,7 +1492,7 @@
      transform="matrix(3.3549332,0,0,3.14525,-181.87457,1556.0198)"
      style="fill-rule:evenodd;stroke-width:0.47631353"
      id="g4278"
-     inkscape:label="HMI:Keypad:HMI_STRING">
+     inkscape:label="HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL">
     <path
        style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
        d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z"
@@ -2830,8 +2830,8 @@
   </g>
   <g
      id="g1289"
-     inkscape:label="HMI:JsonTable:/alarms@/ALARMCOUNT"
-     transform="matrix(0.5,0,0,0.5,635.30409,71.500438)">
+     inkscape:label="HMI:JsonTable:/alarms@/ALARMNOTIFY@.position@.range"
+     transform="matrix(0.5,0,0,0.5,515.30409,71.500438)">
     <g
        id="g5231"
        inkscape:label="data">
@@ -3145,12 +3145,13 @@
          sodipodi:role="line">information</tspan></text>
   </g>
   <g
-     transform="matrix(0.2527605,0,0,0.2527605,1089.2831,6.7725187)"
-     inkscape:label="HMI:Input@/ALARMCOUNT"
-     id="g5222">
+     transform="matrix(0.16718216,0,0,0.16718216,1142.9386,20.988849)"
+     inkscape:label="HMI:Input@/ALARMNOTIFY"
+     id="g5222"
+     style="stroke-width:1.51188684">
     <text
        xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.51188684px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
        x="136.32812"
        y="218.24219"
        id="text5208"
@@ -3159,11 +3160,11 @@
          id="tspan5206"
          x="136.32812"
          y="218.24219"
-         style="stroke-width:1px">8888</tspan></text>
+         style="stroke-width:1.51188684px">8888</tspan></text>
     <path
        transform="scale(1,-1)"
        sodipodi:type="star"
-       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:7.55943441;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
        id="path5212"
        sodipodi:sides="3"
        sodipodi:cx="596.74072"
@@ -3186,7 +3187,7 @@
        height="128"
        width="407.7037"
        id="rect5214"
-       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:7.55943441;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
     <path
        inkscape:label="+1"
        inkscape:transform-center-y="-7.4781804"
@@ -3202,7 +3203,7 @@
        sodipodi:cx="596.74072"
        sodipodi:sides="3"
        id="path5218"
-       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:7.55943441;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
        sodipodi:type="star" />
   </g>
   <rect
@@ -4224,23 +4225,23 @@
   <text
      inkscape:label="HMI:Display@paff"
      id="text1457"
-     y="108.60184"
-     x="902.83728"
-     style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     y="68.844757"
+     x="590.28473"
+     style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
      xml:space="preserve"><tspan
        style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px"
-       y="108.60184"
-       x="902.83728"
+       y="68.844757"
+       x="590.28473"
        id="tspan1455"
        sodipodi:role="line">8888</tspan></text>
   <g
-     style="stroke-width:2"
+     style="stroke-width:4"
      inkscape:label="HMI:Input@paff"
      id="g1505"
-     transform="matrix(0.28590269,0,0,0.28590269,700.70444,46.1427)">
+     transform="matrix(0.14295135,0,0,0.14295135,489.21833,37.615184)">
     <text
        xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
        x="136.32812"
        y="218.24219"
        id="text1461"
@@ -4249,7 +4250,7 @@
          id="tspan1459"
          x="136.32812"
          y="218.24219"
-         style="stroke-width:2px">8888</tspan></text>
+         style="stroke-width:4px">8888</tspan></text>
     <rect
        inkscape:label="edit"
        onclick=""
@@ -4258,9 +4259,9 @@
        height="128"
        width="407.7037"
        id="rect1463"
-       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
-    <g
-       style="stroke-width:2"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+    <g
+       style="stroke-width:4"
        id="g1471"
        inkscape:label="+&quot;dhu&quot;"
        transform="translate(-416.52022,170.47452)">
@@ -4269,21 +4270,21 @@
          id="path1465"
          d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
          inkscape:transform-center-y="-14.956361"
-         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
       <text
          id="text1469"
          y="111.05016"
          x="733.58197"
-         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          xml:space="preserve"><tspan
-           style="stroke-width:1px"
+           style="stroke-width:2px"
            y="111.05016"
            x="733.58197"
            id="tspan1467"
            sodipodi:role="line">dhu</tspan></text>
     </g>
     <g
-       style="stroke-width:2"
+       style="stroke-width:4"
        id="g1479"
        inkscape:label="=&quot;plop&quot;"
        transform="translate(-416.52022,170.47452)">
@@ -4302,12 +4303,12 @@
          sodipodi:cx="596.74072"
          sodipodi:sides="3"
          id="path1473"
-         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
          sodipodi:type="star"
          transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
       <text
          xml:space="preserve"
-         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          x="633.09552"
          y="111.05016"
          id="text1477"><tspan
@@ -4315,10 +4316,10 @@
            id="tspan1475"
            x="633.09552"
            y="111.05016"
-           style="stroke-width:1px">plop</tspan></text>
-    </g>
-    <g
-       style="stroke-width:2"
+           style="stroke-width:2px">plop</tspan></text>
+    </g>
+    <g
+       style="stroke-width:4"
        id="g1487"
        inkscape:label="=&quot;mhoo&quot;"
        transform="translate(-416.52022,170.47452)">
@@ -4326,7 +4327,7 @@
          inkscape:transform-center-x="14.956364"
          transform="rotate(-90,746.45698,-44.543641)"
          sodipodi:type="star"
-         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
          id="path1481"
          sodipodi:sides="3"
          sodipodi:cx="596.74072"
@@ -4344,16 +4345,16 @@
          id="text1485"
          y="111.05016"
          x="537.25018"
-         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          xml:space="preserve"><tspan
-           style="stroke-width:1px"
+           style="stroke-width:2px"
            y="111.05016"
            x="537.25018"
            id="tspan1483"
            sodipodi:role="line">mhoo</tspan></text>
     </g>
     <g
-       style="stroke-width:2"
+       style="stroke-width:4"
        id="g1495"
        inkscape:label="=&quot;yodl&quot;"
        transform="translate(-416.52022,170.47452)">
@@ -4373,22 +4374,22 @@
          sodipodi:cx="596.74072"
          sodipodi:sides="3"
          id="path1489"
-         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
          sodipodi:type="star" />
       <text
          id="text1493"
          y="111.05016"
          x="925.82605"
-         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          xml:space="preserve"><tspan
-           style="stroke-width:1px"
+           style="stroke-width:2px"
            y="111.05016"
            x="925.82605"
            id="tspan1491"
            sodipodi:role="line">yodl</tspan></text>
     </g>
     <g
-       style="stroke-width:2"
+       style="stroke-width:4"
        id="g1503"
        inkscape:label="=&quot;mhe&quot;"
        transform="translate(-416.52022,170.47452)">
@@ -4396,7 +4397,7 @@
          inkscape:transform-center-x="-14.956349"
          transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
          sodipodi:type="star"
-         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
          id="path1497"
          sodipodi:sides="3"
          sodipodi:cx="596.74072"
@@ -4412,7 +4413,7 @@
          inkscape:transform-center-y="-3.3040441e-05" />
       <text
          xml:space="preserve"
-         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          x="842.71497"
          y="111.05016"
          id="text1501"><tspan
@@ -4420,21 +4421,21 @@
            id="tspan1499"
            x="842.71497"
            y="111.05016"
-           style="stroke-width:1px">mhe</tspan></text>
+           style="stroke-width:2px">mhe</tspan></text>
     </g>
   </g>
   <text
      inkscape:label="actual_label"
      xml:space="preserve"
-     style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-     x="741.62634"
-     y="57.767578"
+     style="font-style:normal;font-weight:normal;font-size:12.7380867px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="509.67926"
+     y="43.42762"
      id="text1527"><tspan
        style="stroke-width:0.63690436px"
        sodipodi:role="line"
        id="tspan1525"
-       x="741.62634"
-       y="57.767578">HMI_LOCAL variables</tspan></text>
+       x="509.67926"
+       y="43.42762">HMI_LOCAL variables</tspan></text>
   <g
      id="g1553"
      transform="matrix(0.5,0,0,0.5,645.20358,-103.15494)">
@@ -4465,35 +4466,35 @@
   </g>
   <text
      xml:space="preserve"
-     style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-     x="902.83728"
-     y="228.60184"
+     style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="590.28473"
+     y="128.84476"
      id="text1557"
      inkscape:label="HMI:Display@.piff"><tspan
        sodipodi:role="line"
        id="tspan1555"
-       x="902.83728"
-       y="228.60184"
+       x="590.28473"
+       y="128.84476"
        style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text>
   <g
-     transform="matrix(0.28590269,0,0,0.28590269,700.70444,166.1427)"
+     transform="matrix(0.14295135,0,0,0.14295135,489.21833,97.61518)"
      id="g1605"
      inkscape:label="HMI:Input@.piff"
-     style="stroke-width:2">
+     style="stroke-width:4">
     <text
        inkscape:label="value"
        id="text1561"
        y="218.24219"
        x="136.32812"
-       style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
        xml:space="preserve"><tspan
-         style="stroke-width:2px"
+         style="stroke-width:4px"
          y="218.24219"
          x="136.32812"
          id="tspan1559"
          sodipodi:role="line">8888</tspan></text>
     <rect
-       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
        id="rect1563"
        width="407.7037"
        height="128"
@@ -4505,16 +4506,16 @@
        transform="translate(-416.52022,170.47452)"
        inkscape:label="+&quot;dhu&quot;"
        id="g1571"
-       style="stroke-width:2">
-      <path
-         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       style="stroke-width:4">
+      <path
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
          inkscape:transform-center-y="-14.956361"
          d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
          id="path1565"
          inkscape:connector-curvature="0" />
       <text
          xml:space="preserve"
-         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          x="733.58197"
          y="111.05016"
          id="text1569"><tspan
@@ -4522,17 +4523,17 @@
            id="tspan1567"
            x="733.58197"
            y="111.05016"
-           style="stroke-width:1px">dhu</tspan></text>
+           style="stroke-width:2px">dhu</tspan></text>
     </g>
     <g
        transform="translate(-416.52022,170.47452)"
        inkscape:label="=&quot;plop&quot;"
        id="g1579"
-       style="stroke-width:2">
+       style="stroke-width:4">
       <path
          transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)"
          sodipodi:type="star"
-         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
          id="path1573"
          sodipodi:sides="3"
          sodipodi:cx="596.74072"
@@ -4551,9 +4552,9 @@
          id="text1577"
          y="111.05016"
          x="633.09552"
-         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          xml:space="preserve"><tspan
-           style="stroke-width:1px"
+           style="stroke-width:2px"
            y="111.05016"
            x="633.09552"
            id="tspan1575"
@@ -4563,7 +4564,7 @@
        transform="translate(-416.52022,170.47452)"
        inkscape:label="=&quot;mhoo&quot;"
        id="g1587"
-       style="stroke-width:2">
+       style="stroke-width:4">
       <path
          inkscape:transform-center-y="-5.9989963e-06"
          d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
@@ -4578,13 +4579,13 @@
          sodipodi:cx="596.74072"
          sodipodi:sides="3"
          id="path1581"
-         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
          sodipodi:type="star"
          transform="rotate(-90,746.45698,-44.543641)"
          inkscape:transform-center-x="14.956364" />
       <text
          xml:space="preserve"
-         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          x="537.25018"
          y="111.05016"
          id="text1585"><tspan
@@ -4592,16 +4593,16 @@
            id="tspan1583"
            x="537.25018"
            y="111.05016"
-           style="stroke-width:1px">mhoo</tspan></text>
+           style="stroke-width:2px">mhoo</tspan></text>
     </g>
     <g
        transform="translate(-416.52022,170.47452)"
        inkscape:label="=&quot;yodl&quot;"
        id="g1595"
-       style="stroke-width:2">
+       style="stroke-width:4">
       <path
          sodipodi:type="star"
-         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
          id="path1589"
          sodipodi:sides="3"
          sodipodi:cx="596.74072"
@@ -4619,7 +4620,7 @@
          inkscape:transform-center-x="-14.956365" />
       <text
          xml:space="preserve"
-         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          x="925.82605"
          y="111.05016"
          id="text1593"><tspan
@@ -4627,13 +4628,13 @@
            id="tspan1591"
            x="925.82605"
            y="111.05016"
-           style="stroke-width:1px">yodl</tspan></text>
+           style="stroke-width:2px">yodl</tspan></text>
     </g>
     <g
        transform="translate(-416.52022,170.47452)"
        inkscape:label="=&quot;mhe&quot;"
        id="g1603"
-       style="stroke-width:2">
+       style="stroke-width:4">
       <path
          inkscape:transform-center-y="-3.3040441e-05"
          d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
@@ -4648,7 +4649,7 @@
          sodipodi:cx="596.74072"
          sodipodi:sides="3"
          id="path1597"
-         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+         style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
          sodipodi:type="star"
          transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
          inkscape:transform-center-x="-14.956349" />
@@ -4656,9 +4657,9 @@
          id="text1601"
          y="111.05016"
          x="842.71497"
-         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          xml:space="preserve"><tspan
-           style="stroke-width:1px"
+           style="stroke-width:2px"
            y="111.05016"
            x="842.71497"
            id="tspan1599"
@@ -4667,13 +4668,13 @@
   </g>
   <text
      id="text1609"
-     y="177.76758"
-     x="741.62634"
-     style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     y="103.42763"
+     x="509.67926"
+     style="font-style:normal;font-weight:normal;font-size:12.7380867px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
      xml:space="preserve"
      inkscape:label="actual_label"><tspan
-       y="177.76758"
-       x="741.62634"
+       y="103.42763"
+       x="509.67926"
        sodipodi:role="line"
        style="stroke-width:0.63690436px"
        id="tspan1611">PAGE_LOCAL variables</tspan></text>
@@ -5822,4 +5823,167 @@
        transform="translate(-573,80.999998)"
        inkscape:label="disabled" />
   </g>
+  <g
+     transform="matrix(0.16718216,0,0,0.16718216,968.79193,20.988849)"
+     inkscape:label="HMI:Input@.range"
+     id="g5222-3"
+     style="stroke-width:1.51188684">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.51188684px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="136.32812"
+       y="218.24219"
+       id="text5208-6"
+       inkscape:label="value"><tspan
+         sodipodi:role="line"
+         id="tspan5206-7"
+         x="136.32812"
+         y="218.24219"
+         style="stroke-width:1.51188684px">8888</tspan></text>
+    <path
+       transform="scale(1,-1)"
+       sodipodi:type="star"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:7.55943441;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       id="path5212-5"
+       sodipodi:sides="3"
+       sodipodi:cx="596.74072"
+       sodipodi:cy="-184.98808"
+       sodipodi:r1="29.912722"
+       sodipodi:r2="14.956361"
+       sodipodi:arg1="0.52359878"
+       sodipodi:arg2="1.5707963"
+       inkscape:flatsided="true"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+       inkscape:transform-center-y="7.4781812"
+       inkscape:label="-1" />
+    <rect
+       inkscape:label="edit"
+       onclick=""
+       y="95.40741"
+       x="139.85185"
+       height="128"
+       width="407.7037"
+       id="rect5214-3"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:7.55943441;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+    <path
+       inkscape:label="+1"
+       inkscape:transform-center-y="-7.4781804"
+       d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+       inkscape:randomized="0"
+       inkscape:rounded="0"
+       inkscape:flatsided="true"
+       sodipodi:arg2="1.5707963"
+       sodipodi:arg1="0.52359878"
+       sodipodi:r2="14.956361"
+       sodipodi:r1="29.912722"
+       sodipodi:cy="136.44444"
+       sodipodi:cx="596.74072"
+       sodipodi:sides="3"
+       id="path5218-5"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:7.55943441;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       sodipodi:type="star" />
+  </g>
+  <g
+     transform="matrix(0.16718216,0,0,0.16718216,1055.8653,20.988849)"
+     inkscape:label="HMI:Input@.position"
+     id="g5222-6"
+     style="stroke-width:1.51188684">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.51188684px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="136.32812"
+       y="218.24219"
+       id="text5208-2"
+       inkscape:label="value"><tspan
+         sodipodi:role="line"
+         id="tspan5206-9"
+         x="136.32812"
+         y="218.24219"
+         style="stroke-width:1.51188684px">8888</tspan></text>
+    <path
+       transform="scale(1,-1)"
+       sodipodi:type="star"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:7.55943441;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       id="path5212-1"
+       sodipodi:sides="3"
+       sodipodi:cx="596.74072"
+       sodipodi:cy="-184.98808"
+       sodipodi:r1="29.912722"
+       sodipodi:r2="14.956361"
+       sodipodi:arg1="0.52359878"
+       sodipodi:arg2="1.5707963"
+       inkscape:flatsided="true"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+       inkscape:transform-center-y="7.4781812"
+       inkscape:label="-1" />
+    <rect
+       inkscape:label="edit"
+       onclick=""
+       y="95.40741"
+       x="139.85185"
+       height="128"
+       width="407.7037"
+       id="rect5214-2"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:7.55943441;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+    <path
+       inkscape:label="+1"
+       inkscape:transform-center-y="-7.4781804"
+       d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+       inkscape:randomized="0"
+       inkscape:rounded="0"
+       inkscape:flatsided="true"
+       sodipodi:arg2="1.5707963"
+       sodipodi:arg1="0.52359878"
+       sodipodi:r2="14.956361"
+       sodipodi:r1="29.912722"
+       sodipodi:cy="136.44444"
+       sodipodi:cx="596.74072"
+       sodipodi:sides="3"
+       id="path5218-7"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:7.55943441;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       sodipodi:type="star" />
+  </g>
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.22850323px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="1019.4838"
+     y="31.481676"
+     id="text887"><tspan
+       sodipodi:role="line"
+       id="tspan885"
+       x="1019.4838"
+       y="31.481676"
+       style="stroke-width:1px">range</tspan></text>
+  <text
+     id="text891"
+     y="31.481676"
+     x="1112.0834"
+     style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.22850323px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     xml:space="preserve"><tspan
+       style="stroke-width:1px"
+       y="31.481676"
+       x="1112.0834"
+       id="tspan889"
+       sodipodi:role="line">position</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.22850323px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="1204.6829"
+     y="31.481676"
+     id="text895"><tspan
+       sodipodi:role="line"
+       id="tspan893"
+       x="1204.6829"
+       y="31.481676"
+       style="stroke-width:1px">notify</tspan></text>
+  <g
+     inkscape:label="HMI:VarInit:50@.position"
+     id="g906" />
+  <g
+     id="g908"
+     inkscape:label="HMI:VarInit:100@.range" />
 </svg>