# HG changeset patch # User Edouard Tisserant <edouard@beremiz.fr> # Date 1728635910 -7200 # Node ID 59a331f80858e01aa20194e8ec7f39377d0984b5 # Parent a3cf9f635952bdc3010f734ac79cfa432c62fff3 SVGHMI: remove widgets deprecated since long diff -r a3cf9f635952 -r 59a331f80858 svghmi/widget_animate.ysl2 --- a/svghmi/widget_animate.ysl2 Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -// widget_animate.ysl2 - -widget_class("Animate") { - || - frequency = 5; - speed = 0; - start = false; - widget_center = undefined; - - dispatch(value) { - this.speed = value / 5; - - //reconfigure animation - this.request_animate(); - } - - animate(){ - // change animation properties - for(let child of this.element.children){ - if(child.nodeName.startsWith("animate")){ - if(this.speed != 0 && !this.start){ - this.start = true; - this.element.beginElement(); - } - - if(this.speed > 0){ - child.setAttribute("dur", this.speed+"s"); - } - else if(this.speed < 0){ - child.setAttribute("dur", (-1)*this.speed+"s"); - } - else{ - this.start = false; - this.element.endElement(); - } - } - } - } - - init() { - let widget_pos = this.element.getBBox(); - this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)]; - } - || -} - diff -r a3cf9f635952 -r 59a331f80858 svghmi/widget_animaterotation.ysl2 --- a/svghmi/widget_animaterotation.ysl2 Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -// widget_animaterotation.ysl2 - -widget_desc("AnimateRotation") { - longdesc - || - AnimateRotation - DEPRECATED, do not use. - Doesn't follow WYSIWYG principle, and forces user to add animateTransform tag in SVG (using inkscape XML editor for exemple) - || - - shortdesc > AnimateRotation - DEPRECATED - - path name="speed" accepts="HMI_INT,HMI_REAL" > speed - -} - -widget_class("AnimateRotation") { - || - frequency = 5; - speed = 0; - widget_center = undefined; - - dispatch(value) { - this.speed = value / 5; - - //reconfigure animation - this.request_animate(); - } - - animate(){ - // change animation properties - // TODO : rewrite with proper es6 - for(let child of this.element.children){ - if(child.nodeName == "animateTransform"){ - if(this.speed > 0){ - child.setAttribute("dur", this.speed+"s"); - child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); - child.setAttribute("to", "360 "+this.widget_center[0]+" "+this.widget_center[1]); - } - else if(this.speed < 0){ - child.setAttribute("dur", (-1)*this.speed+"s"); - child.setAttribute("from", "360 "+this.widget_center[0]+" "+this.widget_center[1]); - child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); - } - else{ - child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); - child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); - } - } - } - } - - init() { - let widget_pos = this.element.getBBox(); - this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)]; - } - || -} - diff -r a3cf9f635952 -r 59a331f80858 svghmi/widget_circularslider.ysl2 --- a/svghmi/widget_circularslider.ysl2 Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,264 +0,0 @@ -// widget_circuralslider.ysl2 - -widget_desc("CircularSlider") { - longdesc - || - CircularSlider - DEPRECATED, to be replaced by PathSlider - This widget moves "handle" labeled group along "range" labeled - arc, according to value of the single accepted variable. - - If "min" a "max" labeled texts are provided, or if first and second - argument are given, then they are used as respective minimum and maximum - value. Otherwise, value is expected to be in between 0 and 100. - - If "value" labeled text is found, then its content is replaced by value. - During drag, "setpoint" labeled group is moved to position defined by user - while "handle" reflects current value from variable. - || - - shortdesc > CircularSlider - DEPRECATED - - arg name="min" count="optional" accepts="int,real" > minimum value - - arg name="min" count="optional" accepts="int,real" > maximum value - - // TODO: add printf-like format - - path name="value" accepts="HMI_INT,HMI_REAL" > Value to display - -} - -widget_class("CircularSlider") - || - frequency = 5; - range = undefined; - circle = undefined; - handle_pos = undefined; - curr_value = 0; - drag = false; - enTimer = false; - last_drag = false; - - dispatch(value) { - let [min,max,start,totallength] = this.range; - //save current value inside widget - this.curr_value = value; - - //check if in range - if (this.curr_value > max){ - this.curr_value = max; - this.apply_hmi_value(0, this.curr_value); - } - else if (this.curr_value < min){ - this.curr_value = min; - this.apply_hmi_value(0, this.curr_value); - } - - if(this.value_elt) - this.value_elt.textContent = String(value); - - //don't update if draging and setpoint ghost doesn't exist - if(!this.drag || (this.setpoint_elt != undefined)){ - this.update_DOM(value, this.handle_elt); - } - } - - update_DOM(value, elt){ - let [min,max,totalDistance] = this.range; - let length = Math.max(0,Math.min((totalDistance),(Number(value)-min)/(max-min)*(totalDistance))); - let tip = this.range_elt.getPointAtLength(length); - elt.setAttribute('transform',"translate("+(tip.x-this.handle_pos.x)+","+(tip.y-this.handle_pos.y)+")"); - - // show or hide ghost if exists - if(this.setpoint_elt != undefined){ - if(this.last_drag!= this.drag){ - if(this.drag){ - this.setpoint_elt.setAttribute("style", this.setpoint_style); - }else{ - this.setpoint_elt.setAttribute("style", "display:none"); - } - this.last_drag = this.drag; - } - } - } - - on_release(evt) { - //unbind events - window.removeEventListener("touchmove", this.on_bound_drag, true); - window.removeEventListener("mousemove", this.on_bound_drag, true); - - window.removeEventListener("mouseup", this.bound_on_release, true) - window.removeEventListener("touchend", this.bound_on_release, true); - window.removeEventListener("touchcancel", this.bound_on_release, true); - - //reset drag flag - if(this.drag){ - this.drag = false; - } - - // get final position - this.update_position(evt); - } - - on_drag(evt){ - //ignore drag event for X amount of time and if not selected - if(this.enTimer && this.drag){ - this.update_position(evt); - - //reset timer - this.enTimer = false; - setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100); - } - } - - update_position(evt){ - if(this.drag && this.enTimer){ - var svg_dist = 0; - - //calculate center of widget in html - // --TODO maybe it would be better to bind this part to window change size event ??? - let [xdest,ydest,svgWidth,svgHeight] = page_desc[current_visible_page].bbox; - let [cX, cY,fiStart,fiEnd,minMax,x1,y1,width,height] = this.circle; - let htmlCirc = this.range_elt.getBoundingClientRect(); - let cxHtml = ((htmlCirc.right-htmlCirc.left)/(width)*(cX-x1))+htmlCirc.left; - let cyHtml = ((htmlCirc.bottom-htmlCirc.top)/(height)*(cY-y1))+htmlCirc.top; - - - //get mouse coordinates - let mouseX = undefined; - let mouseY = undefined; - if (evt.type.startsWith("touch")){ - mouseX = Math.ceil(evt.touches[0].clientX); - mouseY = Math.ceil(evt.touches[0].clientY); - } - else{ - mouseX = evt.pageX; - mouseY = evt.pageY; - } - - //calculate angle - let fi = Math.atan2(cyHtml-mouseY, mouseX-cxHtml); - - // transform from 0 to 2PI - if (fi > 0){ - fi = 2*Math.PI-fi; - } - else{ - fi = -fi; - } - - //offset it to 0 - fi = fi - fiStart; - if (fi < 0){ - fi = fi + 2*Math.PI; - } - - //get handle distance from mouse position - if(fi<fiEnd){ - this.curr_value=(fi)/(fiEnd)*(this.range[1]-this.range[0]); - } - else if(fiEnd<fi && fi<fiEnd+minMax){ - this.curr_value = this.range[1]; - } - else{ - this.curr_value = this.range[0]; - } - - //apply value to hmi - this.apply_hmi_value(0, Math.ceil(this.curr_value)); - - //redraw handle - this.request_animate(); - - } - - } - - animate(){ - // redraw handle on screen refresh - // check if setpoint(ghost) handle exsist otherwise update main handle - if(this.setpoint_elt != undefined){ - this.update_DOM(this.curr_value, this.setpoint_elt); - } - else{ - this.update_DOM(this.curr_value, this.handle_elt); - } - } - - on_select(evt){ - //enable drag flag and timer - this.drag = true; - this.enTimer = true; - - //bind events - window.addEventListener("touchmove", this.on_bound_drag, true); - window.addEventListener("mousemove", this.on_bound_drag, true); - - window.addEventListener("mouseup", this.bound_on_release, true); - window.addEventListener("touchend", this.bound_on_release, true); - window.addEventListener("touchcancel", this.bound_on_release, true); - - //update postion on mouse press - this.update_position(evt); - - //prevent next events - evt.stopPropagation(); - } - - init() { - //get min max - let min = this.min_elt ? - Number(this.min_elt.textContent) : - this.args.length >= 1 ? this.args[0] : 0; - let max = this.max_elt ? - Number(this.max_elt.textContent) : - this.args.length >= 2 ? this.args[1] : 100; - - //fiStart ==> offset - let fiStart = Number(this.range_elt.getAttribute('sodipodi:start')); - let fiEnd = Number(this.range_elt.getAttribute('sodipodi:end')); - fiEnd = fiEnd - fiStart; - - //fiEnd ==> size of angle - if (fiEnd < 0){ - fiEnd = 2*Math.PI + fiEnd; - } - - //min max barrier angle - let minMax = (2*Math.PI - fiEnd)/2; - - //get parameters from svg - let cX = Number(this.range_elt.getAttribute('sodipodi:cx')); - let cY = Number(this.range_elt.getAttribute('sodipodi:cy')); - this.range_elt.style.strokeMiterlimit="0"; //eliminates some weird border around html object - this.range = [min, max,this.range_elt.getTotalLength()]; - let cPos = this.range_elt.getBBox(); - this.handle_pos = this.range_elt.getPointAtLength(0); - this.circle = [cX, cY,fiStart,fiEnd,minMax,cPos.x,cPos.y,cPos.width,cPos.height]; - - //bind functions - this.bound_on_select = this.on_select.bind(this); - this.bound_on_release = this.on_release.bind(this); - this.on_bound_drag = this.on_drag.bind(this); - - this.handle_elt.addEventListener("mousedown", this.bound_on_select); - this.element.addEventListener("mousedown", this.bound_on_select); - this.element.addEventListener("touchstart", this.bound_on_select); - //touch recognised as page drag without next command - document.body.addEventListener("touchstart", function(e){}, false); - - //save ghost style - //save ghost style - if(this.setpoint_elt != undefined){ - this.setpoint_style = this.setpoint_elt.getAttribute("style"); - this.setpoint_elt.setAttribute("style", "display:none"); - } - - } - || - -widget_defs("CircularSlider") { - labels("handle range"); - optional_labels("value min max setpoint"); - |, -} diff -r a3cf9f635952 -r 59a331f80858 svghmi/widget_slider.ysl2 --- a/svghmi/widget_slider.ysl2 Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,357 +0,0 @@ -// widget_slider.ysl2 - -widget_desc("Slider") { - longdesc - || - Slider - DEPRECATED - use ScrollBar or PathSlider instead - || - - shortdesc > Slider - DEPRECATED - use ScrollBar instead - - path name="value" accepts="HMI_INT" > value - path name="range" accepts="HMI_INT" > range - path name="visible" accepts="HMI_INT" > visible - -} - -widget_class("Slider") - || - frequency = 5; - range = undefined; - handle_orig = undefined; - scroll_size = undefined; - scroll_range = 0; - scroll_visible = 7; - min_size = 0.07; - fi = undefined; - curr_value = 0; - drag = false; - enTimer = false; - handle_click = undefined; - last_drag = false; - - dispatch(value,oldval, index) { - if (index == 0){ - let [min,max,start,totallength] = this.range; - //save current value inside widget - this.curr_value = value; - - //check if in range - if (this.curr_value > max){ - this.curr_value = max; - this.apply_hmi_value(0, this.curr_value); - } - else if (this.curr_value < min){ - this.curr_value = min; - this.apply_hmi_value(0, this.curr_value); - } - - if(this.value_elt) - this.value_elt.textContent = String(value); - } - else if(index == 1){ - this.scroll_range = value; - this.set_scroll(); - } - else if(index == 2){ - this.scroll_visible = value; - this.set_scroll(); - } - - //don't update if draging and setpoint ghost doesn't exist - if(!this.drag || (this.setpoint_elt != undefined)){ - this.update_DOM(this.curr_value, this.handle_elt); - } - } - - set_scroll(){ - //check if range is bigger than visible and set scroll size - if(this.scroll_range > this.scroll_visible){ - this.scroll_size = this.scroll_range - this.scroll_visible; - this.range[0] = 0; - this.range[1] = this.scroll_size; - } - else{ - this.scroll_size = 1; - this.range[0] = 0; - this.range[1] = 1; - } - } - - update_DOM(value, elt){ - let [min,max,start,totallength] = this.range; - // check if handle is resizeable - if (this.scroll_size != undefined){ //size changes - //get parameters - let length = Math.max(min,Math.min(max,(Number(value)-min)*max/(max-min))); - let tip = this.range_elt.getPointAtLength(length); - let handle_min = totallength*this.min_size; - - let step = 1; - //check if range is bigger than max displayed and recalculate step - if ((totallength/handle_min) < (max-min+1)){ - step = (max-min+1)/(totallength/handle_min-1); - } - - let kx,ky,offseY,offseX = undefined; - //scale on x or y axes - if (this.fi > 0.75){ - //get scale factor - if(step > 1){ - ky = handle_min/this.handle_orig.height; - } - else{ - ky = (totallength-handle_min*(max-min))/this.handle_orig.height; - } - kx = 1; - //get 0 offset to stay inside range - offseY = start.y - (this.handle_orig.height + this.handle_orig.y) * ky; - offseX = 0; - //get distance from value - tip.y =this.range_elt.getPointAtLength(0).y - length/step *handle_min; - } - else{ - //get scale factor - if(step > 1){ - kx = handle_min/this.handle_orig.width; - } - else{ - kx = (totallength-handle_min*(max-min))/this.handle_orig.width; - } - ky = 1; - //get 0 offset to stay inside range - offseX = start.x - (this.handle_orig.x * kx); - offseY = 0; - //get distance from value - tip.x =this.range_elt.getPointAtLength(0).x + length/step *handle_min; - } - elt.setAttribute('transform',"matrix("+(kx)+" 0 0 "+(ky)+" "+(tip.x-start.x+offseX)+" "+(tip.y-start.y+offseY)+")"); - } - else{ //size stays the same - let length = Math.max(0,Math.min(totallength,(Number(value)-min)*totallength/(max-min))); - let tip = this.range_elt.getPointAtLength(length); - elt.setAttribute('transform',"translate("+(tip.x-start.x)+","+(tip.y-start.y)+")"); - } - - // show or hide ghost if exists - if(this.setpoint_elt != undefined){ - if(this.last_drag!= this.drag){ - if(this.drag){ - this.setpoint_elt.setAttribute("style", this.setpoint_style); - }else{ - this.setpoint_elt.setAttribute("style", "display:none"); - } - this.last_drag = this.drag; - } - } - } - - on_release(evt) { - //unbind events - window.removeEventListener("touchmove", this.on_bound_drag, true); - window.removeEventListener("mousemove", this.on_bound_drag, true); - - window.removeEventListener("mouseup", this.bound_on_release, true); - window.removeEventListener("touchend", this.bound_on_release, true); - window.removeEventListener("touchcancel", this.bound_on_release, true); - - //reset drag flag - if(this.drag){ - this.drag = false; - } - - // get final position - this.update_position(evt); - - } - - on_drag(evt){ - //ignore drag event for X amount of time and if not selected - if(this.enTimer && this.drag){ - this.update_position(evt); - - //reset timer - this.enTimer = false; - setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100); - } - } - - update_position(evt){ - var html_dist = 0; - let [min,max,start,totallength] = this.range; - - //calculate size of widget in html - var range_borders = this.range_elt.getBoundingClientRect(); - var [minX,minY,maxX,maxY] = [range_borders.left,range_borders.bottom,range_borders.right,range_borders.top]; - var range_length = Math.sqrt( range_borders.height*range_borders.height + range_borders.width*range_borders.width ); - - //get range and mouse coordinates - var mouseX = undefined; - var mouseY = undefined; - if (evt.type.startsWith("touch")){ - mouseX = Math.ceil(evt.touches[0].clientX); - mouseY = Math.ceil(evt.touches[0].clientY); - } - else{ - mouseX = evt.pageX; - mouseY = evt.pageY; - } - - // calculate position - if (this.handle_click){ //if clicked on handle - let moveDist = 0, resizeAdd = 0; - let range_percent = 1; - - //set paramters for resizeable handle - if (this.scroll_size != undefined){ - // add one more object to stay inside range - resizeAdd = 1; - - //chack if range is bigger than display option and - // calculate percent of range with out handle - if(((max/(max*this.min_size)) < (max-min+1))){ - range_percent = 1-this.min_size; - } - else{ - range_percent = 1-(max-max*this.min_size*(max-min))/max; - } - } - - //calculate value difference on x or y axis - if(this.fi > 0.7){ - moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((this.handle_click[1]-mouseY)/Math.sin(this.fi)); - } - else{ - moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((mouseX-this.handle_click[0])/Math.cos(this.fi)); - } - - this.curr_value = Math.ceil(this.handle_click[2] + moveDist); - } - else{ //if clicked on widget - //get handle distance from mouse position - if (minX > mouseX && minY < mouseY){ - html_dist = 0; - } - else if (maxX < mouseX && maxY > mouseY){ - html_dist = range_length; - } - else{ - if(this.fi > 0.7){ - html_dist = (minY - mouseY)/Math.sin(this.fi); - } - else{ - html_dist = (mouseX - minX)/Math.cos(this.fi); - } - } - //calculate distance - this.curr_value=Math.ceil((html_dist/range_length)*(this.range[1]-this.range[0])+this.range[0]); - } - - //check if in range and apply - if (this.curr_value > max){ - this.curr_value = max; - } - else if (this.curr_value < min){ - this.curr_value = min; - } - this.apply_hmi_value(0, this.curr_value); - - //redraw handle - this.request_animate(); - - } - - animate(){ - // redraw handle on screen refresh - // check if setpoint(ghost) handle exsist otherwise update main handle - if(this.setpoint_elt != undefined){ - this.update_DOM(this.curr_value, this.setpoint_elt); - } - else{ - this.update_DOM(this.curr_value, this.handle_elt); - } - } - - on_select(evt){ - //enable drag flag and timer - this.drag = true; - this.enTimer = true; - - //bind events - window.addEventListener("touchmove", this.on_bound_drag, true); - window.addEventListener("mousemove", this.on_bound_drag, true); - - window.addEventListener("mouseup", this.bound_on_release, true); - window.addEventListener("touchend", this.bound_on_release, true); - window.addEventListener("touchcancel", this.bound_on_release, true); - - // check if handle was pressed - if (evt.currentTarget == this.handle_elt){ - //get mouse position on the handle - let mouseX = undefined; - let mouseY = undefined; - if (evt.type.startsWith("touch")){ - mouseX = Math.ceil(evt.touches[0].clientX); - mouseY = Math.ceil(evt.touches[0].clientY); - } - else{ - mouseX = evt.pageX; - mouseY = evt.pageY; - } - //save coordinates and orig value - this.handle_click = [mouseX,mouseY,this.curr_value]; - } - else{ - // get new handle position and reset if handle was not pressed - this.handle_click = undefined; - this.update_position(evt); - } - - //prevent next events - evt.stopPropagation(); - - } - - - init() { - //set min max value if not defined - let min = this.min_elt ? - Number(this.min_elt.textContent) : - this.args.length >= 1 ? this.args[0] : 0; - let max = this.max_elt ? - Number(this.max_elt.textContent) : - this.args.length >= 2 ? this.args[1] : 100; - - - // save initial parameters - this.range_elt.style.strokeMiterlimit="0"; - this.range = [min, max, this.range_elt.getPointAtLength(0),this.range_elt.getTotalLength()]; - let start = this.range_elt.getPointAtLength(0); - let end = this.range_elt.getPointAtLength(this.range_elt.getTotalLength()); - this.fi = Math.atan2(start.y-end.y, end.x-start.x); - this.handle_orig = this.handle_elt.getBBox(); - - //bind functions - this.bound_on_select = this.on_select.bind(this); - this.bound_on_release = this.on_release.bind(this); - this.on_bound_drag = this.on_drag.bind(this); - - this.handle_elt.addEventListener("mousedown", this.bound_on_select); - this.element.addEventListener("mousedown", this.bound_on_select); - this.element.addEventListener("touchstart", this.bound_on_select); - //touch recognised as page drag without next command - document.body.addEventListener("touchstart", function(e){}, false); - - //save ghost style - if(this.setpoint_elt != undefined){ - this.setpoint_style = this.setpoint_elt.getAttribute("style"); - this.setpoint_elt.setAttribute("style", "display:none"); - } - - } - || - -widget_defs("Slider") { - labels("handle range"); - optional_labels("value min max setpoint"); -} diff -r a3cf9f635952 -r 59a331f80858 tests/projects/svghmi_v2/beremiz.xml --- a/tests/projects/svghmi_v2/beremiz.xml Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -<?xml version='1.0' encoding='utf-8'?> -<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284"> - <TargetType/> - <Libraries Enable_SVGHMI_Library="true"/> -</BeremizRoot> diff -r a3cf9f635952 -r 59a331f80858 tests/projects/svghmi_v2/plc.xml --- a/tests/projects/svghmi_v2/plc.xml Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,585 +0,0 @@ -<?xml version='1.0' encoding='utf-8'?> -<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201"> - <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/> - <contentHeader name="Unnamed" modificationDateTime="2020-09-30T13:04:27"> - <coordinateInfo> - <fbd> - <scaling x="5" y="5"/> - </fbd> - <ld> - <scaling x="0" y="0"/> - </ld> - <sfc> - <scaling x="0" y="0"/> - </sfc> - </coordinateInfo> - </contentHeader> - <types> - <dataTypes/> - <pous> - <pou name="MainStuff" pouType="program"> - <interface> - <localVars> - <variable name="TargetPressure"> - <type> - <derived name="HMI_INT"/> - </type> - </variable> - <variable name="selection"> - <type> - <derived name="HMI_INT"/> - </type> - </variable> - <variable name="Pump0"> - <type> - <derived name="PumpControl"/> - </type> - </variable> - <variable name="TestButton"> - <type> - <derived name="HMI_BOOL"/> - </type> - </variable> - <variable name="TestLocal"> - <type> - <BOOL/> - </type> - </variable> - <variable name="Multistate"> - <type> - <derived name="HMI_INT"/> - </type> - </variable> - <variable name="Radiostate"> - <type> - <derived name="HMI_INT"/> - </type> - </variable> - <variable name="Toggle"> - <type> - <derived name="HMI_BOOL"/> - </type> - </variable> - <variable name="Toggle1"> - <type> - <derived name="HMI_BOOL"/> - </type> - </variable> - <variable name="Toggle2"> - <type> - <derived name="HMI_BOOL"/> - </type> - </variable> - <variable name="MultistateExt"> - <type> - <INT/> - </type> - </variable> - <variable name="Speed"> - <type> - <derived name="HMI_INT"/> - </type> - </variable> - </localVars> - </interface> - <body> - <FBD> - <block localId="4" typeName="PumpControl" instanceName="Pump0" executionOrderId="0" height="40" width="127"> - <position x="595" y="50"/> - <inputVariables> - <variable formalParameter="TargetPressure"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="5"> - <position x="595" y="80"/> - <position x="570" y="80"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables/> - </block> - <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false"> - <position x="445" y="65"/> - <connectionPointOut> - <relPosition x="125" y="15"/> - </connectionPointOut> - <expression>TargetPressure</expression> - </inVariable> - <inVariable localId="6" executionOrderId="0" height="25" width="90" negated="false"> - <position x="130" y="60"/> - <connectionPointOut> - <relPosition x="90" y="10"/> - </connectionPointOut> - <expression>TestButton</expression> - </inVariable> - <outVariable localId="7" executionOrderId="0" height="25" width="85" negated="false"> - <position x="495" y="220"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="6"> - <position x="495" y="230"/> - <position x="367" y="230"/> - <position x="367" y="70"/> - <position x="220" y="70"/> - </connection> - </connectionPointIn> - <expression>TestLocal</expression> - </outVariable> - <inVariable localId="1" executionOrderId="0" height="25" width="115" negated="false"> - <position x="175" y="355"/> - <connectionPointOut> - <relPosition x="115" y="10"/> - </connectionPointOut> - <expression>Multistate</expression> - </inVariable> - <outVariable localId="8" executionOrderId="0" height="25" width="115" negated="false"> - <position x="495" y="355"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="1"> - <position x="495" y="365"/> - <position x="290" y="365"/> - </connection> - </connectionPointIn> - <expression>MultistateExt</expression> - </outVariable> - </FBD> - </body> - </pou> - <pou name="PumpControl" pouType="functionBlock"> - <interface> - <localVars> - <variable name="Pump"> - <type> - <derived name="HMI_NODE"/> - </type> - </variable> - <variable name="Pressure"> - <type> - <derived name="HMI_INT"/> - </type> - </variable> - </localVars> - <inputVars> - <variable name="TargetPressure"> - <type> - <INT/> - </type> - </variable> - </inputVars> - <localVars> - <variable name="Sloth"> - <type> - <derived name="HMI_INT"/> - </type> - </variable> - <variable name="boolout"> - <type> - <derived name="HMI_BOOL"/> - </type> - </variable> - <variable name="boolin"> - <type> - <derived name="HMI_BOOL"/> - </type> - <initialValue> - <simpleValue value="True"/> - </initialValue> - </variable> - <variable name="strout"> - <type> - <derived name="HMI_STRING"/> - </type> - </variable> - <variable name="strin"> - <type> - <derived name="HMI_STRING"/> - </type> - <initialValue> - <simpleValue value="blup"/> - </initialValue> - </variable> - </localVars> - </interface> - <body> - <FBD> - <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false"> - <position x="150" y="100"/> - <connectionPointOut> - <relPosition x="125" y="15"/> - </connectionPointOut> - <expression>TargetPressure</expression> - </inVariable> - <block localId="6" typeName="ADD" executionOrderId="0" height="60" width="65"> - <position x="405" y="65"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="7" formalParameter="OUT"> - <position x="405" y="115"/> - <position x="360" y="115"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="65" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="1" executionOrderId="0" height="30" width="75" negated="false"> - <position x="150" y="135"/> - <connectionPointOut> - <relPosition x="75" y="15"/> - </connectionPointOut> - <expression>Pressure</expression> - </inVariable> - <block localId="7" typeName="SUB" executionOrderId="0" height="60" width="65"> - <position x="295" y="85"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="5"> - <position x="295" y="115"/> - <position x="275" y="115"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="1"> - <position x="295" y="135"/> - <position x="285" y="135"/> - <position x="285" y="150"/> - <position x="225" y="150"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="65" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="2" executionOrderId="0" height="30" width="60" negated="false"> - <position x="240" y="190"/> - <connectionPointOut> - <relPosition x="60" y="15"/> - </connectionPointOut> - <expression>Sloth</expression> - </inVariable> - <outVariable localId="3" executionOrderId="0" height="30" width="75" negated="false"> - <position x="435" y="205"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="8" formalParameter="OUT"> - <position x="435" y="220"/> - <position x="410" y="220"/> - </connection> - </connectionPointIn> - <expression>Pressure</expression> - </outVariable> - <block localId="8" typeName="DIV" executionOrderId="0" height="60" width="65"> - <position x="345" y="190"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="2"> - <position x="345" y="220"/> - <position x="335" y="220"/> - <position x="335" y="205"/> - <position x="300" y="205"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="9"> - <position x="345" y="240"/> - <position x="300" y="240"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="65" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="9" executionOrderId="0" height="30" width="60" negated="false"> - <position x="240" y="225"/> - <connectionPointOut> - <relPosition x="60" y="15"/> - </connectionPointOut> - <expression>100</expression> - </inVariable> - <block localId="10" typeName="CONCAT" executionOrderId="0" height="60" width="65"> - <position x="360" y="345"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="13" formalParameter="OUT"> - <position x="360" y="375"/> - <position x="330" y="375"/> - <position x="330" y="332"/> - <position x="440" y="332"/> - <position x="440" y="300"/> - <position x="430" y="300"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="14"> - <position x="360" y="395"/> - <position x="322" y="395"/> - <position x="322" y="400"/> - <position x="285" y="400"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="65" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <outVariable localId="11" executionOrderId="0" height="30" width="58" negated="false"> - <position x="495" y="355"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="10" formalParameter="OUT"> - <position x="495" y="370"/> - <position x="450" y="370"/> - <position x="450" y="375"/> - <position x="425" y="375"/> - </connection> - </connectionPointIn> - <expression>strout</expression> - </outVariable> - <inVariable localId="12" executionOrderId="0" height="30" width="125" negated="false"> - <position x="145" y="285"/> - <connectionPointOut> - <relPosition x="125" y="15"/> - </connectionPointOut> - <expression>TargetPressure</expression> - </inVariable> - <block localId="13" typeName="INT_TO_STRING" executionOrderId="0" height="40" width="115"> - <position x="315" y="270"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="12"> - <position x="315" y="300"/> - <position x="270" y="300"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="115" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="14" executionOrderId="0" height="30" width="50" negated="false"> - <position x="235" y="385"/> - <connectionPointOut> - <relPosition x="50" y="15"/> - </connectionPointOut> - <expression>strin</expression> - </inVariable> - <inVariable localId="15" executionOrderId="0" height="30" width="60" negated="false"> - <position x="690" y="210"/> - <connectionPointOut> - <relPosition x="60" y="15"/> - </connectionPointOut> - <expression>boolin</expression> - </inVariable> - <outVariable localId="16" executionOrderId="0" height="30" width="70" negated="false"> - <position x="915" y="240"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="17" formalParameter="OUT"> - <position x="915" y="255"/> - <position x="880" y="255"/> - </connection> - </connectionPointIn> - <expression>boolout</expression> - </outVariable> - <block localId="17" typeName="AND" executionOrderId="0" height="60" width="65"> - <position x="815" y="225"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="15"> - <position x="815" y="255"/> - <position x="762" y="255"/> - <position x="762" y="225"/> - <position x="750" y="225"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="21" formalParameter="OUT"> - <position x="815" y="275"/> - <position x="750" y="275"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="65" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="18" executionOrderId="0" height="30" width="75" negated="false"> - <position x="455" y="260"/> - <connectionPointOut> - <relPosition x="75" y="15"/> - </connectionPointOut> - <expression>Pressure</expression> - </inVariable> - <block localId="19" typeName="MOD" executionOrderId="0" height="60" width="65"> - <position x="585" y="245"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="18"> - <position x="585" y="275"/> - <position x="530" y="275"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="20"> - <position x="585" y="295"/> - <position x="555" y="295"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="65" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="20" executionOrderId="0" height="30" width="20" negated="false"> - <position x="535" y="280"/> - <connectionPointOut> - <relPosition x="20" y="15"/> - </connectionPointOut> - <expression>2</expression> - </inVariable> - <block localId="21" typeName="EQ" executionOrderId="0" height="60" width="65"> - <position x="685" y="245"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="19" formalParameter="OUT"> - <position x="685" y="275"/> - <position x="650" y="275"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="22"> - <position x="685" y="295"/> - <position x="670" y="295"/> - <position x="670" y="330"/> - <position x="650" y="330"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="65" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="22" executionOrderId="0" height="30" width="20" negated="false"> - <position x="630" y="315"/> - <connectionPointOut> - <relPosition x="20" y="15"/> - </connectionPointOut> - <expression>0</expression> - </inVariable> - <inVariable localId="4" executionOrderId="0" height="30" width="60" negated="false"> - <position x="510" y="80"/> - <connectionPointOut> - <relPosition x="60" y="15"/> - </connectionPointOut> - <expression>Sloth</expression> - </inVariable> - </FBD> - </body> - </pou> - </pous> - </types> - <instances> - <configurations> - <configuration name="config"> - <resource name="resource1"> - <task name="task0" priority="0" interval="T#20ms"> - <pouInstance name="instance0" typeName="MainStuff"/> - </task> - </resource> - </configuration> - </configurations> - </instances> -</project> diff -r a3cf9f635952 -r 59a331f80858 tests/projects/svghmi_v2/py_ext_0@py_ext/baseconfnode.xml --- a/tests/projects/svghmi_v2/py_ext_0@py_ext/baseconfnode.xml Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -<?xml version='1.0' encoding='utf-8'?> -<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="py_ext_0"/> diff -r a3cf9f635952 -r 59a331f80858 tests/projects/svghmi_v2/py_ext_0@py_ext/pyfile.xml --- a/tests/projects/svghmi_v2/py_ext_0@py_ext/pyfile.xml Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -<?xml version='1.0' encoding='utf-8'?> -<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <variables> - <variable name="SomePLCglobal" type="HMI_STRING" initial="'blaf'" onchange="MyOnChangeFunc"/> - </variables> - <globals> - <xhtml:p><![CDATA[ - -def MyOnChangeFunc(changed_var_name): - print changed_var_name + ": " + getattr(PLCGlobals, changed_var_name) - -]]></xhtml:p> - </globals> - <init> - <xhtml:p><![CDATA[ -]]></xhtml:p> - </init> - <cleanup> - <xhtml:p><![CDATA[ -]]></xhtml:p> - </cleanup> - <start> - <xhtml:p><![CDATA[ -]]></xhtml:p> - </start> - <stop> - <xhtml:p><![CDATA[ -]]></xhtml:p> - </stop> -</PyFile> diff -r a3cf9f635952 -r 59a331f80858 tests/projects/svghmi_v2/svghmi_0@svghmi/baseconfnode.xml --- a/tests/projects/svghmi_v2/svghmi_0@svghmi/baseconfnode.xml Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -<?xml version='1.0' encoding='utf-8'?> -<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/> diff -r a3cf9f635952 -r 59a331f80858 tests/projects/svghmi_v2/svghmi_0@svghmi/confnode.xml --- a/tests/projects/svghmi_v2/svghmi_0@svghmi/confnode.xml Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -<?xml version='1.0' encoding='utf-8'?> -<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="xdg-open http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/> diff -r a3cf9f635952 -r 59a331f80858 tests/projects/svghmi_v2/svghmi_0@svghmi/svghmi.svg --- a/tests/projects/svghmi_v2/svghmi_0@svghmi/svghmi.svg Fri Oct 11 10:34:15 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1619 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="1280" - height="720" - viewBox="0 0 1280 720" - version="1.1" - id="hmi0" - sodipodi:docname="svghmi.svg" - inkscape:version="0.92.5 (0.92.5+68)" - inkscape:label="Layer"> - <metadata - id="metadata4542"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title /> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs2"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="-688.56326 : 510.71991 : 1" - inkscape:vp_y="0 : 1306.0642 : 0" - inkscape:vp_z="662.62627 : 323.72015 : 1" - inkscape:persp3d-origin="147.31778 : 353.99223 : 1" - id="perspective258" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="-457.78124 : 416.79285 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="576.76945 : 273.61475 : 1" - inkscape:persp3d-origin="182.21876 : 296.79285 : 1" - id="perspective503" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="-104 : 357 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="1272 : 385 : 1" - inkscape:persp3d-origin="536 : 237 : 1" - id="perspective445" /> - <linearGradient - inkscape:collect="always" - id="linearGradient962"> - <stop - style="stop-color:#ff3000;stop-opacity:1;" - offset="0" - id="stop958" /> - <stop - style="stop-color:#0022ff;stop-opacity:1" - offset="1" - id="stop960" /> - </linearGradient> - <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker926" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow2Lend"> - <path - transform="matrix(-1.1,0,0,-1.1,-1.1,0)" - d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" - style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" - id="path924" - inkscape:connector-curvature="0" /> - </marker> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient962" - id="linearGradient1407" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.5,0,0,0.03945396,73.07865,3.7693345)" - x1="113.38908" - y1="-62.210247" - x2="113.38908" - y2="4.0725975" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="-470.06413 : 851.30353 : 1" - inkscape:vp_y="0 : 1319.7648 : 0" - inkscape:vp_z="895.29941 : 662.3421 : 1" - inkscape:persp3d-origin="374.58537 : 692.93174 : 1" - id="perspective503-6" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:document-units="px" - inkscape:current-layer="hmi0" - showgrid="false" - units="px" - inkscape:zoom="1" - inkscape:cx="379.07861" - inkscape:cy="265.09897" - inkscape:window-width="2503" - inkscape:window-height="1416" - inkscape:window-x="57" - inkscape:window-y="24" - inkscape:window-maximized="1" - showguides="true" - inkscape:guide-bbox="true" /> - <rect - style="color:#000000;fill:#4d4d4d" - id="page0" - width="1280" - height="720" - x="0" - y="0" - inkscape:label="HMI:Page:Home" - sodipodi:insensitive="true" /> - <g - inkscape:label="HMI:Slider@/SPEED" - transform="matrix(7.5590552,0,0,7.5590552,-780.78539,561.61779)" - id="g110-0"> - <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;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.52916664;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 113.38908,2.2017068 V -62.210247" - id="path90-9" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" - inkscape:label="range" /> - <path - inkscape:label="handle" - sodipodi:nodetypes="cc" - inkscape:connector-curvature="0" - id="path92-3" - d="m 113.32293,4.2048893 v -5.230241" - style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient1407);stroke-width:5.28146696;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="115.07632" - y="9.3424692" - id="text96-6" - inkscape:label="min"><tspan - sodipodi:role="line" - id="tspan94-0" - x="115.07632" - y="9.3424692" - style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text> - <text - id="text100-6" - y="-64.195457" - x="113.27539" - style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve" - inkscape:label="max"><tspan - style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" - y="-64.195457" - x="113.27539" - sodipodi:role="line" - id="tspan1409">10</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-24.72547" - y="-121.97556" - id="text104-6" - inkscape:label="value" - transform="rotate(90)"><tspan - sodipodi:role="line" - x="-24.72547" - y="-121.97556" - style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" - id="tspan102-1">000</tspan></text> - </g> - <g - id="g4557" - inkscape:label="HMI:Input@/SOMEPLCGLOBAL"> - <text - inkscape:label="value" - transform="scale(1.1201068,0.89277202)" - id="text2398" - y="479.46704" - x="247.53484" - style="font-style:normal;font-weight:normal;font-size:124.08008575px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.10200214px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve"><tspan - style="stroke-width:3.10200214px" - y="479.46704" - x="247.53484" - id="tspan2396" - sodipodi:role="line">Test</tspan></text> - <rect - style="opacity:0.18600003;fill:#de2cc9;fill-opacity:1;stroke:none;stroke-width:1.11699021" - id="rect4559" - width="323.85489" - height="132.93608" - x="257.10974" - y="328.97858" - inkscape:label="edit" /> - <rect - style="opacity:0;fill:#de2cc9;fill-opacity:1;stroke:none;stroke-width:3.45667744" - id="rect4561" - width="580.42413" - height="339.91623" - x="699.57587" - y="380.08374" - inkscape:label="key_pos" /> - </g> - <g - transform="matrix(1.5213157,0,0,1.4848913,-82.472173,789.79964)" - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4278" - inkscape:label="HMI:Keypad:HMI_STRING"> - <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" - id="rect1006-3" - inkscape:connector-curvature="0" - inkscape:label="Background" - sodipodi:nodetypes="ccccc" /> - <path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path185" - d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z" - inkscape:connector-curvature="0" - inkscape:label="Space" /> - <g - id="g4380" - inkscape:label="Keys" - style="stroke-width:0.47631353" - transform="translate(0,-19.076386)"> - <g - id="g4283" - inkscape:label="q Q" - style="stroke-width:0.47631353" - transform="translate(0,-9.5381931)"> - <path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path41" - d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - inkscape:connector-curvature="0" /> - <text - x="99.378708" - y="138.28395" - id="text203" - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928514)">Q</text> - </g> - <g - id="g4337" - inkscape:label="w W" - style="stroke-width:0.47631353" - transform="translate(0,-9.5381931)"> - <path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path43" - d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - inkscape:connector-curvature="0" /> - <text - x="127.0709" - y="138.28395" - id="text207" - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928514)">W</text> - </g> - <g - id="g4332" - inkscape:label="e E" - style="stroke-width:0.47631353" - transform="translate(0,-9.5381931)"> - <path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path45" - d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - inkscape:connector-curvature="0" /> - <text - x="159.70854" - y="138.28395" - id="text211" - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928514)">E</text> - </g> - <g - id="g4326" - inkscape:label="r R" - style="stroke-width:0.47631353" - transform="translate(0,-9.5381931)"> - <path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path47" - d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - inkscape:connector-curvature="0" /> - <text - x="188.39003" - y="138.28395" - id="text215" - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928514)">R</text> - </g> - <g - id="g4321" - inkscape:label="t T" - style="stroke-width:0.47631353" - transform="translate(0,-9.5381931)"> - <path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path49" - d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /> - <text - x="219.04961" - y="138.28395" - id="text219" - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928514)">T</text> - </g> - <g - id="g4316" - inkscape:label="y Y" - style="stroke-width:0.47631353" - transform="translate(0,-9.5381931)"> - <path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path51" - d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /> - <text - x="248.72017" - y="138.28395" - id="text223" - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928514)">Y</text> - </g> - <g - id="g4311" - inkscape:label="u U" - style="stroke-width:0.47631353" - transform="translate(0,-9.5381931)"> - <path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path53" - d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /> - <text - x="278.39075" - y="138.28395" - id="text227" - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928514)">U</text> - </g> - <g - id="g4306" - inkscape:label="i I" - style="stroke-width:0.47631353" - transform="translate(0,-9.5381931)"> - <path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path55" - d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /> - <text - x="311.02859" - y="138.28395" - id="text231" - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928514)">I</text> - </g> - <g - id="g4301" - inkscape:label="o O" - style="stroke-width:0.47631353" - transform="translate(0,-9.5381931)"> - <path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path57" - d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /> - <text - x="336.74319" - y="138.28395" - id="text235" - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928514)">O</text> - </g> - <g - id="g4296" - inkscape:label="p P" - style="stroke-width:0.47631353" - transform="translate(0,-9.5381931)"> - <path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path59" - d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /> - <text - x="367.40256" - y="138.28395" - id="text239" - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928514)">P</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4511" - inkscape:label="a A"> - <path - inkscape:connector-curvature="0" - d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" - id="path65" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text243" - y="163.99854" - x="107.29005" - transform="scale(1.0007154,0.99928514)">A</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4516" - inkscape:label="s S"> - <path - inkscape:connector-curvature="0" - d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" - id="path67" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text247" - y="163.99854" - x="137.95012" - transform="scale(1.0007154,0.99928514)">S</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4521" - inkscape:label="d D"> - <path - inkscape:connector-curvature="0" - d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" - id="path69" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text251" - y="163.99854" - x="166.63159" - transform="scale(1.0007154,0.99928514)">D</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4526" - inkscape:label="f F"> - <path - inkscape:connector-curvature="0" - d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" - id="path71" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text255" - y="163.99854" - x="197.29166" - transform="scale(1.0007154,0.99928514)">F</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4531" - inkscape:label="g G"> - <path - inkscape:connector-curvature="0" - d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" - id="path73" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text259" - y="163.99854" - x="225.97284" - transform="scale(1.0007154,0.99928514)">G</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4536" - inkscape:label="h H"> - <path - inkscape:connector-curvature="0" - d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" - id="path75" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text263" - y="163.99854" - x="255.64342" - transform="scale(1.0007154,0.99928514)">H</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4541" - inkscape:label="j J"> - <path - inkscape:connector-curvature="0" - d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" - id="path77" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text267" - y="163.99854" - x="287.29208" - transform="scale(1.0007154,0.99928514)">J</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4546" - inkscape:label="k K"> - <path - inkscape:connector-curvature="0" - d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" - id="path79" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text271" - y="163.99854" - x="314.98465" - transform="scale(1.0007154,0.99928514)">K</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4551" - inkscape:label="l L"> - <path - inkscape:connector-curvature="0" - d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" - id="path81" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text275" - y="163.99854" - x="345.64444" - transform="scale(1.0007154,0.99928514)">L</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4586" - inkscape:label="z Z" - transform="translate(0,9.5381929)"> - <path - inkscape:connector-curvature="0" - d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" - id="path87-3" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text279" - y="188.72411" - x="119.15855" - transform="scale(1.0007154,0.99928514)">Z</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4581" - inkscape:label="x X" - transform="translate(0,9.5381929)"> - <path - inkscape:connector-curvature="0" - d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" - id="path89-6" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text283" - y="188.72411" - x="148.82933" - transform="scale(1.0007154,0.99928514)">X</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4576" - inkscape:label="c C" - transform="translate(0,9.5381929)"> - <path - inkscape:connector-curvature="0" - d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" - id="path91-7" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text287" - y="188.72411" - x="178.50011" - transform="scale(1.0007154,0.99928514)">C</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4571" - inkscape:label="v V" - transform="translate(0,9.5381929)"> - <path - inkscape:connector-curvature="0" - d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z" - id="path195" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text291" - y="188.72411" - x="208.16988" - transform="scale(1.0007154,0.99928514)">V</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4566" - inkscape:label="b B" - transform="translate(0,9.5381929)"> - <path - inkscape:connector-curvature="0" - d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" - id="path93" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text295" - y="188.72411" - x="237.84096" - transform="scale(1.0007154,0.99928514)">B</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4561" - inkscape:label="n N" - transform="translate(0,9.5381929)"> - <path - inkscape:connector-curvature="0" - d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" - id="path95" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text299" - y="188.72411" - x="267.51193" - transform="scale(1.0007154,0.99928514)">N</text> - </g> - <g - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4556" - inkscape:label="m M" - transform="translate(0,9.5381929)"> - <path - inkscape:connector-curvature="0" - d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" - id="path97" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text303" - y="188.72411" - x="296.1933" - transform="scale(1.0007154,0.99928514)">M</text> - </g> - <g - id="g4818" - inkscape:label=". :" - style="stroke-width:0.47631353" - transform="translate(0,9.5381929)"> - <path - inkscape:connector-curvature="0" - d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" - id="path101" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - transform="scale(1.0007154,0.99928513)" - style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" - id="text719" - y="189.66107" - x="359.58276">.</text> - <text - x="359.58276" - y="181.64532" - id="text4834" - style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928512)">:</text> - </g> - <g - id="g4813" - inkscape:label=", ;" - style="stroke-width:0.47631353" - transform="translate(0,9.5381929)"> - <path - inkscape:connector-curvature="0" - d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" - id="path99" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" - id="text727" - y="181.64532" - x="330.00806" - transform="scale(1.0007154,0.99928512)">;</text> - <text - style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" - y="189.66107" - x="330.00806" - transform="scale(1.0007154,0.99928512)" - id="text4826">,</text> - </g> - <g - style="stroke-width:0.47631353" - inkscape:label="1" - id="g2845" - transform="translate(-13.353469,-45.783327)"> - <path - inkscape:connector-curvature="0" - d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - id="path2839" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text2841" - y="138.28395" - x="101.07153" - transform="scale(1.0007154,0.99928513)">1</text> - </g> - <g - style="stroke-width:0.47631353" - inkscape:label="2" - id="g2853" - transform="translate(-13.353469,-45.783327)"> - <path - inkscape:connector-curvature="0" - d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - id="path2847" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text2849" - y="138.28395" - x="130.18704" - transform="scale(1.0007154,0.99928513)">2</text> - </g> - <g - inkscape:label="3" - id="g2861" - style="stroke-width:0.47631353" - transform="translate(-13.353469,-45.783327)"> - <path - inkscape:connector-curvature="0" - d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - id="path2855" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text2857" - y="138.28395" - x="159.70854" - transform="scale(1.0007154,0.99928514)">3</text> - </g> - <g - id="g2957" - inkscape:label="4" - transform="translate(0,-19.076386)"> - <path - inkscape:connector-curvature="0" - d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z" - id="path2865" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text2867" - y="111.55791" - x="176.39188" - transform="scale(1.0007154,0.99928514)">4</text> - </g> - <g - id="g2962" - inkscape:label="5" - transform="translate(0,-19.076386)"> - <path - inkscape:connector-curvature="0" - d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2873" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text2875" - y="111.55791" - x="205.70567" - transform="scale(1.0007154,0.99928514)">5</text> - </g> - <g - id="g2967" - inkscape:label="6" - transform="translate(0,-19.076386)"> - <path - inkscape:connector-curvature="0" - d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2881" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text2883" - y="111.55791" - x="236.15851" - transform="scale(1.0007154,0.99928514)">6</text> - </g> - <g - id="g2972" - inkscape:label="7" - transform="translate(0,-19.076386)"> - <path - inkscape:connector-curvature="0" - d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2889" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text2891" - y="111.55791" - x="266.06564" - transform="scale(1.0007154,0.99928514)">7</text> - </g> - <g - id="g2977" - inkscape:label="8" - transform="translate(0,-19.076386)"> - <path - inkscape:connector-curvature="0" - d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2897" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text2899" - y="111.55791" - x="295.08231" - transform="scale(1.0007154,0.99928514)">8</text> - </g> - <g - id="g2982" - inkscape:label="9 -" - transform="translate(0,-19.076386)"> - <path - inkscape:connector-curvature="0" - d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2905" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text2907" - y="111.55791" - x="325.05408" - transform="scale(1.0007154,0.99928514)">9</text> - <text - transform="scale(1.0007154,0.99928511)" - x="335.72681" - y="102.42173" - id="text806" - style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">-</text> - </g> - <g - id="g2987" - inkscape:label="0 +" - transform="translate(0,-19.076386)"> - <path - inkscape:connector-curvature="0" - d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2913" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <text - style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text2915" - y="111.55791" - x="355.05984" - transform="scale(1.0007154,0.99928514)">0</text> - <text - transform="scale(1.0007154,0.99928511)" - style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" - id="text804" - y="102.42173" - x="365.30151">+</text> - </g> - </g> - <g - transform="translate(335.89988,-58.934803)" - id="g3544" - inkscape:label="Esc" - style="stroke-width:0.47631353"> - <path - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path105" - d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z" - inkscape:connector-curvature="0" - sodipodi:nodetypes="sssssssss" /> - <text - transform="scale(1.0007154,0.99928512)" - style="font-weight:normal;font-size:9.37966251px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" - id="text469" - y="130.02028" - x="59.288635">Esc</text> - </g> - <g - inkscape:label="Enter" - id="g4291" - style="stroke-width:0.47631353" - transform="translate(0,-19.076386)"> - <path - sodipodi:nodetypes="sssssssss" - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path3616" - d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" - inkscape:connector-curvature="0" /> - <path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;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:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z" - transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)" - id="path6545" - inkscape:connector-curvature="0" /> - </g> - <g - inkscape:label="BackSpace" - id="g4287" - style="fill-rule:evenodd;stroke-width:0.47631353" - transform="translate(2.3648311e-6,-28.614579)"> - <path - sodipodi:nodetypes="sssssssss" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path3624" - d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" - inkscape:connector-curvature="0" /> - <path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;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:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z" - transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)" - id="path11623-1-0" - inkscape:connector-curvature="0" /> - </g> - <g - id="g934" - inkscape:label="CapsLock"> - <g - inkscape:label="inactive" - id="g942" - style="display:inline;fill-rule:evenodd;stroke-width:0.47631353" - transform="translate(0,-19.076386)"> - <path - sodipodi:nodetypes="sssssssss" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path936-3" - d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" - inkscape:connector-curvature="0" /> - <text - x="69.789322" - y="156.71973" - id="text938-5" - style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" - transform="scale(1.0007154,0.99928515)">Caps</text> - <text - x="69.789322" - y="166.5585" - id="text940" - style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823" - transform="scale(1.0007154,0.99928515)">Lock</text> - </g> - <g - transform="translate(0,-19.076386)" - style="fill-rule:evenodd;stroke-width:0.47631353" - id="g4429" - inkscape:label="active"> - <path - inkscape:connector-curvature="0" - d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" - id="path199" - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:nodetypes="sssssssss" /> - <text - transform="scale(1.0007154,0.99928515)" - style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" - id="text647" - y="156.71973" - x="69.789322">Caps</text> - <text - transform="scale(1.0007154,0.99928515)" - style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823" - id="text651" - y="166.5585" - x="69.789322">Lock</text> - </g> - </g> - <rect - 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:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;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="rect2130" - width="361.89996" - height="30.150299" - x="64.024956" - y="15.771065" - rx="3.8152773" - ry="3.8152773" - inkscape:label="Field" /> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;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:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="72.50132" - y="38.296417" - id="text1309" - inkscape:label="Value"><tspan - sodipodi:role="line" - id="tspan1307" - x="72.50132" - y="38.296417" - style="text-align:start;text-anchor:start;stroke-width:0.47690967px">text</tspan></text> - <g - id="g437" - inkscape:label="Shift"> - <g - id="g421" - inkscape:label="inactive"> - <path - inkscape:connector-curvature="0" - d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" - id="path910" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:nodetypes="sssssssss" /> - <text - style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826" - id="text912" - y="177.90059" - x="392.55679" - transform="scale(1.0007154,0.99928513)">Shift</text> - <path - sodipodi:nodetypes="sssssssss" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path856" - d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" - inkscape:connector-curvature="0" /> - <text - x="75.85218" - y="177.90059" - id="text858" - style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826" - transform="scale(1.0007154,0.99928513)">Shift</text> - </g> - <g - id="g413" - inkscape:label="active"> - <path - sodipodi:nodetypes="sssssssss" - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path551" - d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" - inkscape:connector-curvature="0" /> - <text - transform="scale(1.0007154,0.99928513)" - x="392.55679" - y="177.90059" - id="text629" - style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;stroke-width:0.36866826">Shift</text> - <path - inkscape:connector-curvature="0" - d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" - id="path879" - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:nodetypes="sssssssss" /> - <text - transform="scale(1.0007154,0.99928513)" - style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826" - id="text881" - y="177.90059" - x="75.85218">Shift</text> - </g> - </g> - <text - transform="scale(0.96824588,1.0327955)" - id="text471" - y="12.333657" - x="252.9579" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;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;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve" - inkscape:label="Info"><tspan - style="stroke-width:0.30784383px" - y="12.333657" - x="252.9579" - id="tspan469" - sodipodi:role="line">information</tspan></text> - <rect - style="opacity:0.18600003;fill:#de2cc9;fill-opacity:1;stroke:none;stroke-width:0.31677353" - id="rect4563" - width="381.45959" - height="14.110301" - x="54.211086" - y="1.2654642" - inkscape:label="position" /> - </g> - <g - inkscape:label="HMI:Slider@/PUMP0/SLOTH" - transform="matrix(7.5590552,0,0,7.5590552,-248.554,584.0829)" - id="g110-0-9"> - <g - inkscape:label="setpoint" - style="opacity:0.5;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.76565915" - inkscape:corner7="-0.15304809 : -0.15652183 : 0.051043755 : 1" - inkscape:corner0="-0.13109479 : -0.13697746 : 0 : 1" - inkscape:perspectiveID="#perspective258" - id="g256" - sodipodi:type="inkscape:box3d"> - <path - style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - points="69.054145,5.4029493 71.910946,3.7246414 71.910946,0.053890203 69.054145,1.5165601 " - d="M 69.054145,1.5165601 V 5.4029493 L 71.910946,3.7246414 V 0.0538902 Z" - inkscape:box3dsidetype="6" - id="path244" - sodipodi:type="inkscape:box3dside" /> - <path - style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - points="72.352867,6.8282124 75.092002,5.0278603 71.910946,3.7246414 69.054145,5.4029493 " - d="M 69.054145,5.4029493 72.352867,6.8282124 75.092002,5.0278603 71.910946,3.7246414 Z" - inkscape:box3dsidetype="13" - id="path246" - sodipodi:type="inkscape:box3dside" /> - <path - style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - points="75.092002,1.2673703 75.092002,5.0278603 71.910946,3.7246414 71.910946,0.053890203 " - d="m 71.910946,0.0538902 3.181056,1.2134801 v 3.76049 L 71.910946,3.7246414 Z" - inkscape:box3dsidetype="11" - id="path248" - sodipodi:type="inkscape:box3dside" /> - <path - style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - points="72.352867,2.8410867 75.092002,1.2673703 71.910946,0.053890203 69.054145,1.5165601 " - d="M 69.054145,1.5165601 72.352867,2.8410867 75.092002,1.2673703 71.910946,0.0538902 Z" - inkscape:box3dsidetype="5" - id="path250" - sodipodi:type="inkscape:box3dside" /> - <path - style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - points="72.352867,6.8282124 75.092002,5.0278603 75.092002,1.2673703 72.352867,2.8410867 " - d="m 72.352867,2.8410867 v 3.9871257 l 2.739135,-1.8003521 v -3.76049 z" - inkscape:box3dsidetype="14" - id="path252" - sodipodi:type="inkscape:box3dside" /> - <path - style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - points="72.352867,2.8410867 72.352867,6.8282124 69.054145,5.4029493 69.054145,1.5165601 " - d="m 69.054145,1.5165601 3.298722,1.3245266 V 6.8282124 L 69.054145,5.4029493 Z" - inkscape:box3dsidetype="3" - id="path254" - sodipodi:type="inkscape:box3dside" /> - </g> - <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;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.52375954;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 71.94894,3.6581855 79.3256,0.040092" - id="path90-9-3" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" - inkscape:label="range" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="68.771873" - y="5.501111" - id="text96-6-0" - inkscape:label="min"><tspan - sodipodi:role="line" - id="tspan94-0-62" - x="68.771873" - y="5.501111" - style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text> - <text - id="text100-6-6" - y="5.501111" - x="159.67337" - style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve" - inkscape:label="max"><tspan - style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px" - y="5.501111" - x="159.67337" - sodipodi:role="line" - id="tspan1409-1">1000</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:7.78479624px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.19461991px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-115.32294" - y="-9.0188799" - id="text104-6-8" - inkscape:label="value" - transform="scale(-1)"><tspan - sodipodi:role="line" - x="-115.32294" - y="-9.0188799" - style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.19461991px" - id="tspan102-1-7">000</tspan></text> - <g - sodipodi:type="inkscape:box3d" - id="g930" - inkscape:perspectiveID="#perspective503" - inkscape:corner0="-0.13109479 : -0.13697746 : 0 : 1" - inkscape:corner7="-0.15304809 : -0.15652183 : 0.051043755 : 1" - style="fill:#ff0000;fill-opacity:1;stroke:none" - inkscape:label="handle" - transform="translate(0.01,0.01)"> - <path - sodipodi:type="inkscape:box3dside" - id="path932" - inkscape:box3dsidetype="6" - d="M 69.751604,1.9575481 V 4.9331975 L 71.93894,3.6481857 V 0.8376415 Z" - points="69.751604,4.9331975 71.93894,3.6481857 71.93894,0.8376415 69.751604,1.9575481 " - style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:type="inkscape:box3dside" - id="path940" - inkscape:box3dsidetype="13" - d="M 69.751604,4.9331975 72.2773,6.0244633 74.374544,4.6460073 71.93894,3.6481857 Z" - points="72.2773,6.0244633 74.374544,4.6460073 71.93894,3.6481857 69.751604,4.9331975 " - style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:type="inkscape:box3dside" - id="path942" - inkscape:box3dsidetype="11" - d="m 71.93894,0.8376415 2.435604,0.9291122 V 4.6460073 L 71.93894,3.6481857 Z" - points="74.374544,1.7667537 74.374544,4.6460073 71.93894,3.6481857 71.93894,0.8376415 " - style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:type="inkscape:box3dside" - id="path934" - inkscape:box3dsidetype="5" - d="M 69.751604,1.9575481 72.2773,2.971684 74.374544,1.7667537 71.93894,0.8376415 Z" - points="72.2773,2.971684 74.374544,1.7667537 71.93894,0.8376415 69.751604,1.9575481 " - style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:type="inkscape:box3dside" - id="path938" - inkscape:box3dsidetype="14" - d="m 72.2773,2.971684 v 3.0527793 l 2.097244,-1.378456 V 1.7667537 Z" - points="72.2773,6.0244633 74.374544,4.6460073 74.374544,1.7667537 72.2773,2.971684 " - style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:type="inkscape:box3dside" - id="path936" - inkscape:box3dsidetype="3" - d="M 69.751604,1.9575481 72.2773,2.971684 V 6.0244633 L 69.751604,4.9331975 Z" - points="72.2773,2.971684 72.2773,6.0244633 69.751604,4.9331975 69.751604,1.9575481 " - style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - </g> - </g> - <g - id="g1292-3" - inkscape:label="HMI:Input@/RADIOSTATE" - transform="matrix(0.94144976,0,0,1.7212489,176.35468,-2117.077)"> - <g - id="g2530" - inkscape:label="=3"> - <rect - style="display:inline;fill:#0009ff;fill-opacity:1;stroke:none;stroke-width:0.24259248" - id="rect1273-6-3" - width="57.391823" - height="24.148804" - x="230.03636" - y="1238.2637" - inkscape:label="3" /> - <g - transform="translate(-213.152,55.750293)" - id="g2520-5" - inkscape:label="HMI:Switch@/RADIOSTATE" - style="fill:#0009ff;fill-opacity:1"> - <rect - inkscape:label="3" - y="1206.6622" - x="443.18835" - height="24.148754" - width="57.39183" - id="rect1273-6-9-9-9" - style="display:inline;fill:#0009ff;fill-opacity:1;stroke:none;stroke-width:0.24259226" /> - </g> - </g> - <g - id="g2527" - inkscape:label="=2"> - <rect - style="display:inline;fill:#00ffed;fill-opacity:1;stroke:none;stroke-width:0.24259254" - id="rect1273-6-56" - width="57.391857" - height="24.148804" - x="313.84549" - y="1238.2637" - inkscape:label="2" /> - <g - transform="translate(-303.62283,32.70105)" - id="g2520-2" - inkscape:label="HMI:Switch@/RADIOSTATE"> - <rect - inkscape:label="2" - y="1229.7114" - x="617.46832" - height="24.148754" - width="57.39183" - id="rect1273-6-9-9-0" - style="display:inline;fill:#00ffed;fill-opacity:1;stroke:none;stroke-width:0.24259226" /> - </g> - </g> - <g - id="g2524" - inkscape:label="=1"> - <rect - style="display:inline;fill:#3eff00;fill-opacity:1;stroke:none;stroke-width:0.24182089" - id="rect1273-6-2" - width="57.027344" - height="24.148796" - x="146.22725" - y="1238.2637" - inkscape:label="1" /> - <g - transform="translate(-213.152,55.750293)" - id="g2520-23" - inkscape:label="HMI:Switch@/RADIOSTATE"> - <rect - inkscape:label="1" - y="1206.6622" - x="359.37924" - height="24.148754" - width="57.39183" - id="rect1273-6-9-9-7" - style="display:inline;fill:#3eff00;fill-opacity:1;stroke:none;stroke-width:0.24259226" /> - </g> - </g> - <g - id="g2501" - inkscape:label="=0" - transform="translate(-260.62575)"> - <rect - inkscape:label="0" - y="1238.2637" - x="323.04385" - height="24.148754" - width="57.39183" - id="rect1273-6-9" - style="display:inline;fill:#ffea00;fill-opacity:1;stroke:none;stroke-width:0.24259225" /> - <g - id="g2520" - inkscape:label="HMI:Switch@/RADIOSTATE"> - <rect - inkscape:label="0" - y="1262.4125" - x="323.04385" - height="24.148754" - width="57.39183" - id="rect1273-6-9-9" - style="display:inline;fill:#ffea00;fill-opacity:1;stroke:none;stroke-width:0.24259226" /> - </g> - </g> - </g> - <g - id="g1047" - inkscape:label="HMI:CircularBar@/PUMP0/SLOTH" - transform="matrix(0.39840034,0,0,0.35920948,-97.955902,106.13488)"> - <path - inkscape:label="range" - sodipodi:open="true" - d="M 1079.626,411.60913 A 184.25998,167.44942 0 0 1 874.51345,308.78336 184.25998,167.44942 0 0 1 946.20137,106.11681 184.25998,167.44942 0 0 1 1178.8257,131.16507" - sodipodi:end="5.5191826" - sodipodi:start="1.3860423" - sodipodi:ry="167.44942" - sodipodi:rx="184.25998" - sodipodi:cy="247.00946" - sodipodi:cx="1045.7766" - sodipodi:type="arc" - id="path1044" - style="opacity:1;fill:none;fill-opacity:1;stroke:#fe00dc;stroke-width:22.07197189;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:90.1384964px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="1046.8701" - y="258.16129" - id="text1051" - transform="scale(0.91814752,1.0891496)" - inkscape:label="value"><tspan - sodipodi:role="line" - id="tspan1049" - x="1046.8701" - y="258.16129" - style="fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-opacity:1">000</tspan></text> - <path - inkscape:label="path" - sodipodi:open="true" - d="M 1083.68,410.87778 A 184.25998,167.44942 0 0 1 875.42544,310.83196 184.25998,167.44942 0 0 1 945.58759,106.47662 184.25998,167.44942 0 0 1 1179.4956,131.8038" - sodipodi:end="5.524452" - sodipodi:start="1.3636114" - sodipodi:ry="167.44942" - sodipodi:rx="184.25998" - sodipodi:cy="247.00946" - sodipodi:cx="1045.7766" - sodipodi:type="arc" - id="path1044-3" - style="opacity:1;fill:none;fill-opacity:1;stroke:#00fff1;stroke-width:40;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - </g> - <g - id="g1047-6" - inkscape:label="HMI:CircularSlider@/PUMP0/SLOTH" - transform="matrix(0.45707797,0,0,0.45707797,33.744118,80.994747)"> - <path - inkscape:label="range" - d="M 970.29569,399.76446 A 184.25998,167.44942 0 0 1 866.26395,284.77467 184.25998,167.44942 0 0 1 904.10823,139.93753" - sodipodi:end="3.8353474" - sodipodi:start="1.9928597" - sodipodi:ry="167.44942" - sodipodi:rx="184.25998" - sodipodi:cy="247.00946" - sodipodi:cx="1045.7766" - sodipodi:type="arc" - id="path1044-7" - style="opacity:1;fill:none;fill-opacity:1;stroke:#fe00dc;stroke-width:22.07197189;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - sodipodi:open="true" /> - <g - sodipodi:type="inkscape:box3d" - id="g930-2" - inkscape:perspectiveID="#perspective503-6" - inkscape:corner0="-0.086129988 : -0.14445971 : 0 : 1" - inkscape:corner7="-0.10808329 : -0.16400408 : 0.051043755 : 1" - style="fill:#ff0000;fill-opacity:1;stroke:none" - inkscape:label="handle" - inkscape:transform-center-x="8" - inkscape:transform-center-y="98"> - <path - sodipodi:type="inkscape:box3dside" - id="path932-9" - inkscape:box3dsidetype="6" - d="m 919.8592,371.09875 v 61.75093 l 51.05152,-25.59855 v -58.48432 z" - points="919.8592,432.84968 970.91072,407.25113 970.91072,348.76681 919.8592,371.09875 " - style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:type="inkscape:box3dside" - id="path940-1" - inkscape:box3dsidetype="13" - d="m 919.8592,432.84968 49.77112,22.08624 49.54588,-27.39007 -48.26548,-20.29472 z" - points="969.63032,454.93592 1019.1762,427.54585 970.91072,407.25113 919.8592,432.84968 " - style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:type="inkscape:box3dside" - id="path942-2" - inkscape:box3dsidetype="11" - d="m 970.91072,348.76681 48.26548,18.93313 v 59.84591 l -48.26548,-20.29472 z" - points="1019.1762,367.69994 1019.1762,427.54585 970.91072,407.25113 970.91072,348.76681 " - style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:type="inkscape:box3dside" - id="path934-7" - inkscape:box3dsidetype="5" - d="m 919.8592,371.09875 49.77112,20.56633 49.54588,-23.96514 -48.26548,-18.93313 z" - points="969.63032,391.66508 1019.1762,367.69994 970.91072,348.76681 919.8592,371.09875 " - style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:type="inkscape:box3dside" - id="path938-0" - inkscape:box3dsidetype="14" - d="m 969.63032,391.66508 v 63.27084 l 49.54588,-27.39007 v -59.84591 z" - points="969.63032,454.93592 1019.1762,427.54585 1019.1762,367.69994 969.63032,391.66508 " - style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - <path - sodipodi:type="inkscape:box3dside" - id="path936-9" - inkscape:box3dsidetype="3" - d="m 919.8592,371.09875 49.77112,20.56633 v 63.27084 L 919.8592,432.84968 Z" - points="969.63032,391.66508 969.63032,454.93592 919.8592,432.84968 919.8592,371.09875 " - style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" /> - </g> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:90.1384964px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="1046.8701" - y="258.16129" - id="text1051-5" - transform="scale(0.91814752,1.0891496)" - inkscape:label="value"><tspan - sodipodi:role="line" - id="tspan1049-3" - x="1046.8701" - y="258.16129" - style="fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-opacity:1">000</tspan></text> - </g> - <g - transform="translate(-289.17513,-33.060654)" - id="g4791-6" - inkscape:label="HMI:ToggleButton@/TOGGLE1"> - <rect - inkscape:label="inactive" - y="47.187904" - x="906.51086" - height="44.547726" - width="45.254833" - id="rect4772-5" - style="opacity:1;fill:#ff0015;fill-opacity:1;stroke:none" /> - <rect - inkscape:label="active" - y="47.187904" - x="906.51086" - height="44.547726" - width="45.254833" - id="rect4772-3-7" - style="opacity:1;fill:#00ff03;fill-opacity:1;stroke:none" /> - </g> - <g - transform="translate(-287.05529,41.033314)" - id="g479hgjk" - inkscape:label="HMI:Button@/TOGGLE"> - <rect - inkscape:label="active" - y="46.127251" - x="906.51086" - height="44.547726" - width="45.254833" - id="rect47fuzkj" - style="opacity:1;fill:#00ff03;fill-opacity:1;stroke:none" /> - <rect - inkscape:label="inactive" - y="46.127251" - x="906.51086" - height="44.547726" - width="45.254833" - id="rect477hjoj" - style="opacity:1;fill:#ff0015;fill-opacity:1;stroke:none" /> - </g> - <g - id="g1112" - inkscape:label="HMI:AnimateRotation@/SPEED"> - <circle - r="32.057827" - cy="436.18585" - cx="747.05347" - id="path1380" - style="fill:#ececec;fill-opacity:1;stroke:#ff0000;stroke-width:2.95733476;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <rect - y="286.18585" - x="597.05353" - height="300" - width="300" - id="rect1382" - style="opacity:0;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:3.69000006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - sodipodi:nodetypes="sssssss" - inkscape:connector-curvature="0" - id="path1388" - d="m 719.75481,403.83452 c 1.9692,9.54564 9.417,-4.37059 26.6751,-4.06174 27.2477,0.48762 30.0401,21.24497 35.5749,12.81174 6.6594,-10.14673 12.6699,-22.7446 14.75,-33.25 13.5509,-68.43783 -46.4736,-97.18589 -72,-91.49999 -40.88858,9.10778 -49.54078,47.21136 -31.99998,71.75 13.16428,18.41615 23.37448,26.67508 26.99998,44.24999 z" - style="fill:#fd0000;fill-opacity:1;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="sssssss" - inkscape:connector-curvature="0" - id="path1388-9" - d="m 789.45321,432.25975 c -8.9783,-3.79302 -1.7422,10.23457 -11.7862,24.27224 -15.8577,22.16324 -34.5364,12.68834 -30.7308,22.03024 4.5788,11.24 11.5443,23.3361 19.0162,31.0083 48.6752,49.9808 106.3992,16.8549 116.1963,-7.3926 15.6932,-38.84015 -10.7791,-67.57972 -40.9378,-67.05341 -22.634,0.39495 -35.2273,4.11873 -51.7577,-2.86477 z" - style="fill:#fd0000;fill-opacity:1;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="sssssss" - inkscape:connector-curvature="0" - id="path1388-9-8" - d="m 730.85671,475.85643 c 7.5732,-6.1355 -8.2092,-6.3552 -15.8654,-21.82523 -12.0882,-24.42445 5.0646,-36.44319 -4.9688,-37.48364 -12.07218,-1.25186 -26.02318,-0.80116 -36.30958,2.17903 -67.0109,19.41388 -64.9607,85.93594 -48.1806,105.99474 26.8787,32.1304 64.6969,22.3051 78.43058,-4.5502 10.3071,-20.1549 12.9505,-33.0184 26.8938,-44.3147 z" - style="fill:#fd0000;fill-opacity:1;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <animateTransform - attributeName="transform" - attributeType="XML" - type="rotate" - from="0 1049 278" - to="360 1049 278" - dur="1s" - repeatCount="indefinite" /> - </g> - <g - id="g1093" - inkscape:label="HMI:CustomHtml"> - <rect - inkscape:label="container" - y="12" - x="818" - height="323" - width="452" - id="rect1072" - style="opacity:0.29800002;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1.11057007" /> - <text - inkscape:label="code" - transform="scale(0.57360572,1.7433578)" - id="text1076" - y="23.059681" - x="1433.04" - style="font-style:normal;font-weight:normal;font-size:9.29032898px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.87096828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve"><tspan - style="stroke-width:0.87096828px" - id="tspan1078" - y="23.059681" - x="1433.04" - sodipodi:role="line"> <img xmlns="http://www.w3.org/1999/xhtml" id="img" src="https://thumbs.gfycat.com/ImpoliteSoupyKakapo-size_restricted.gif" width="100%" height="80%" /></tspan><tspan - style="stroke-width:0.87096828px" - id="tspan1080" - y="34.672592" - x="1433.04" - sodipodi:role="line"> <a xmlns="http://www.w3.org/1999/xhtml" href='www.gmail.com'>Gmail</a></tspan><tspan - style="stroke-width:0.87096828px" - id="tspan1082" - y="46.285503" - x="1433.04" - sodipodi:role="line"> <p xmlns="http://www.w3.org/1999/xhtml">Koj kurac to ne dela</p></tspan><tspan - style="stroke-width:0.87096828px" - id="tspan1084" - y="57.898415" - x="1433.04" - sodipodi:role="line" /></text> - </g> -</svg>