SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
<?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" onchange="MyOnChangeFunc"/>
<variable name="AlarmCount" type="HMI_INT"/>
</variables>
<globals>
<xhtml:p><![CDATA[
from twisted.web.resource import Resource
import json
class AlarmJsonResource(Resource):
def render_GET(self, request):
return ''
def render_POST(self, request):
print(request.__dict__)
newdata = request.content.getvalue()
print newdata
selected_alarms = [
{"name":"three", "sides":3, "textstyle":"alarm"},
{"name":"four", "sides":4, "textstyle":"ack"},
{"name":"five", "sides":5, "textstyle":"active"},
{"name":"six", "sides":6, "textstyle":"disabled"},
]
return json.dumps(selected_alarms)
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[
svghmi_root.putChild("alarms", AlarmJsonResource())
]]></xhtml:p>
</start>
<stop>
<xhtml:p><![CDATA[
]]></xhtml:p>
</stop>
</PyFile>