--- a/LPCSVGHMI.py Tue Jul 13 16:07:31 2021 +0200
+++ b/LPCSVGHMI.py Thu Jul 22 12:06:58 2021 +0200
@@ -1,18 +1,18 @@
-from svghmi.svghmi import SVGHMI, SVGHMILibrary
-browser_commandline = 'qt_webenginewidgets_minimal --js-flags="--max_old_space_size=16 --gc_interval=100 --optimize_for_size" --single-process --no-sandbox "{url}"'
+from svghmi.svghmi import SVGHMI, SVGHMILibrary, paths # set default values so that COG browser is managed by SVGHMI
SVGHMI.XSD = """<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="SVGHMI">
- <xsd:attribute name="OnStart" type="xsd:string" use="optional" default='"""+browser_commandline+"""'/>
- <xsd:attribute name="OnStop" type="xsd:string" use="optional" default="killall qt_webenginewidgets_minimal"/>
+ <xsd:attribute name="OnStart" type="xsd:string" use="optional" default="{LPCBrowserStart}"/> + <xsd:attribute name="OnStop" type="xsd:string" use="optional" default="{LPCBrowserStop}"/> + <xsd:attribute name="Portrait" type="xsd:boolean" use="optional" default="false"/> + <xsd:attribute name="Rotate180" type="xsd:boolean" use="optional" default="false"/> <xsd:attribute name="EnableWatchdog" type="xsd:boolean" use="optional" default="true"/>
- <xsd:attribute name="OnWatchdog" type="xsd:string" use="optional" default="sh -c 'killall qt_webenginewidgets_minimal; sleep 1; """+\
- browser_commandline.replace('"', '"')+"""'"/>
+ <xsd:attribute name="OnWatchdog" type="xsd:string" use="optional" default="{LPCBrowserRestart}"/> <xsd:attribute name="WatchdogInitial" use="optional" default="30">
<xsd:restriction base="xsd:integer">
@@ -44,3 +44,37 @@
+old_get_SVGHMI_options = SVGHMI.get_SVGHMI_options +def get_SVGHMI_options(self): + svghmi_options = old_get_SVGHMI_options(self) + portrait = self.GetParamsAttributes("SVGHMI.Portrait")["value"] + rotate180 = self.GetParamsAttributes("SVGHMI.Rotate180")["value"] + angle = {(False,False): "0", + (True,True): "-90"}[(rotate180,portrait)] + browser_commandline = 'QT_QPA_EGLFS_ROTATION=' + angle + \ + ' qt_webenginewidgets_minimal' + \ + ' --js-flags="--max_old_space_size=16 --gc_interval=100 --optimize_for_size"' + \ + ' --single-process' + \ + ' --no-sandbox "' + svghmi_options["url"] + '"' + {"LPCBrowserStart": "sh -c '"+browser_commandline+"'", + "LPCBrowserStop": "killall qt_webenginewidgets_minimal", + "LPCBrowserRestart": "sh -c 'killall qt_webenginewidgets_minimal; sleep 1; "+browser_commandline+" '"}) +SVGHMI.get_SVGHMI_options = get_SVGHMI_options +def getDefaultSVG(self): + ScriptDirectory = paths.AbsDir(__file__) + portrait = self.GetParamsAttributes("SVGHMI.Portrait")["value"] + return os.path.join(ScriptDirectory, "portrait.svg" if portrait else "landscape.svg") +SVGHMI.getDefaultSVG = getDefaultSVG