# HG changeset patch # User Edouard Tisserant # Date 1612261254 -3600 # Node ID f8cba959553f1ca6d776ec0f50e7df076bed32b8 # Parent 229795c03e11ed2c63cd38015a9d27ed69d51910# Parent 7ecaefe38f6ffd35752e08880a8edcd695e4a160 Merged diff -r 7ecaefe38f6f -r f8cba959553f svghmi/detachable_pages.ysl2 --- a/svghmi/detachable_pages.ysl2 Tue Feb 02 10:43:43 2021 +0100 +++ b/svghmi/detachable_pages.ysl2 Tue Feb 02 11:20:54 2021 +0100 @@ -109,7 +109,7 @@ } const "forEach_widgets_ids", "$parsed_widgets/widget[@type = 'ForEach']/@id"; -const "forEach_widgets", "$hmi_elements[@id = $forEach_widgets_ids]"; +const "forEach_widgets", "$hmi_widgets[@id = $forEach_widgets_ids]"; const "in_forEach_widget_ids", "func:refered_elements($forEach_widgets)[not(@id = $forEach_widgets_ids)]/@id"; template "svg:*", mode="page_desc" { @@ -121,7 +121,7 @@ const "page_all_elements", "func:all_related_elements($page)"; - const "all_page_widgets","$hmi_elements[@id = $page_all_elements/@id and @id != $page/@id]"; + const "all_page_widgets","$hmi_widgets[@id = $page_all_elements/@id and @id != $page/@id]"; const "page_managed_widgets","$all_page_widgets[not(@id=$in_forEach_widget_ids)]"; const "page_relative_widgets", "$page_managed_widgets[func:is_descendant_path(func:widget(@id)/path/@value, $desc/path/@value)]"; diff -r 7ecaefe38f6f -r f8cba959553f svghmi/widgets_common.ysl2 --- a/svghmi/widgets_common.ysl2 Tue Feb 02 10:43:43 2021 +0100 +++ b/svghmi/widgets_common.ysl2 Tue Feb 02 11:20:54 2021 +0100 @@ -255,7 +255,7 @@ || } -const "excluded_types", "str:split('Page Lang VarInit')"; +const "excluded_types", "str:split('Page VarInit')"; // Key to filter unique types key "TypesKey", "widget", "@type"; @@ -275,10 +275,11 @@ || const "included_ids","$parsed_widgets/widget[not(@type = $excluded_types) and not(@id = $discardable_elements/@id)]/@id"; +const "hmi_widgets","$hmi_elements[@id = $included_ids]"; emit "declarations:hmi-elements" { | var hmi_widgets = { - apply "$hmi_elements[@id = $included_ids]", mode="hmi_widgets"; + apply "$hmi_widgets", mode="hmi_widgets"; | } } diff -r 7ecaefe38f6f -r f8cba959553f tests/svghmi/svghmi_0@svghmi/svghmi.svg --- a/tests/svghmi/svghmi_0@svghmi/svghmi.svg Tue Feb 02 10:43:43 2021 +0100 +++ b/tests/svghmi/svghmi_0@svghmi/svghmi.svg Tue Feb 02 11:20:54 2021 +0100 @@ -33,48 +33,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -240,631 +49,6 @@ id="stop20535" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -961,41 +91,6 @@ id="stop960" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + inkscape:bbox-nodes="true" /> - - - - - - 0 - 10000 - [value] - - - - - 0 - 10000 - [value] - - - - 5,150 - - - - - - - - - - - 5,150 - - - - - - 5,150 - - - - - - 5,150 - - - - HMI:Meter:[min:max]@path - - clone +stroke color - template (usually out of page)needle has undefinedstroke paint - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https://openclipart.org/detail/205486/voltmeter-and-ammeter - - - [max] - [min] - [max] - [min] - Second point of "needle" labeled SVG path moves along "range" labeled SVG path according to value. Value min and max range is either given as arguments or as "min" and "max" labeled SVG texts, or default to 0...100 if unspecified. - needle - range - needle - range - - - - - - - - - - 65% - - - - - - - - - HMI:CircularBar:[min:max]@path - https://openclipart.org/detail/203239/gauges-vectorbased-superb-quality - - [value] - - 0 - 100 - - [max] - [min] - Inkscape's Arc labeled "path" End angle varies according to value. Arc cannot be closed yet, use wide stroke to fill.Value min and max range is either given as arguments or as "min" and "max" labeled SVG texts, or default to 0...100 if unspecified. - - - - - - - - 65% - - - - - - - - - - - - - 65% - - - - - - - - - - - - - - - HMI:Switch@path - Display only childs of widget's element (a SVG group) who's label match value. - - HMI:SwitchHMI_INT - 1 - 2 - 3 - 42 - 4 - 5 - - HMI:SwitchHMI_STRING - "aa" - "abba" - "mhoo" - "ggg" - "wtf" - "xxx" - - - - - - - - - - - - - - - - - - - - - - - - - - - - HMI:SwitchHMI_INT - 1 - 2 - 3 - 42 - 4 - 5 - - - - - - - - - - - - clone - - - - - - - - - - HMI:Switchcan containother widgets(or clonesof them) - - - - HMI:DropDown:[item0:item1:....]@path - TODO - - - - HMI:Input@path - TODO - - - - HMI:Display@path - TODO - - - - - Home - - - - - - - - - - - - - - - - - - - - - - - - - HMI:Button@path - TODO - - - - HMI:ForEach@path - TODO - - - - HMI:JsonTable@path - TODO - - - - HMI:Page:PageName[@RootPath]HMI:Jump:PageName[@RelativePath]HMI:Back - Pages are full screen, only one is displayed at the same time.If widget's bounding box is included in page bounding box, then widget is part of page.Page change is triggered by HMI:Jump and HMI:Back (TODO: /CURRENTPAGE).HMI:Back takes no parameter and just go back one step in page change history.HMI:Jump can have "inactive", "active" and "disabled" labeled children: - "inactive" is shown when target page is not currently displayed - "active" is shown when target page is currently displayed - "disabled" is shown when relative page's RootPath is set to 0, disabling jump. - When [@RootPath] is given, page is a relative page.When using HMI:Jump to reach a relative page, a compatible [@RelativePath] may be provided.To be compatible, RootPath and RelativePath must both point to same HMI_NODE (i.e same POU).Every widget using a path descendant of RootPath in a relative page is relative.Relative widgets get the RootPath section of their path replaced by RelativePath. - Relative pages - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / - HMI:MyPage@/A/B/C0 - - HMI:Jump:MyPage - - HMI:Jump:MyPage@/A/B/C1 - - HMI:Jump:MyPage@/A/B/C2 - - HMI:Jump:MyPage@/D/E/F - A - B - C0 - C1 - C2 - D - E - F - HMI:Jump:MyPage@/A/B/C0 - G - H - HMI:Widget@/A/B/C0/G - HMI:Widget@/A/B/C0/H - HMI:MyPage@/A/B/C0 - G - H - HMI:Widget@/A/B/C0/G - HMI:Widget@/A/B/C0/H - HMI:MyPage@/A/B/C0 - G - H - HMI:Widget@/A/B/C0/G - HMI:Widget@/A/B/C0/H - HMI:MyPage@/A/B/C0 - G - H - HMI:Widget@/A/B/C0/G - HMI:Widget@/A/B/C0/H - real path: /A/B/C0/G - real path: /A/B/C0/H - real path: /A/B/C1/G - real path: /A/B/C1/H - real path: /A/B/C2/G - real path: /A/B/C3/H - real path: /D/E/F/G - real path: /D/E/F/H - - HMI:SomePage - HMI:Widget@/A/I - HMI:Widget@/D/J - I - J - - HMI:Jump:SomePage - HMI_TREE root - - - HMI_NODE in a POU - HMI_* variable - - - - HMI:KeyPad:HMI_TYPE[:HMI_TYPE...] - KeyPad widget let user draw keyboard for different types of input.It is shown for example when editing a value from HMI:Input widget. - - - HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL - - - - HMI:Keypad:HMI_INT:HMI_REAL - - - - - - - - - - Info - Esc - Shift - Enter - [...] - Keys - 0 + - 9 - - 8 - [...] - q Q - w W - - [...] - , ; - . : - HMI:KeyPad - - Value - - - - - - - - - - Info - Esc - Sign - Enter - [...] - Keys - 9 - 8 - 7 - 6 - 5 - - - - - - - - - - 4 - 3 - [...] - HMI:KeyPad - - Value - - NumDot - - - - - HMI:SliderHMI:CircularSlider - TODO - - - - - - - - TO BE REWRITTEN, DO NOT USE - - - - sel_0 - - - - - HMI:ToggleButton@path - TODO - - - - HMI:Multistate@path - TODO - - - - HMI:CustomHtml@path - TODO - diff -r 7ecaefe38f6f -r f8cba959553f tests/svghmi_widgets/beremiz.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/beremiz.xml Tue Feb 02 11:20:54 2021 +0100 @@ -0,0 +1,5 @@ + + + + + diff -r 7ecaefe38f6f -r f8cba959553f tests/svghmi_widgets/plc.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/plc.xml Tue Feb 02 11:20:54 2021 +0100 @@ -0,0 +1,922 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TargetPressure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TargetPressure + + + + + + + + + + + + + + Sloth + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Pressure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sloth + + + + + + + + + + + Pressure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + strout + + + + + + + TargetPressure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + strin + + + + + + + boolin + + + + + + + + + + + boolout + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Pressure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + floating + + + + + + + Sloth + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + REAL#100.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + 0 + + + + + + + + + + + Sloth + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sloth + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 7ecaefe38f6f -r f8cba959553f tests/svghmi_widgets/py_ext_0@py_ext/baseconfnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/py_ext_0@py_ext/baseconfnode.xml Tue Feb 02 11:20:54 2021 +0100 @@ -0,0 +1,2 @@ + + diff -r 7ecaefe38f6f -r f8cba959553f tests/svghmi_widgets/py_ext_0@py_ext/pyfile.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/py_ext_0@py_ext/pyfile.xml Tue Feb 02 11:20:54 2021 +0100 @@ -0,0 +1,93 @@ + + + + + + + + + + 0 and extra[0] != "": + fAlarms = [alrm for alrm in Alarms if alrm[1].find(extra[0])!=-1] + else: + fAlarms = Alarms + new_range = len(fAlarms) + delta = new_range - visible + new_position = 0 if delta <= 0 else delta if old_position > delta else old_position + new_visible = new_range if delta <= 0 else visible + + visible_alarms = [] + for ts, text, status, alarmid in fAlarms[new_position:new_position + new_visible]: + visible_alarms.append({ + "time": time.ctime(ts), + "text": text, # TODO translate text + "status": status, + "alarmid": alarmid + }) + + return new_range, new_position, visible_alarms + + +]]> + + + + + + + + + + + + + + diff -r 7ecaefe38f6f -r f8cba959553f tests/svghmi_widgets/svghmi_0@svghmi/baseconfnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/svghmi_0@svghmi/baseconfnode.xml Tue Feb 02 11:20:54 2021 +0100 @@ -0,0 +1,2 @@ + + diff -r 7ecaefe38f6f -r f8cba959553f tests/svghmi_widgets/svghmi_0@svghmi/confnode.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/svghmi_0@svghmi/confnode.xml Tue Feb 02 11:20:54 2021 +0100 @@ -0,0 +1,2 @@ + + diff -r 7ecaefe38f6f -r f8cba959553f tests/svghmi_widgets/svghmi_0@svghmi/svghmi.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/svghmi_widgets/svghmi_0@svghmi/svghmi.svg Tue Feb 02 11:20:54 2021 +0100 @@ -0,0 +1,13525 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Home + + + + + + + + + Settings + + + + 8888 + + + + + + + + 8888 + + + + 0 + 10000 + 000 + bar + + SetPoint + Actual + Pressure + + + + nastavljena vrednost + dejanska vrednost + pritisk + Settings + Home + + + + + 0 + 10000 + 000 + €£$¥ + + + 8888 + + + + →0← + + + + -10 + + + + -100 + + + + +100 + + + + +10 + + + 8888 + 8888 + 8888 + + 8888 + + + + dhu + + + + plop + + + + mhoo + + + + yodl + + + + mhe + + + + + + number + + + + + + + + 7 + + + + 4 + + + + 1 + + + + 8 + + + + 5 + + + + 2 + + + + 9 + + + + 6 + + + + 3 + + + + 0 + + + + + Esc + + + + + + + + +/- + + information + + + . + + + + + + + + + Q + + + + W + + + + E + + + + R + + + + T + + + + Y + + + + U + + + + I + + + + O + + + + P + + + + A + + + + S + + + + D + + + + F + + + + G + + + + H + + + + J + + + + K + + + + L + + + + Z + + + + X + + + + C + + + + V + + + + B + + + + N + + + + M + + + + . + : + + + + ; + , + + + + 1 + + + + 2 + + + + 3 + + + + 4 + + + + 5 + + + + 6 + + + + 7 + + + + 8 + + + + 9 + - + + + + 0 + + + + + + + Esc + + + + + + + + + + + + + Caps + Lock + + + + Caps + Lock + + + + text + + + + Shift + + Shift + + + + Shift + + Shift + + + information + + + + + sel_0 + + + + + 8 + + + + + + + + + + up + + + + + + + + + + + + + + + + + + + + + + + + message + + + + OK + + + information + + + + + 0 + 10000 + 000 + bar + + + + + + + + + + + + + + + + + + + + + 8888 + + + + + + + + + 8888 + + + + dhu + + + + plop + + + + mhoo + + + + yodl + + + + mhe + + + 8888 + + + + + + Pump 0 + + + + + + + + Pump 1 + + + + + + + + Pump 2 + + + + + + + + Pump 3 + + + 8888 + 8888 + 8888 + 8888 + + + + + + + + Pump + 8888 + + + + + + + + + + Pump + 8888 + + + + + + + + + + Pump + 8888 + + + + + + + + + + Pump + 8888 + + + + + + +1 + + + + -1 + + + 8888 + Multiple variables + 8888 + + 8888 + + + + dhu + + + + plop + + + + mhoo + + + + yodl + + + + mhe + + + HMI_LOCAL variables + 8888 + + 8888 + + + + dhu + + + + plop + + + + mhoo + + + + yodl + + + + mhe + + + PAGE_LOCAL variables + + + + 0 + 10000 + 000 + bar + + + 8888 + + + + + + + + 8888 + + 8888 + + + + dhu + + + + plop + + + + mhoo + + + + yodl + + + + mhe + + + HMI_LOCAL variables + 8888 + + 8888 + + + + dhu + + + + plop + + + + mhoo + + + + yodl + + + + mhe + + + PAGE_LOCAL variables + 8888 + + 8888 + + + + dhu + + + + plop + + + + mhoo + + + + yodl + + + + mhe + + + HMI_LOCAL variables + 8888 + + 8888 + + + + dhu + + + + plop + + + + mhoo + + + + yodl + + + + mhe + + + PAGE_LOCAL variables + + + + + + + + Alarm Page + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8888 + + + + + + + + + + + + + + + value + value + value + value + + + + + + + + + 8888 + + + + + + 8888 + + + + + range + position + notify + + + 8888 + + + + + + + + trigger + + + + + 8888 + + + ack + + + + disabled + + + + active + + + + alarm + + + Alarm Text + Status + + + + + + Alarms + + + 8888 + + 8888 + + + filter + + + 8888 + + + + dhu + + + + plop + + + + mhoo + + + + yodl + + + + mhe + + + + 8888 + + + + dhu + + + + plop + + + + mhoo + + + + yodl + + + + mhe + + + + + + + + + + Home + + + + + + + + + 0 + 10000 + [value] + + + + + 0 + 10000 + [value] + + + + 5,150 + + + + + + + + + + + 5,150 + + + + + + 5,150 + + + + + + 5,150 + + + + HMI:Meter:[min:max]@path + + clone +stroke color + template (usually out of page)needle has undefinedstroke paint + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + https://openclipart.org/detail/205486/voltmeter-and-ammeter + + + [max] + [min] + [max] + [min] + Second point of "needle" labeled SVG path moves along "range" labeled SVG path according to value. Value min and max range is either given as arguments or as "min" and "max" labeled SVG texts, or default to 0...100 if unspecified. + needle + range + needle + range + + + + + + + + + + 65% + + + + + + + + + HMI:CircularBar:[min:max]@path + https://openclipart.org/detail/203239/gauges-vectorbased-superb-quality + + [value] + + 0 + 100 + + [max] + [min] + Inkscape's Arc labeled "path" End angle varies according to value. Arc cannot be closed yet, use wide stroke to fill.Value min and max range is either given as arguments or as "min" and "max" labeled SVG texts, or default to 0...100 if unspecified. + + + + + + + + 65% + + + + + + + + + + + + + 65% + + + + + + + + + + + + + + + + HMI:Switch@path + Display only childs of widget's element (a SVG group) who's label match value. + + HMI:SwitchHMI_INT + 1 + 2 + 3 + 42 + 4 + 5 + + HMI:SwitchHMI_STRING + "aa" + "abba" + "mhoo" + "ggg" + "wtf" + "xxx" + + + + + + + + + + + + + + + + + + + + + + + + + + + + HMI:SwitchHMI_INT + 1 + 2 + 3 + 42 + 4 + 5 + + + + + + + + + + + + clone + + + + + + + + + + HMI:Switchcan containother widgets(or clonesof them) + + + + HMI:DropDown:[item0:item1:....]@path + TODO + + + + HMI:Input@path + TODO + + + + HMI:Display@path + TODO + + + + + Home + + + + + + + + + + + + + + + + + + + + + + + + + HMI:Button@path + TODO + + + + HMI:ForEach@path + TODO + + + + HMI:JsonTable@path + TODO + + + + HMI:Page:PageName[@RootPath]HMI:Jump:PageName[@RelativePath]HMI:Back + Pages are full screen, only one is displayed at the same time.If widget's bounding box is included in page bounding box, then widget is part of page.Page change is triggered by HMI:Jump and HMI:Back (TODO: /CURRENTPAGE).HMI:Back takes no parameter and just go back one step in page change history.HMI:Jump can have "inactive", "active" and "disabled" labeled children: - "inactive" is shown when target page is not currently displayed - "active" is shown when target page is currently displayed - "disabled" is shown when relative page's RootPath is set to 0, disabling jump. + When [@RootPath] is given, page is a relative page.When using HMI:Jump to reach a relative page, a compatible [@RelativePath] may be provided.To be compatible, RootPath and RelativePath must both point to same HMI_NODE (i.e same POU).Every widget using a path descendant of RootPath in a relative page is relative.Relative widgets get the RootPath section of their path replaced by RelativePath. + Relative pages + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + HMI:MyPage@/A/B/C0 + + HMI:Jump:MyPage + + HMI:Jump:MyPage@/A/B/C1 + + HMI:Jump:MyPage@/A/B/C2 + + HMI:Jump:MyPage@/D/E/F + A + B + C0 + C1 + C2 + D + E + F + HMI:Jump:MyPage@/A/B/C0 + G + H + HMI:Widget@/A/B/C0/G + HMI:Widget@/A/B/C0/H + HMI:MyPage@/A/B/C0 + G + H + HMI:Widget@/A/B/C0/G + HMI:Widget@/A/B/C0/H + HMI:MyPage@/A/B/C0 + G + H + HMI:Widget@/A/B/C0/G + HMI:Widget@/A/B/C0/H + HMI:MyPage@/A/B/C0 + G + H + HMI:Widget@/A/B/C0/G + HMI:Widget@/A/B/C0/H + real path: /A/B/C0/G + real path: /A/B/C0/H + real path: /A/B/C1/G + real path: /A/B/C1/H + real path: /A/B/C2/G + real path: /A/B/C3/H + real path: /D/E/F/G + real path: /D/E/F/H + + HMI:SomePage + HMI:Widget@/A/I + HMI:Widget@/D/J + I + J + + HMI:Jump:SomePage + HMI_TREE root + + + HMI_NODE in a POU + HMI_* variable + + + + + HMI:KeyPad:HMI_TYPE[:HMI_TYPE...] + KeyPad widget let user draw keyboard for different types of input.It is shown for example when editing a value from HMI:Input widget. + + + HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL + + + + HMI:Keypad:HMI_INT:HMI_REAL + + + + + + + + + + Info + Esc + Shift + Enter + [...] + Keys + 0 + + 9 - + 8 + [...] + q Q + w W + + [...] + , ; + . : + HMI:KeyPad + + Value + + + + + + + + + + Info + Esc + Sign + Enter + [...] + Keys + 9 + 8 + 7 + 6 + 5 + + + + + + + + + + 4 + 3 + [...] + HMI:KeyPad + + Value + + NumDot + + + + + HMI:SliderHMI:CircularSlider + TODO + + + + + + + + TO BE REWRITTEN, DO NOT USE + + + + sel_0 + + + + + HMI:ToggleButton@path + TODO + + + + HMI:Multistate@path + TODO + + + + HMI:CustomHtml@path + TODO + +