added Last Power seeting to IOC panel
This commit is contained in:
Executable
+20
@@ -0,0 +1,20 @@
|
||||
{
|
||||
|
||||
"Parameters":{
|
||||
"drawLine" : {"flag" : 0, "data":{ "widget": "QHLine", "text" : "None", "value" : "None"}},
|
||||
"delayRamp" : {"flag" : 1, "data":{ "widget": "QDoubleSpinBox", "text" : "Ramp delay (s):",
|
||||
"value" : 0.1, "min": 0.00, "max": 0.20, "step": 0.01,
|
||||
"tooltip":"Wait time between sending set point to each magnet in 'Restore'/'Standby' "}},
|
||||
"drawLine2" : {"flag" : 0, "data":{ "widget": "QHLine", "text" : "None", "value" : "None"}}
|
||||
|
||||
},
|
||||
"Expert":{
|
||||
"debug": {"flag" : 0, "data":{ "widget": "None", "text" : "Debug", "value" : 0}},
|
||||
"simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}}
|
||||
},
|
||||
"IOC": {
|
||||
"resultsTabTitle" : "IOC"
|
||||
},
|
||||
"headerMagnetSector": ["B1B2","G1","SH","G2","O2","PIF", "G3"],
|
||||
"Master": "Controlroom"
|
||||
}
|
||||
+255
-124
@@ -9,6 +9,229 @@
|
||||
from PyQt5 import QtCore
|
||||
|
||||
qt_resource_data = b"\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x31\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x32\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x0b\x58\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x48\x61\x6e\x64\x73\x6f\x6d\x65\x20\x50\x6f\x77\x65\x72\
|
||||
\x20\x55\x73\x61\x67\x65\x20\x61\x6e\x64\x20\x53\x61\x76\x69\x6e\
|
||||
\x67\x20\x48\x69\x65\x72\x61\x72\x63\x68\x79\x20\x61\x74\x20\x50\
|
||||
\x72\x6f\x73\x63\x61\x6e\x2c\x20\x48\x55\x53\x48\x21\x3c\x2f\x74\
|
||||
\x69\x74\x6c\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\
|
||||
\x64\x79\x3e\x0a\x0a\x3c\x68\x35\x20\x20\x73\x74\x79\x6c\x65\x3d\
|
||||
\x22\x63\x6f\x6c\x6f\x72\x3a\x67\x72\x61\x79\x3b\x22\x3e\x46\x65\
|
||||
\x62\x72\x75\x61\x72\x79\x20\x32\x30\x32\x34\x2c\x20\x4a\x61\x6e\
|
||||
\x20\x43\x68\x72\x69\x6e\x3c\x2f\x68\x35\x3e\x0a\x3c\x68\x34\x3e\
|
||||
\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
|
||||
\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x48\x3c\x2f\x73\x70\
|
||||
\x61\x6e\x3e\x61\x6e\x64\x73\x6f\x6d\x65\x20\x3c\x73\x70\x61\x6e\
|
||||
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\
|
||||
\x72\x61\x79\x3b\x22\x3e\x50\x6f\x77\x65\x72\x3c\x2f\x73\x70\x61\
|
||||
\x6e\x3e\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\
|
||||
\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x55\x3c\x2f\
|
||||
\x73\x70\x61\x6e\x3e\x73\x61\x67\x65\x20\x3c\x73\x70\x61\x6e\x20\
|
||||
\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\x72\
|
||||
\x61\x79\x3b\x22\x3e\x61\x6e\x64\x3c\x2f\x73\x70\x61\x6e\x3e\x20\
|
||||
\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\
|
||||
\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x53\x3c\x2f\x73\x70\x61\
|
||||
\x6e\x3e\x61\x76\x69\x6e\x67\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\
|
||||
\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\
|
||||
\x22\x3e\x48\x3c\x2f\x73\x70\x61\x6e\x3e\x69\x65\x72\x61\x72\x63\
|
||||
\x68\x79\x3c\x2f\x73\x70\x61\x6e\x3e\x20\x3c\x73\x70\x61\x6e\x20\
|
||||
\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\x72\
|
||||
\x61\x79\x3b\x22\x3e\x61\x74\x20\x50\x72\x6f\x73\x63\x61\x6e\x2c\
|
||||
\x3c\x2f\x73\x70\x61\x6e\x3e\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\
|
||||
\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\
|
||||
\x22\x3e\x48\x55\x53\x48\x21\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\
|
||||
\x68\x34\x3e\x0a\x3c\x68\x32\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
|
||||
\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\x41\x62\x6f\x75\
|
||||
\x74\x3c\x2f\x68\x32\x3e\x0a\x0a\x3c\x70\x3e\x54\x68\x65\x20\x48\
|
||||
\x55\x53\x48\x21\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\
|
||||
\x20\x69\x6e\x69\x74\x69\x61\x74\x65\x73\x20\x65\x6e\x65\x72\x67\
|
||||
\x79\x20\x73\x61\x76\x69\x6e\x67\x20\x70\x72\x6f\x63\x65\x64\x75\
|
||||
\x72\x65\x73\x20\x61\x6e\x64\x20\x72\x65\x63\x6f\x72\x64\x73\x20\
|
||||
\x74\x68\x65\x20\x70\x6f\x77\x65\x72\x20\x73\x61\x76\x65\x64\x2e\
|
||||
\x3c\x62\x72\x3e\x0a\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\
|
||||
\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x61\x63\x6b\x3b\
|
||||
\x20\x66\x6f\x6e\x74\x2d\x73\x74\x79\x6c\x65\x3a\x69\x74\x61\x6c\
|
||||
\x69\x63\x3b\x22\x3e\x50\x6f\x77\x65\x72\x20\x53\x61\x76\x69\x6e\
|
||||
\x67\x20\x41\x63\x63\x6f\x75\x6e\x74\x69\x6e\x67\x20\x69\x73\x20\
|
||||
\x6f\x6e\x6c\x79\x20\x61\x63\x74\x69\x76\x61\x74\x65\x64\x20\x77\
|
||||
\x68\x65\x6e\x20\x50\x52\x4f\x53\x43\x41\x4e\x20\x69\x73\x20\x69\
|
||||
\x6e\x20\x22\x50\x72\x6f\x64\x75\x6b\x74\x69\x6f\x6e\x22\x20\x6d\
|
||||
\x6f\x64\x65\x2e\x3c\x2f\x73\x70\x61\x6e\x3e\x0a\x20\x20\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x21\x2d\x2d\x61\x20\x68\x72\x65\x66\x3d\x22\x70\
|
||||
\x61\x67\x65\x31\x2e\x68\x74\x6d\x6c\x22\x3e\x68\x65\x72\x65\x3c\
|
||||
\x2f\x61\x3e\x3c\x2f\x70\x2d\x2d\x3e\x0a\x0a\x3c\x68\x32\x20\x73\
|
||||
\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\
|
||||
\x3b\x22\x3e\x54\x68\x65\x20\x52\x65\x70\x6f\x73\x69\x74\x6f\x72\
|
||||
\x79\x3c\x2f\x68\x32\x3e\x0a\x0a\x3c\x70\x3e\x54\x68\x65\x20\x61\
|
||||
\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x72\
|
||||
\x69\x73\x65\x73\x20\x74\x77\x6f\x20\x63\x6f\x6d\x70\x6f\x6e\x65\
|
||||
\x6e\x74\x73\x3a\x0a\x20\x20\x3c\x75\x6c\x3e\x0a\x3c\x6c\x69\x3e\
|
||||
\x0a\x20\x20\x41\x20\x53\x74\x61\x74\x65\x20\x4d\x61\x63\x68\x69\
|
||||
\x6e\x65\x20\x28\x53\x4d\x29\x20\x6f\x70\x65\x72\x61\x74\x69\x6e\
|
||||
\x67\x20\x61\x74\x20\x74\x68\x65\x20\x49\x4f\x43\x20\x6c\x65\x76\
|
||||
\x65\x6c\x20\x74\x68\x61\x74\x20\x69\x73\x20\x72\x65\x73\x70\x6f\
|
||||
\x6e\x73\x69\x62\x6c\x65\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x70\
|
||||
\x6f\x77\x65\x72\x20\x73\x61\x76\x69\x6e\x67\x20\x61\x63\x63\x6f\
|
||||
\x75\x6e\x74\x69\x6e\x67\x2e\x3c\x62\x72\x3e\x0a\x20\x20\x3c\x73\
|
||||
\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\
|
||||
\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x20\x68\x74\x74\x70\x73\x3a\
|
||||
\x2f\x2f\x67\x69\x74\x6c\x61\x62\x2e\x70\x73\x69\x2e\x63\x68\x2f\
|
||||
\x70\x72\x6f\x73\x63\x61\x6e\x5f\x61\x70\x70\x73\x34\x6f\x70\x73\
|
||||
\x2f\x48\x55\x53\x48\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\x3e\
|
||||
\x0a\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
|
||||
\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x20\x2f\x70\
|
||||
\x72\x6f\x73\x63\x61\x6e\x2f\x62\x64\x2f\x61\x70\x70\x6c\x69\x63\
|
||||
\x61\x74\x69\x6f\x6e\x73\x2f\x68\x75\x73\x68\x2f\x68\x6c\x61\x2f\
|
||||
\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\x3e\x0a\x3c\x2f\x6c\x69\
|
||||
\x3e\x0a\x20\x20\x3c\x6c\x69\x3e\x0a\x20\x20\x20\x20\x41\x20\x48\
|
||||
\x69\x67\x68\x20\x4c\x65\x76\x65\x6c\x20\x41\x70\x70\x6c\x69\x63\
|
||||
\x61\x74\x69\x6f\x6e\x20\x28\x48\x4c\x41\x29\x20\x74\x68\x61\x74\
|
||||
\x20\x69\x73\x20\x61\x62\x6c\x65\x20\x74\x6f\x20\x69\x6e\x74\x65\
|
||||
\x72\x61\x63\x74\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x49\x4f\
|
||||
\x43\x20\x28\x66\x6f\x72\x20\x65\x78\x70\x65\x72\x74\x20\x75\x73\
|
||||
\x65\x29\x2c\x20\x64\x69\x73\x70\x6c\x61\x79\x73\x20\x61\x63\x63\
|
||||
\x6f\x75\x6e\x74\x69\x6e\x67\x0a\x20\x20\x20\x20\x66\x69\x67\x75\
|
||||
\x72\x65\x73\x2c\x20\x61\x6e\x64\x20\x70\x72\x6f\x76\x69\x64\x65\
|
||||
\x73\x20\x61\x20\x70\x61\x6e\x65\x6c\x20\x74\x6f\x20\x65\x6e\x61\
|
||||
\x62\x6c\x65\x20\x71\x75\x61\x64\x72\x75\x70\x6c\x65\x73\x20\x74\
|
||||
\x6f\x20\x62\x65\x20\x73\x65\x74\x20\x74\x6f\x20\x74\x68\x65\x69\
|
||||
\x72\x20\x73\x74\x61\x6e\x64\x62\x79\x2f\x72\x65\x73\x74\x6f\x72\
|
||||
\x65\x20\x76\x61\x6c\x75\x65\x73\x2e\x3c\x62\x72\x3e\x0a\x20\x20\
|
||||
\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
|
||||
\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x68\x74\x74\
|
||||
\x70\x73\x3a\x2f\x2f\x67\x69\x74\x2e\x70\x73\x69\x2e\x63\x68\x2f\
|
||||
\x65\x70\x69\x63\x73\x5f\x69\x6f\x63\x62\x6f\x6f\x74\x5f\x70\x72\
|
||||
\x6f\x73\x63\x61\x6e\x2f\x50\x52\x4f\x5f\x68\x75\x73\x68\x3c\x2f\
|
||||
\x73\x70\x61\x6e\x3e\x3c\x62\x72\x3e\x0a\x20\x20\x20\x20\x20\x3c\
|
||||
\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\
|
||||
\x72\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x2f\x70\x72\x6f\x73\x63\
|
||||
\x61\x6e\x2f\x62\x64\x2f\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\
|
||||
\x6e\x73\x2f\x68\x75\x73\x68\x2f\x69\x6f\x63\x2f\x6c\x61\x74\x65\
|
||||
\x73\x74\x2f\x50\x52\x4f\x5f\x68\x75\x73\x68\x2f\x3c\x2f\x73\x70\
|
||||
\x61\x6e\x3e\x3c\x62\x72\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\
|
||||
\x3e\x0a\x3c\x2f\x75\x6c\x3e\x0a\x20\x20\x3c\x68\x32\x20\x73\x74\
|
||||
\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\
|
||||
\x22\x3e\x54\x68\x65\x20\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x20\
|
||||
\x55\x73\x65\x72\x20\x49\x6e\x74\x65\x72\x66\x61\x63\x65\x3c\x2f\
|
||||
\x68\x32\x3e\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\x3d\
|
||||
\x22\x63\x6f\x6c\x6f\x72\x3a\x6c\x69\x67\x68\x74\x62\x6c\x75\x65\
|
||||
\x3b\x22\x3e\x4f\x70\x65\x72\x61\x74\x6f\x72\x20\x50\x61\x6e\x65\
|
||||
\x6c\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x52\x61\x6d\x70\x20\x44\x65\
|
||||
\x6c\x61\x79\x3a\x20\x43\x61\x6e\x20\x74\x61\x6b\x65\x20\x6f\x6e\
|
||||
\x20\x76\x61\x6c\x75\x65\x73\x20\x66\x72\x6f\x6d\x20\x30\x2e\x30\
|
||||
\x73\x20\x74\x6f\x20\x30\x2e\x32\x73\x2e\x20\x3c\x62\x72\x3e\x0a\
|
||||
\x20\x20\x44\x65\x66\x69\x6e\x65\x73\x20\x74\x68\x65\x20\x64\x65\
|
||||
\x6c\x61\x79\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x73\x65\x74\x74\
|
||||
\x69\x6e\x67\x20\x69\x6e\x64\x69\x76\x69\x64\x75\x61\x6c\x20\x71\
|
||||
\x75\x61\x64\x72\x75\x70\x6c\x65\x73\x20\x77\x68\x65\x6e\x20\x69\
|
||||
\x6e\x69\x74\x69\x61\x74\x69\x6e\x67\x20\x73\x74\x61\x6e\x64\x62\
|
||||
\x79\x2f\x72\x65\x73\x74\x6f\x72\x65\x2e\x0a\x20\x20\x41\x20\x76\
|
||||
\x61\x6c\x75\x65\x20\x6f\x66\x20\x30\x2e\x30\x73\x20\x6d\x65\x61\
|
||||
\x6e\x73\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x71\x75\x61\x64\
|
||||
\x72\x75\x70\x6c\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x73\x20\x61\
|
||||
\x72\x65\x20\x73\x65\x74\x20\x73\x69\x6d\x75\x6c\x74\x61\x6e\x65\
|
||||
\x6f\x75\x73\x6c\x79\x2e\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\
|
||||
\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x6c\x69\x67\x68\x74\x62\
|
||||
\x6c\x75\x65\x3b\x22\x3e\x45\x78\x70\x65\x72\x74\x20\x50\x61\x6e\
|
||||
\x65\x6c\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x53\x65\x6c\x65\x63\x74\
|
||||
\x69\x6e\x67\x20\x74\x68\x65\x20\x44\x72\x79\x20\x52\x75\x6e\x20\
|
||||
\x6f\x70\x74\x69\x6f\x6e\x20\x64\x69\x73\x61\x62\x6c\x65\x73\x20\
|
||||
\x73\x65\x74\x74\x69\x6e\x67\x20\x76\x61\x6c\x75\x65\x73\x20\x74\
|
||||
\x6f\x20\x65\x70\x69\x63\x73\x20\x70\x72\x6f\x63\x65\x73\x73\x20\
|
||||
\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x2e\x20\x55\x73\x65\x64\x20\
|
||||
\x66\x6f\x72\x20\x74\x65\x73\x74\x69\x6e\x67\x2e\x20\x3c\x62\x72\
|
||||
\x3e\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
|
||||
\x6f\x6c\x6f\x72\x3a\x6c\x69\x67\x68\x74\x62\x6c\x75\x65\x3b\x22\
|
||||
\x3e\x53\x61\x76\x69\x6e\x67\x20\x4f\x76\x65\x72\x76\x69\x65\x77\
|
||||
\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x44\x69\x73\x70\x6c\x61\x79\x73\
|
||||
\x20\x61\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x70\x72\x6f\
|
||||
\x63\x65\x73\x73\x20\x76\x61\x72\x61\x69\x62\x6c\x65\x73\x20\x72\
|
||||
\x65\x6c\x61\x74\x65\x64\x20\x74\x6f\x20\x74\x68\x65\x20\x70\x6f\
|
||||
\x77\x65\x72\x20\x73\x61\x76\x69\x6e\x67\x20\x61\x63\x63\x6f\x75\
|
||||
\x6e\x74\x69\x6e\x67\x20\x3c\x62\x72\x3e\x0a\x20\x20\x3c\x73\x70\
|
||||
\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\
|
||||
\x62\x6c\x61\x63\x6b\x3b\x20\x66\x6f\x6e\x74\x2d\x73\x74\x79\x6c\
|
||||
\x65\x3a\x69\x74\x61\x6c\x69\x63\x3b\x22\x3e\x50\x6f\x77\x65\x72\
|
||||
\x20\x53\x61\x76\x69\x6e\x67\x20\x41\x63\x63\x6f\x75\x6e\x74\x69\
|
||||
\x6e\x67\x20\x69\x73\x20\x6f\x6e\x6c\x79\x20\x61\x63\x74\x69\x76\
|
||||
\x61\x74\x65\x64\x20\x77\x68\x65\x6e\x20\x50\x52\x4f\x53\x43\x41\
|
||||
\x4e\x20\x69\x73\x20\x69\x6e\x20\x22\x50\x72\x6f\x64\x75\x6b\x74\
|
||||
\x69\x6f\x6e\x22\x20\x6d\x6f\x64\x65\x2e\x3c\x2f\x73\x70\x61\x6e\
|
||||
\x3e\x0a\x20\x20\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\
|
||||
\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x49\x6e\x69\x74\x69\x61\x6c\x20\
|
||||
\x50\x6f\x77\x65\x72\x20\x28\x6b\x77\x29\x3a\x3c\x2f\x74\x64\x3e\
|
||||
\x20\x3c\x74\x64\x3e\x54\x68\x65\x20\x6e\x6f\x6d\x69\x6e\x61\x6c\
|
||||
\x20\x70\x6f\x77\x65\x72\x20\x76\x61\x6c\x75\x65\x20\x77\x68\x65\
|
||||
\x6e\x20\x71\x75\x61\x64\x72\x75\x70\x6c\x65\x73\x20\x61\x72\x65\
|
||||
\x20\x69\x6e\x20\x74\x68\x65\x20\x75\x73\x75\x61\x6c\x20\x70\x6f\
|
||||
\x77\x65\x72\x65\x64\x2d\x6f\x6e\x20\x73\x74\x61\x74\x65\x2e\x3c\
|
||||
\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\
|
||||
\x72\x3e\x3c\x74\x64\x3e\x50\x6f\x77\x65\x72\x20\x28\x6b\x77\x29\
|
||||
\x3a\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x3e\x54\x68\x65\x20\x63\
|
||||
\x75\x72\x72\x65\x6e\x74\x20\x70\x6f\x77\x65\x72\x20\x76\x61\x6c\
|
||||
\x75\x65\x2e\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\
|
||||
\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x53\x61\x76\x69\x6e\x67\
|
||||
\x20\x28\x4d\x57\x68\x29\x3a\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\
|
||||
\x3e\x54\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x70\x6f\x77\
|
||||
\x65\x72\x20\x76\x61\x6c\x75\x65\x2e\x3c\x2f\x74\x64\x3e\x3c\x2f\
|
||||
\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\
|
||||
\x54\x69\x6d\x65\x20\x69\x6e\x20\x53\x61\x76\x69\x6e\x67\x20\x4d\
|
||||
\x6f\x64\x65\x3a\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x3e\x54\x69\
|
||||
\x6d\x65\x20\x65\x6c\x61\x70\x73\x65\x64\x20\x69\x6e\x20\x63\x75\
|
||||
\x72\x72\x65\x6e\x74\x20\x73\x61\x76\x69\x6e\x67\x20\x70\x65\x72\
|
||||
\x69\x6f\x64\x20\x28\x64\x61\x79\x73\x20\x68\x6f\x75\x72\x73\x3a\
|
||||
\x6d\x69\x6e\x75\x74\x65\x73\x3a\x73\x65\x63\x6f\x6e\x64\x73\x29\
|
||||
\x2e\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\
|
||||
\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x54\x6f\x74\x20\x53\x61\x76\x65\
|
||||
\x64\x20\x28\x4d\x57\x68\x29\x3a\x3c\x2f\x74\x64\x3e\x20\x3c\x74\
|
||||
\x64\x3e\x54\x68\x65\x20\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\
|
||||
\x64\x20\x70\x6f\x77\x65\x72\x20\x73\x61\x76\x65\x64\x20\x69\x6e\
|
||||
\x20\x74\x68\x65\x20\x63\x61\x6c\x65\x6e\x64\x61\x72\x20\x79\x65\
|
||||
\x61\x72\x2e\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\
|
||||
\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x20\x0a\x20\x20\x0a\x20\x20\x0a\
|
||||
\x20\x20\x0a\x0a\x0a\x0a\x0a\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\
|
||||
\x2f\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x33\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x34\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x32\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x33\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\x80\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
@@ -32,118 +255,10 @@ qt_resource_data = b"\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x32\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x33\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x33\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x34\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x31\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x32\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x03\x29\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x48\x61\x6e\x64\x73\x6f\x6d\x65\x20\x50\x6f\x77\x65\x72\
|
||||
\x20\x55\x73\x61\x67\x65\x20\x61\x6e\x64\x20\x53\x61\x76\x69\x6e\
|
||||
\x67\x20\x48\x69\x65\x72\x61\x72\x63\x68\x79\x20\x61\x74\x20\x50\
|
||||
\x72\x6f\x73\x63\x61\x6e\x2c\x20\x48\x55\x53\x48\x21\x3c\x2f\x74\
|
||||
\x69\x74\x6c\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\
|
||||
\x64\x79\x3e\x0a\x0a\x3c\x68\x35\x20\x20\x73\x74\x79\x6c\x65\x3d\
|
||||
\x22\x63\x6f\x6c\x6f\x72\x3a\x67\x72\x61\x79\x3b\x22\x3e\x4a\x61\
|
||||
\x6e\x75\x61\x72\x79\x20\x32\x30\x32\x34\x2c\x20\x4a\x61\x6e\x20\
|
||||
\x43\x68\x72\x69\x6e\x3c\x2f\x68\x35\x3e\x0a\x3c\x68\x34\x3e\x20\
|
||||
\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\
|
||||
\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x48\x3c\x2f\x73\x70\x61\
|
||||
\x6e\x3e\x61\x6e\x64\x73\x6f\x6d\x65\x20\x3c\x73\x70\x61\x6e\x20\
|
||||
\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\x72\
|
||||
\x61\x79\x3b\x22\x3e\x50\x6f\x77\x65\x72\x3c\x2f\x73\x70\x61\x6e\
|
||||
\x3e\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
|
||||
\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x55\x3c\x2f\x73\
|
||||
\x70\x61\x6e\x3e\x73\x61\x67\x65\x20\x61\x6e\x64\x20\x3c\x73\x70\
|
||||
\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\
|
||||
\x20\x72\x65\x64\x3b\x22\x3e\x53\x3c\x2f\x73\x70\x61\x6e\x3e\x61\
|
||||
\x76\x69\x6e\x67\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\
|
||||
\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x48\
|
||||
\x3c\x2f\x73\x70\x61\x6e\x3e\x69\x65\x72\x61\x72\x63\x68\x79\x20\
|
||||
\x61\x74\x20\x50\x72\x6f\x73\x63\x61\x6e\x2c\x20\x3c\x73\x70\x61\
|
||||
\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\
|
||||
\x72\x65\x64\x3b\x22\x3e\x48\x55\x53\x48\x21\x3c\x2f\x73\x70\x61\
|
||||
\x6e\x3e\x3c\x2f\x68\x34\x3e\x0a\x3c\x68\x32\x20\x73\x74\x79\x6c\
|
||||
\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\
|
||||
\x41\x62\x6f\x75\x74\x3c\x2f\x68\x32\x3e\x0a\x0a\x3c\x70\x3e\x54\
|
||||
\x68\x69\x73\x20\x3c\x62\x3e\x48\x55\x53\x48\x21\x3c\x2f\x62\x3e\
|
||||
\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x69\x6e\x68\
|
||||
\x65\x72\x69\x74\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x57\
|
||||
\x69\x6e\x64\x6f\x77\x20\x62\x61\x73\x65\x20\x63\x6c\x61\x73\x73\
|
||||
\x2e\x3c\x62\x72\x3e\x20\x20\x0a\x3c\x70\x3e\x69\x6e\x66\x6f\x72\
|
||||
\x6d\x61\x74\x69\x6f\x6e\x20\x63\x6f\x6e\x63\x65\x72\x6e\x69\x6e\
|
||||
\x67\x20\x74\x68\x69\x73\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\
|
||||
\x6f\x6e\x2c\x20\x73\x75\x63\x68\x20\x61\x73\x20\x63\x6f\x6e\x66\
|
||||
\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x20\x70\x61\x72\x61\x6d\x65\
|
||||
\x74\x65\x72\x73\x20\x6f\x72\x20\x6f\x74\x68\x65\x72\x2c\x20\x6d\
|
||||
\x61\x79\x20\x62\x65\x20\x65\x6e\x74\x65\x72\x65\x64\x2c\x20\x65\
|
||||
\x2e\x67\x2e\x2c\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\x22\x70\x61\
|
||||
\x67\x65\x31\x2e\x68\x74\x6d\x6c\x22\x3e\x68\x65\x72\x65\x3c\x2f\
|
||||
\x61\x3e\x3c\x2f\x70\x3e\x0a\x0a\x3c\x68\x32\x20\x73\x74\x79\x6c\
|
||||
\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\
|
||||
\x54\x68\x65\x20\x50\x61\x6e\x65\x6c\x3c\x2f\x68\x32\x3e\x0a\x0a\
|
||||
\x3c\x70\x3e\x54\x68\x65\x73\x65\x20\x77\x65\x62\x20\x70\x61\x67\
|
||||
\x65\x73\x20\x61\x72\x65\x20\x74\x6f\x20\x62\x65\x20\x63\x6f\x6d\
|
||||
\x70\x6c\x65\x74\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x61\x70\
|
||||
\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x6f\x77\x6e\x65\x72\x2e\
|
||||
\x3c\x62\x72\x3e\x0a\x0a\x0a\x0a\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\
|
||||
\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
|
||||
"
|
||||
|
||||
qt_resource_name = b"\
|
||||
\x00\x0a\
|
||||
\x08\x8a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x7a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x5a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x6a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x4a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
@@ -151,33 +266,49 @@ qt_resource_name = b"\
|
||||
\x0c\xba\xf2\x7c\
|
||||
\x00\x69\
|
||||
\x00\x6e\x00\x64\x00\x65\x00\x78\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x6a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x5a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x8a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x7a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
"
|
||||
|
||||
qt_resource_struct_v1 = b"\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\
|
||||
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x02\x85\
|
||||
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x2f\
|
||||
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x01\xda\
|
||||
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x84\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
|
||||
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x03\x30\
|
||||
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xb2\
|
||||
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x07\
|
||||
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xe1\
|
||||
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x5d\
|
||||
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
|
||||
"
|
||||
|
||||
qt_resource_struct_v2 = b"\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x02\x85\
|
||||
\x00\x00\x01\x8d\x9c\xeb\xd9\x5b\
|
||||
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x2f\
|
||||
\x00\x00\x01\x8d\x9c\xeb\xd9\x5c\
|
||||
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x01\xda\
|
||||
\x00\x00\x01\x8d\x9c\xeb\xd9\x5e\
|
||||
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x84\
|
||||
\x00\x00\x01\x8d\x9c\xeb\xd9\x5f\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
|
||||
\x00\x00\x01\x8d\x9c\xeb\xd9\x61\
|
||||
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x03\x30\
|
||||
\x00\x00\x01\x8d\xa7\xc7\x77\x2b\
|
||||
\x00\x00\x01\x8d\xc6\x98\xaa\x4d\
|
||||
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xb2\
|
||||
\x00\x00\x01\x8d\xc6\x98\xaa\x50\
|
||||
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x07\
|
||||
\x00\x00\x01\x8d\xc6\x98\xaa\x52\
|
||||
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xe1\
|
||||
\x00\x00\x01\x8d\xc6\x98\xaa\x54\
|
||||
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x5d\
|
||||
\x00\x00\x01\x8d\xc6\x98\xaa\x55\
|
||||
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
|
||||
\x00\x00\x01\x8d\xd0\x41\x77\x24\
|
||||
"
|
||||
|
||||
qt_version = QtCore.qVersion().split('.')
|
||||
|
||||
+51
-6
@@ -1,16 +1,61 @@
|
||||
<html><head><title>Handsome Power Usage and Saving Hierarchy at Proscan, HUSH!</title></head>
|
||||
<body>
|
||||
|
||||
<h5 style="color:gray;">January 2024, Jan Chrin</h5>
|
||||
<h4> <span style="color: red;">H</span>andsome <span style="color: gray;">Power</span> <span style="color: red;">U</span>sage and <span style="color: red;">S</span>aving <span style="color: red;">H</span>ierarchy at Proscan, <span style="color: red;">HUSH!</span></h4>
|
||||
<h5 style="color:gray;">February 2024, Jan Chrin</h5>
|
||||
<h4> <span style="color: red;">H</span>andsome <span style="color: gray;">Power</span> <span style="color: red;">U</span>sage <span style="color: gray;">and</span> <span style="color: red;">S</span>aving <span style="color: red;">H</span>ierarchy</span> <span style="color: gray;">at Proscan,</span> <span style="color: red;">HUSH!</span></h4>
|
||||
<h2 style="color:blue;">About</h2>
|
||||
|
||||
<p>This <b>HUSH!</b> application inherits from the Window base class.<br>
|
||||
<p>information concerning this application, such as configuration parameters or other, may be entered, e.g., <a href="page1.html">here</a></p>
|
||||
<p>The HUSH! application initiates energy saving procedures and records the power saved.<br>
|
||||
<span style="color:black; font-style:italic;">Power Saving Accounting is only activated when PROSCAN is in "Produktion" mode.</span>
|
||||
</p>
|
||||
<!--a href="page1.html">here</a></p-->
|
||||
|
||||
<h2 style="color:blue;">The Panel</h2>
|
||||
<h2 style="color:blue;">The Repository</h2>
|
||||
|
||||
<p>The application comprises two components:
|
||||
<ul>
|
||||
<li>
|
||||
A State Machine (SM) operating at the IOC level that is responsible for the power saving accounting.<br>
|
||||
<span style="color: gray;"> https://gitlab.psi.ch/proscan_apps4ops/HUSH</span><br>
|
||||
<span style="color: gray;"> /proscan/bd/applications/hush/hla/</span><br>
|
||||
</li>
|
||||
<li>
|
||||
A High Level Application (HLA) that is able to interact with the IOC (for expert use), displays accounting
|
||||
figures, and provides a panel to enable quadruples to be set to their standby/restore values.<br>
|
||||
<span style="color: gray;">https://git.psi.ch/epics_iocboot_proscan/PRO_hush</span><br>
|
||||
<span style="color: gray;">/proscan/bd/applications/hush/ioc/latest/PRO_hush/</span><br>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 style="color:blue;">The Graphical User Interface</h2>
|
||||
<h3 style="color:lightblue;">Operator Panel</h3>
|
||||
Ramp Delay: Can take on values from 0.0s to 0.2s. <br>
|
||||
Defines the delay between setting individual quadruples when initiating standby/restore.
|
||||
A value of 0.0s means that the quadruple currents are set simultaneously.
|
||||
<h3 style="color:lightblue;">Expert Panel</h3>
|
||||
Selecting the Dry Run option disables setting values to epics process variables. Used for testing.
|
||||
<h3 style="color:lightblue;">Saving Overview</h3>
|
||||
Displays a number of process variables related to the power saving accounting. <br>
|
||||
<span style="color:black; font-style:italic;">Power Saving Accounting is only activated when PROSCAN is in "Produktion" mode.</span>
|
||||
<br>
|
||||
<table>
|
||||
<tr><td>Initial Power (kw):</td> <td>The nominal power value when quadruples are in the usual powered-on state.</td></tr>
|
||||
<tr><td>Power (kw):</td> <td>The current power value.</td></tr>
|
||||
<tr><td>Saving (MWh):</td> <td>The running power saved in the current saving period.</td></tr>
|
||||
<tr><td>Time in Saving Mode:</td> <td>Time elapsed in current saving period (days hours:minutes:seconds).</td></tr>
|
||||
<tr><td>Tot Saved (MWh):</td> <td>The accumulated power saved in the calendar year.</td></tr>
|
||||
</table>
|
||||
<h3 style="color:lightblue;">Magnet Panel</h3>
|
||||
Table of current and power values for quadruples within each section.
|
||||
Quadruples may be set to their standby values or restored to their initial values.
|
||||
These action buttons are only enabled if certan conditions are met, i.e, the corresponding
|
||||
beam disrupter is closed, "Geschlossen" and the corresponding access writes are granted as
|
||||
controlled by either the global Mastership or the relevant section Submastership
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<p>These web pages are to be completed by the application owner.<br>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ from src.gui import AppGui
|
||||
|
||||
_pymodule = os.path.basename(__file__)
|
||||
_appname, _appext = _pymodule.split(".")
|
||||
_appversion = "1.0.0"
|
||||
_appversion = "2.0.0"
|
||||
# _title = """Power Usage & Saving Hierarchy""" #, HUSH!"""
|
||||
_title = """HUSH!"""
|
||||
|
||||
@@ -57,8 +57,7 @@ class StartMain(BaseWindow):
|
||||
self.gui = AppGui(self)
|
||||
|
||||
def prepare_elog_message(self):
|
||||
|
||||
|
||||
|
||||
self.system_idx = self.elog_enum.system.NONE
|
||||
self.eintrag_idx = self.elog_enum.eintrag.INFO
|
||||
self.effekt_idx = self.elog_enum.effekt.NO
|
||||
@@ -177,12 +176,10 @@ class StartMain(BaseWindow):
|
||||
"""<b>{0}</b> v {1}
|
||||
<p>Copyright © Paul Scherrer Institut (PSI).
|
||||
All rights reserved.</p>
|
||||
<p>Author: J. Chrin, Spring 2023 </p>
|
||||
<p>(EPICS db adapted from A. Kovach, 2016) <p>
|
||||
<p>Author: J. Chrin, February 2024 </p>
|
||||
<p>(EPICS db adapted from A. Kovach, 2016) </p>
|
||||
<p>IOC Administrator: H. Lutz </p>
|
||||
<p>1st Responsible: J. Chrin
|
||||
or 3301 (Control Room) </p>
|
||||
|
||||
<p>1st Responsible: J. Chrin </p>
|
||||
<p>Initiates energy saving procedures and records power saved</p>
|
||||
<p>Python {2} - Qt {3} - PyQt {4} <br>
|
||||
cafe {5} - epics {6} on {7}""".format(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
cd /proscan/bd/applications/hush/hla/1.2.0
|
||||
cd /proscan/bd/applications/hush/hla/1.3.0
|
||||
|
||||
# For use if script is sourced rather than executed
|
||||
appNameDefault="hush.sh"
|
||||
@@ -20,15 +20,29 @@ else
|
||||
echo "Interactive/sourced script"
|
||||
fi
|
||||
|
||||
# Select Python Version here. Currently one of 3.5, 3.7
|
||||
PYTHON_VERSION=3.7
|
||||
# Select Python Version here. Currently one of 3.5, 3.7, 3.8, 3.10
|
||||
PYTHON_VERSION=3.10
|
||||
|
||||
# Only neede for verison-specific packages, e.g., bigtree-
|
||||
# Not required for elog.
|
||||
PYTHON_VERSION_DIR=310
|
||||
EXTRA_PYTHON_PATH_FLAG=0
|
||||
|
||||
if [ "$1" ]; then
|
||||
|
||||
if [ "$1" == "3.5" -o "$1" == "35" ]; then
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
elif [ "$1" == "3.7" -o "$1" == "37" ]; then
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION_DIR=37
|
||||
elif [ "$1" == "3.8" -o "$1" == "38" ]; then
|
||||
PYTHON_VERSION=3.8
|
||||
PYTHON_VERSION_DIR=38
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
elif [ "$1" == "3.10" -o "$1" == "310" ]; then
|
||||
PYTHON_VERSION=3.10
|
||||
PYTHON_VERSION_DIR=310
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
else
|
||||
echo "Requested Python version is not supported"
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
@@ -42,13 +56,13 @@ _EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
#_EPICS_HOST_ARCH=${EPICS_HOST_ARCH}
|
||||
. /opt/gfa/python $PYTHON_VERSION
|
||||
|
||||
#/sf/bd/applications/OnlineModel/current/PythonModule:/sf/bd/applications/OnlineModel/current
|
||||
#/sf/bd/applications/OnlineModel/default/scripts/VA:
|
||||
|
||||
#C_EXT version for Py 3.7:
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.9.0
|
||||
|
||||
#C_EXT version
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0
|
||||
|
||||
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
|
||||
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR}
|
||||
fi
|
||||
echo $PYTHONPATH
|
||||
|
||||
STDOUT_DIR="/tmp"
|
||||
|
||||
+24
-7
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
cd /proscan/bd/applications/hush/hla/1.1.0
|
||||
cd /proscan/bd/applications/hush/hla/1.3.0
|
||||
|
||||
# For use if script is sourced rather than executed
|
||||
appNameDefault="hush.sh"
|
||||
@@ -20,20 +20,34 @@ else
|
||||
echo "Interactive/sourced script"
|
||||
fi
|
||||
|
||||
# Select Python Version here. Currently one of 3.5, 3.7
|
||||
PYTHON_VERSION=3.7
|
||||
# Select Python Version here. Currently one of 3.5, 3.7, 3,8, 3,10
|
||||
PYTHON_VERSION=3.10
|
||||
|
||||
# Only neede for verison-specific packages, e.g., bigtree-
|
||||
# Not required for elog.
|
||||
PYTHON_VERSION_DIR=310
|
||||
EXTRA_PYTHON_PATH_FLAG=0
|
||||
|
||||
if [ "$1" ]; then
|
||||
|
||||
if [ "$1" == "3.5" -o "$1" == "35" ]; then
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
elif [ "$1" == "3.7" -o "$1" == "37" ]; then
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION_DIR=37
|
||||
elif [ "$1" == "3.8" -o "$1" == "38" ]; then
|
||||
PYTHON_VERSION=3.8
|
||||
PYTHON_VERSION_DIR=38
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
elif [ "$1" == "3.10" -o "$1" == "310" ]; then
|
||||
PYTHON_VERSION=3.10
|
||||
PYTHON_VERSION_DIR=310
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
else
|
||||
echo "Requested Python version is not supported"
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
|
||||
echo "PYTHON_VERSION $PYTHON_VERSION"
|
||||
@@ -46,8 +60,11 @@ _EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
#/sf/bd/applications/OnlineModel/default/scripts/VA:
|
||||
|
||||
#C_EXT version for Py 3.7:
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.8.0
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0
|
||||
|
||||
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
|
||||
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR}
|
||||
fi
|
||||
|
||||
echo $PYTHONPATH
|
||||
|
||||
|
||||
+21
-4
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
cd /proscan/bd/applications/hush/hla/1.1.0
|
||||
cd /proscan/bd/applications/hush/hla/1.3.0
|
||||
|
||||
# For use if script is sourced rather than executed
|
||||
appNameDefault="hush.sh"
|
||||
@@ -21,14 +21,28 @@ else
|
||||
fi
|
||||
|
||||
# Select Python Version here. Currently one of 3.5, 3.7
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION=3.10
|
||||
|
||||
# Only neede for verison-specific packages, e.g., bigtree-
|
||||
# Not required for elog.
|
||||
PYTHON_VERSION_DIR=310
|
||||
EXTRA_PYTHON_PATH_FLAG=0
|
||||
|
||||
if [ "$1" ]; then
|
||||
|
||||
if [ "$1" == "3.5" -o "$1" == "35" ]; then
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
elif [ "$1" == "3.7" -o "$1" == "37" ]; then
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION_DIR=37
|
||||
elif [ "$1" == "3.8" -o "$1" == "38" ]; then
|
||||
PYTHON_VERSION=3.8
|
||||
PYTHON_VERSION_DIR=38
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
elif [ "$1" == "3.10" -o "$1" == "310" ]; then
|
||||
PYTHON_VERSION=3.10
|
||||
PYTHON_VERSION_DIR=310
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
else
|
||||
echo "Requested Python version is not supported"
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
@@ -46,8 +60,11 @@ _EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
#/sf/bd/applications/OnlineModel/default/scripts/VA:
|
||||
|
||||
#C_EXT version for Py 3.7:
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.8.0
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0
|
||||
|
||||
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
|
||||
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR}
|
||||
fi
|
||||
|
||||
echo $PYTHONPATH
|
||||
|
||||
|
||||
+23
-7
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
cd /proscan/bd/applications/hush/hla/1.1.0
|
||||
cd /proscan/bd/applications/hush/hla/1.3.0
|
||||
|
||||
# For use if script is sourced rather than executed
|
||||
appNameDefault="hush.sh"
|
||||
@@ -20,19 +20,33 @@ else
|
||||
echo "Interactive/sourced script"
|
||||
fi
|
||||
|
||||
# Select Python Version here. Currently one of 3.5, 3.7
|
||||
PYTHON_VERSION=3.7
|
||||
# Select Python Version here. Currently one of 3.5, 3.7, 3.8, 3.10
|
||||
PYTHON_VERSION=3.10
|
||||
|
||||
# Only neede for verison-specific packages, e.g., bigtree-
|
||||
# Not required for elog.
|
||||
PYTHON_VERSION_DIR=310
|
||||
EXTRA_PYTHON_PATH_FLAG=0
|
||||
|
||||
if [ "$1" ]; then
|
||||
|
||||
if [ "$1" == "3.5" -o "$1" == "35" ]; then
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
elif [ "$1" == "3.7" -o "$1" == "37" ]; then
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION_DIR=37
|
||||
elif [ "$1" == "3.8" -o "$1" == "38" ]; then
|
||||
PYTHON_VERSION=3.8
|
||||
PYTHON_VERSION_DIR=38
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
elif [ "$1" == "3.10" -o "$1" == "310" ]; then
|
||||
PYTHON_VERSION=3.10
|
||||
PYTHON_VERSION_DIR=310
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
else
|
||||
echo "Requested Python version is not supported"
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
@@ -46,9 +60,11 @@ _EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
#/sf/bd/applications/OnlineModel/default/scripts/VA:
|
||||
|
||||
#C_EXT version for Py 3.7:
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.8.0
|
||||
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0
|
||||
|
||||
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
|
||||
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR}
|
||||
fi
|
||||
echo $PYTHONPATH
|
||||
|
||||
STDOUT_DIR="/tmp"
|
||||
|
||||
+22
-4
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
cd /proscan/bd/applications/hush/hla/1.1.0
|
||||
cd /proscan/bd/applications/hush/hla/1.3.0
|
||||
|
||||
# For use if script is sourced rather than executed
|
||||
appNameDefault="hush.sh"
|
||||
@@ -21,14 +21,28 @@ else
|
||||
fi
|
||||
|
||||
# Select Python Version here. Currently one of 3.5, 3.7
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION=3.10
|
||||
|
||||
# Only neede for verison-specific packages, e.g., bigtree-
|
||||
# Not required for elog.
|
||||
PYTHON_VERSION_DIR=310
|
||||
EXTRA_PYTHON_PATH_FLAG=0
|
||||
|
||||
if [ "$1" ]; then
|
||||
|
||||
if [ "$1" == "3.5" -o "$1" == "35" ]; then
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
elif [ "$1" == "3.7" -o "$1" == "37" ]; then
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION_DIR=37
|
||||
elif [ "$1" == "3.8" -o "$1" == "38" ]; then
|
||||
PYTHON_VERSION=3.8
|
||||
PYTHON_VERSION_DIR=38
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
elif [ "$1" == "3.10" -o "$1" == "310" ]; then
|
||||
PYTHON_VERSION=3.10
|
||||
PYTHON_VERSION_DIR=310
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
else
|
||||
echo "Requested Python version is not supported"
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
@@ -36,6 +50,7 @@ if [ "$1" ]; then
|
||||
|
||||
fi
|
||||
|
||||
|
||||
echo "PYTHON_VERSION $PYTHON_VERSION"
|
||||
|
||||
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
@@ -46,9 +61,12 @@ _EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
#/sf/bd/applications/OnlineModel/default/scripts/VA:
|
||||
|
||||
#C_EXT version for Py 3.7:
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.8.0
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0
|
||||
|
||||
|
||||
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
|
||||
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR}
|
||||
fi
|
||||
echo $PYTHONPATH
|
||||
|
||||
STDOUT_DIR="/tmp"
|
||||
|
||||
+23
-4
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
cd /proscan/bd/applications/hush/hla/1.1.0
|
||||
cd /proscan/bd/applications/hush/hla/1.3.0
|
||||
|
||||
# For use if script is sourced rather than executed
|
||||
appNameDefault="hush.sh"
|
||||
@@ -21,14 +21,28 @@ else
|
||||
fi
|
||||
|
||||
# Select Python Version here. Currently one of 3.5, 3.7
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION=3.10
|
||||
|
||||
# Only neede for verison-specific packages, e.g., bigtree-
|
||||
# Not required for elog.
|
||||
PYTHON_VERSION_DIR=310
|
||||
EXTRA_PYTHON_PATH_FLAG=0
|
||||
|
||||
if [ "$1" ]; then
|
||||
|
||||
if [ "$1" == "3.5" -o "$1" == "35" ]; then
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
elif [ "$1" == "3.7" -o "$1" == "37" ]; then
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION=3.7
|
||||
PYTHON_VERSION_DIR=37
|
||||
elif [ "$1" == "3.8" -o "$1" == "38" ]; then
|
||||
PYTHON_VERSION=3.8
|
||||
PYTHON_VERSION_DIR=38
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
elif [ "$1" == "3.10" -o "$1" == "310" ]; then
|
||||
PYTHON_VERSION=3.10
|
||||
PYTHON_VERSION_DIR=310
|
||||
#EXTRA_PYTHON_PATH_FLAG=1
|
||||
else
|
||||
echo "Requested Python version is not supported"
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
@@ -36,6 +50,8 @@ if [ "$1" ]; then
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo "PYTHON_VERSION $PYTHON_VERSION"
|
||||
|
||||
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
@@ -46,9 +62,12 @@ _EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
#/sf/bd/applications/OnlineModel/default/scripts/VA:
|
||||
|
||||
#C_EXT version for Py 3.7:
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.8.0
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0
|
||||
|
||||
|
||||
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
|
||||
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR}
|
||||
fi
|
||||
echo $PYTHONPATH
|
||||
|
||||
STDOUT_DIR="/tmp"
|
||||
|
||||
+255
-124
@@ -9,6 +9,229 @@
|
||||
from PyQt5 import QtCore
|
||||
|
||||
qt_resource_data = b"\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x31\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x32\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x0b\x58\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x48\x61\x6e\x64\x73\x6f\x6d\x65\x20\x50\x6f\x77\x65\x72\
|
||||
\x20\x55\x73\x61\x67\x65\x20\x61\x6e\x64\x20\x53\x61\x76\x69\x6e\
|
||||
\x67\x20\x48\x69\x65\x72\x61\x72\x63\x68\x79\x20\x61\x74\x20\x50\
|
||||
\x72\x6f\x73\x63\x61\x6e\x2c\x20\x48\x55\x53\x48\x21\x3c\x2f\x74\
|
||||
\x69\x74\x6c\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\
|
||||
\x64\x79\x3e\x0a\x0a\x3c\x68\x35\x20\x20\x73\x74\x79\x6c\x65\x3d\
|
||||
\x22\x63\x6f\x6c\x6f\x72\x3a\x67\x72\x61\x79\x3b\x22\x3e\x46\x65\
|
||||
\x62\x72\x75\x61\x72\x79\x20\x32\x30\x32\x34\x2c\x20\x4a\x61\x6e\
|
||||
\x20\x43\x68\x72\x69\x6e\x3c\x2f\x68\x35\x3e\x0a\x3c\x68\x34\x3e\
|
||||
\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
|
||||
\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x48\x3c\x2f\x73\x70\
|
||||
\x61\x6e\x3e\x61\x6e\x64\x73\x6f\x6d\x65\x20\x3c\x73\x70\x61\x6e\
|
||||
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\
|
||||
\x72\x61\x79\x3b\x22\x3e\x50\x6f\x77\x65\x72\x3c\x2f\x73\x70\x61\
|
||||
\x6e\x3e\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\
|
||||
\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x55\x3c\x2f\
|
||||
\x73\x70\x61\x6e\x3e\x73\x61\x67\x65\x20\x3c\x73\x70\x61\x6e\x20\
|
||||
\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\x72\
|
||||
\x61\x79\x3b\x22\x3e\x61\x6e\x64\x3c\x2f\x73\x70\x61\x6e\x3e\x20\
|
||||
\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\
|
||||
\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x53\x3c\x2f\x73\x70\x61\
|
||||
\x6e\x3e\x61\x76\x69\x6e\x67\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\
|
||||
\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\
|
||||
\x22\x3e\x48\x3c\x2f\x73\x70\x61\x6e\x3e\x69\x65\x72\x61\x72\x63\
|
||||
\x68\x79\x3c\x2f\x73\x70\x61\x6e\x3e\x20\x3c\x73\x70\x61\x6e\x20\
|
||||
\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\x72\
|
||||
\x61\x79\x3b\x22\x3e\x61\x74\x20\x50\x72\x6f\x73\x63\x61\x6e\x2c\
|
||||
\x3c\x2f\x73\x70\x61\x6e\x3e\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\
|
||||
\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\
|
||||
\x22\x3e\x48\x55\x53\x48\x21\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\
|
||||
\x68\x34\x3e\x0a\x3c\x68\x32\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
|
||||
\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\x41\x62\x6f\x75\
|
||||
\x74\x3c\x2f\x68\x32\x3e\x0a\x0a\x3c\x70\x3e\x54\x68\x65\x20\x48\
|
||||
\x55\x53\x48\x21\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\
|
||||
\x20\x69\x6e\x69\x74\x69\x61\x74\x65\x73\x20\x65\x6e\x65\x72\x67\
|
||||
\x79\x20\x73\x61\x76\x69\x6e\x67\x20\x70\x72\x6f\x63\x65\x64\x75\
|
||||
\x72\x65\x73\x20\x61\x6e\x64\x20\x72\x65\x63\x6f\x72\x64\x73\x20\
|
||||
\x74\x68\x65\x20\x70\x6f\x77\x65\x72\x20\x73\x61\x76\x65\x64\x2e\
|
||||
\x3c\x62\x72\x3e\x0a\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\
|
||||
\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x61\x63\x6b\x3b\
|
||||
\x20\x66\x6f\x6e\x74\x2d\x73\x74\x79\x6c\x65\x3a\x69\x74\x61\x6c\
|
||||
\x69\x63\x3b\x22\x3e\x50\x6f\x77\x65\x72\x20\x53\x61\x76\x69\x6e\
|
||||
\x67\x20\x41\x63\x63\x6f\x75\x6e\x74\x69\x6e\x67\x20\x69\x73\x20\
|
||||
\x6f\x6e\x6c\x79\x20\x61\x63\x74\x69\x76\x61\x74\x65\x64\x20\x77\
|
||||
\x68\x65\x6e\x20\x50\x52\x4f\x53\x43\x41\x4e\x20\x69\x73\x20\x69\
|
||||
\x6e\x20\x22\x50\x72\x6f\x64\x75\x6b\x74\x69\x6f\x6e\x22\x20\x6d\
|
||||
\x6f\x64\x65\x2e\x3c\x2f\x73\x70\x61\x6e\x3e\x0a\x20\x20\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x21\x2d\x2d\x61\x20\x68\x72\x65\x66\x3d\x22\x70\
|
||||
\x61\x67\x65\x31\x2e\x68\x74\x6d\x6c\x22\x3e\x68\x65\x72\x65\x3c\
|
||||
\x2f\x61\x3e\x3c\x2f\x70\x2d\x2d\x3e\x0a\x0a\x3c\x68\x32\x20\x73\
|
||||
\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\
|
||||
\x3b\x22\x3e\x54\x68\x65\x20\x52\x65\x70\x6f\x73\x69\x74\x6f\x72\
|
||||
\x79\x3c\x2f\x68\x32\x3e\x0a\x0a\x3c\x70\x3e\x54\x68\x65\x20\x61\
|
||||
\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x72\
|
||||
\x69\x73\x65\x73\x20\x74\x77\x6f\x20\x63\x6f\x6d\x70\x6f\x6e\x65\
|
||||
\x6e\x74\x73\x3a\x0a\x20\x20\x3c\x75\x6c\x3e\x0a\x3c\x6c\x69\x3e\
|
||||
\x0a\x20\x20\x41\x20\x53\x74\x61\x74\x65\x20\x4d\x61\x63\x68\x69\
|
||||
\x6e\x65\x20\x28\x53\x4d\x29\x20\x6f\x70\x65\x72\x61\x74\x69\x6e\
|
||||
\x67\x20\x61\x74\x20\x74\x68\x65\x20\x49\x4f\x43\x20\x6c\x65\x76\
|
||||
\x65\x6c\x20\x74\x68\x61\x74\x20\x69\x73\x20\x72\x65\x73\x70\x6f\
|
||||
\x6e\x73\x69\x62\x6c\x65\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x70\
|
||||
\x6f\x77\x65\x72\x20\x73\x61\x76\x69\x6e\x67\x20\x61\x63\x63\x6f\
|
||||
\x75\x6e\x74\x69\x6e\x67\x2e\x3c\x62\x72\x3e\x0a\x20\x20\x3c\x73\
|
||||
\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\
|
||||
\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x20\x68\x74\x74\x70\x73\x3a\
|
||||
\x2f\x2f\x67\x69\x74\x6c\x61\x62\x2e\x70\x73\x69\x2e\x63\x68\x2f\
|
||||
\x70\x72\x6f\x73\x63\x61\x6e\x5f\x61\x70\x70\x73\x34\x6f\x70\x73\
|
||||
\x2f\x48\x55\x53\x48\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\x3e\
|
||||
\x0a\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
|
||||
\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x20\x2f\x70\
|
||||
\x72\x6f\x73\x63\x61\x6e\x2f\x62\x64\x2f\x61\x70\x70\x6c\x69\x63\
|
||||
\x61\x74\x69\x6f\x6e\x73\x2f\x68\x75\x73\x68\x2f\x68\x6c\x61\x2f\
|
||||
\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x62\x72\x3e\x0a\x3c\x2f\x6c\x69\
|
||||
\x3e\x0a\x20\x20\x3c\x6c\x69\x3e\x0a\x20\x20\x20\x20\x41\x20\x48\
|
||||
\x69\x67\x68\x20\x4c\x65\x76\x65\x6c\x20\x41\x70\x70\x6c\x69\x63\
|
||||
\x61\x74\x69\x6f\x6e\x20\x28\x48\x4c\x41\x29\x20\x74\x68\x61\x74\
|
||||
\x20\x69\x73\x20\x61\x62\x6c\x65\x20\x74\x6f\x20\x69\x6e\x74\x65\
|
||||
\x72\x61\x63\x74\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x49\x4f\
|
||||
\x43\x20\x28\x66\x6f\x72\x20\x65\x78\x70\x65\x72\x74\x20\x75\x73\
|
||||
\x65\x29\x2c\x20\x64\x69\x73\x70\x6c\x61\x79\x73\x20\x61\x63\x63\
|
||||
\x6f\x75\x6e\x74\x69\x6e\x67\x0a\x20\x20\x20\x20\x66\x69\x67\x75\
|
||||
\x72\x65\x73\x2c\x20\x61\x6e\x64\x20\x70\x72\x6f\x76\x69\x64\x65\
|
||||
\x73\x20\x61\x20\x70\x61\x6e\x65\x6c\x20\x74\x6f\x20\x65\x6e\x61\
|
||||
\x62\x6c\x65\x20\x71\x75\x61\x64\x72\x75\x70\x6c\x65\x73\x20\x74\
|
||||
\x6f\x20\x62\x65\x20\x73\x65\x74\x20\x74\x6f\x20\x74\x68\x65\x69\
|
||||
\x72\x20\x73\x74\x61\x6e\x64\x62\x79\x2f\x72\x65\x73\x74\x6f\x72\
|
||||
\x65\x20\x76\x61\x6c\x75\x65\x73\x2e\x3c\x62\x72\x3e\x0a\x20\x20\
|
||||
\x20\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
|
||||
\x6f\x6c\x6f\x72\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x68\x74\x74\
|
||||
\x70\x73\x3a\x2f\x2f\x67\x69\x74\x2e\x70\x73\x69\x2e\x63\x68\x2f\
|
||||
\x65\x70\x69\x63\x73\x5f\x69\x6f\x63\x62\x6f\x6f\x74\x5f\x70\x72\
|
||||
\x6f\x73\x63\x61\x6e\x2f\x50\x52\x4f\x5f\x68\x75\x73\x68\x3c\x2f\
|
||||
\x73\x70\x61\x6e\x3e\x3c\x62\x72\x3e\x0a\x20\x20\x20\x20\x20\x3c\
|
||||
\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\
|
||||
\x72\x3a\x20\x67\x72\x61\x79\x3b\x22\x3e\x2f\x70\x72\x6f\x73\x63\
|
||||
\x61\x6e\x2f\x62\x64\x2f\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\
|
||||
\x6e\x73\x2f\x68\x75\x73\x68\x2f\x69\x6f\x63\x2f\x6c\x61\x74\x65\
|
||||
\x73\x74\x2f\x50\x52\x4f\x5f\x68\x75\x73\x68\x2f\x3c\x2f\x73\x70\
|
||||
\x61\x6e\x3e\x3c\x62\x72\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\
|
||||
\x3e\x0a\x3c\x2f\x75\x6c\x3e\x0a\x20\x20\x3c\x68\x32\x20\x73\x74\
|
||||
\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\
|
||||
\x22\x3e\x54\x68\x65\x20\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x20\
|
||||
\x55\x73\x65\x72\x20\x49\x6e\x74\x65\x72\x66\x61\x63\x65\x3c\x2f\
|
||||
\x68\x32\x3e\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\x3d\
|
||||
\x22\x63\x6f\x6c\x6f\x72\x3a\x6c\x69\x67\x68\x74\x62\x6c\x75\x65\
|
||||
\x3b\x22\x3e\x4f\x70\x65\x72\x61\x74\x6f\x72\x20\x50\x61\x6e\x65\
|
||||
\x6c\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x52\x61\x6d\x70\x20\x44\x65\
|
||||
\x6c\x61\x79\x3a\x20\x43\x61\x6e\x20\x74\x61\x6b\x65\x20\x6f\x6e\
|
||||
\x20\x76\x61\x6c\x75\x65\x73\x20\x66\x72\x6f\x6d\x20\x30\x2e\x30\
|
||||
\x73\x20\x74\x6f\x20\x30\x2e\x32\x73\x2e\x20\x3c\x62\x72\x3e\x0a\
|
||||
\x20\x20\x44\x65\x66\x69\x6e\x65\x73\x20\x74\x68\x65\x20\x64\x65\
|
||||
\x6c\x61\x79\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x73\x65\x74\x74\
|
||||
\x69\x6e\x67\x20\x69\x6e\x64\x69\x76\x69\x64\x75\x61\x6c\x20\x71\
|
||||
\x75\x61\x64\x72\x75\x70\x6c\x65\x73\x20\x77\x68\x65\x6e\x20\x69\
|
||||
\x6e\x69\x74\x69\x61\x74\x69\x6e\x67\x20\x73\x74\x61\x6e\x64\x62\
|
||||
\x79\x2f\x72\x65\x73\x74\x6f\x72\x65\x2e\x0a\x20\x20\x41\x20\x76\
|
||||
\x61\x6c\x75\x65\x20\x6f\x66\x20\x30\x2e\x30\x73\x20\x6d\x65\x61\
|
||||
\x6e\x73\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x71\x75\x61\x64\
|
||||
\x72\x75\x70\x6c\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x73\x20\x61\
|
||||
\x72\x65\x20\x73\x65\x74\x20\x73\x69\x6d\x75\x6c\x74\x61\x6e\x65\
|
||||
\x6f\x75\x73\x6c\x79\x2e\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\
|
||||
\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x6c\x69\x67\x68\x74\x62\
|
||||
\x6c\x75\x65\x3b\x22\x3e\x45\x78\x70\x65\x72\x74\x20\x50\x61\x6e\
|
||||
\x65\x6c\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x53\x65\x6c\x65\x63\x74\
|
||||
\x69\x6e\x67\x20\x74\x68\x65\x20\x44\x72\x79\x20\x52\x75\x6e\x20\
|
||||
\x6f\x70\x74\x69\x6f\x6e\x20\x64\x69\x73\x61\x62\x6c\x65\x73\x20\
|
||||
\x73\x65\x74\x74\x69\x6e\x67\x20\x76\x61\x6c\x75\x65\x73\x20\x74\
|
||||
\x6f\x20\x65\x70\x69\x63\x73\x20\x70\x72\x6f\x63\x65\x73\x73\x20\
|
||||
\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x2e\x20\x55\x73\x65\x64\x20\
|
||||
\x66\x6f\x72\x20\x74\x65\x73\x74\x69\x6e\x67\x2e\x20\x3c\x62\x72\
|
||||
\x3e\x0a\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
|
||||
\x6f\x6c\x6f\x72\x3a\x6c\x69\x67\x68\x74\x62\x6c\x75\x65\x3b\x22\
|
||||
\x3e\x53\x61\x76\x69\x6e\x67\x20\x4f\x76\x65\x72\x76\x69\x65\x77\
|
||||
\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x44\x69\x73\x70\x6c\x61\x79\x73\
|
||||
\x20\x61\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x70\x72\x6f\
|
||||
\x63\x65\x73\x73\x20\x76\x61\x72\x61\x69\x62\x6c\x65\x73\x20\x72\
|
||||
\x65\x6c\x61\x74\x65\x64\x20\x74\x6f\x20\x74\x68\x65\x20\x70\x6f\
|
||||
\x77\x65\x72\x20\x73\x61\x76\x69\x6e\x67\x20\x61\x63\x63\x6f\x75\
|
||||
\x6e\x74\x69\x6e\x67\x20\x3c\x62\x72\x3e\x0a\x20\x20\x3c\x73\x70\
|
||||
\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\
|
||||
\x62\x6c\x61\x63\x6b\x3b\x20\x66\x6f\x6e\x74\x2d\x73\x74\x79\x6c\
|
||||
\x65\x3a\x69\x74\x61\x6c\x69\x63\x3b\x22\x3e\x50\x6f\x77\x65\x72\
|
||||
\x20\x53\x61\x76\x69\x6e\x67\x20\x41\x63\x63\x6f\x75\x6e\x74\x69\
|
||||
\x6e\x67\x20\x69\x73\x20\x6f\x6e\x6c\x79\x20\x61\x63\x74\x69\x76\
|
||||
\x61\x74\x65\x64\x20\x77\x68\x65\x6e\x20\x50\x52\x4f\x53\x43\x41\
|
||||
\x4e\x20\x69\x73\x20\x69\x6e\x20\x22\x50\x72\x6f\x64\x75\x6b\x74\
|
||||
\x69\x6f\x6e\x22\x20\x6d\x6f\x64\x65\x2e\x3c\x2f\x73\x70\x61\x6e\
|
||||
\x3e\x0a\x20\x20\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\
|
||||
\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x49\x6e\x69\x74\x69\x61\x6c\x20\
|
||||
\x50\x6f\x77\x65\x72\x20\x28\x6b\x77\x29\x3a\x3c\x2f\x74\x64\x3e\
|
||||
\x20\x3c\x74\x64\x3e\x54\x68\x65\x20\x6e\x6f\x6d\x69\x6e\x61\x6c\
|
||||
\x20\x70\x6f\x77\x65\x72\x20\x76\x61\x6c\x75\x65\x20\x77\x68\x65\
|
||||
\x6e\x20\x71\x75\x61\x64\x72\x75\x70\x6c\x65\x73\x20\x61\x72\x65\
|
||||
\x20\x69\x6e\x20\x74\x68\x65\x20\x75\x73\x75\x61\x6c\x20\x70\x6f\
|
||||
\x77\x65\x72\x65\x64\x2d\x6f\x6e\x20\x73\x74\x61\x74\x65\x2e\x3c\
|
||||
\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\
|
||||
\x72\x3e\x3c\x74\x64\x3e\x50\x6f\x77\x65\x72\x20\x28\x6b\x77\x29\
|
||||
\x3a\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x3e\x54\x68\x65\x20\x63\
|
||||
\x75\x72\x72\x65\x6e\x74\x20\x70\x6f\x77\x65\x72\x20\x76\x61\x6c\
|
||||
\x75\x65\x2e\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\
|
||||
\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x53\x61\x76\x69\x6e\x67\
|
||||
\x20\x28\x4d\x57\x68\x29\x3a\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\
|
||||
\x3e\x54\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x70\x6f\x77\
|
||||
\x65\x72\x20\x76\x61\x6c\x75\x65\x2e\x3c\x2f\x74\x64\x3e\x3c\x2f\
|
||||
\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\
|
||||
\x54\x69\x6d\x65\x20\x69\x6e\x20\x53\x61\x76\x69\x6e\x67\x20\x4d\
|
||||
\x6f\x64\x65\x3a\x3c\x2f\x74\x64\x3e\x20\x3c\x74\x64\x3e\x54\x69\
|
||||
\x6d\x65\x20\x65\x6c\x61\x70\x73\x65\x64\x20\x69\x6e\x20\x63\x75\
|
||||
\x72\x72\x65\x6e\x74\x20\x73\x61\x76\x69\x6e\x67\x20\x70\x65\x72\
|
||||
\x69\x6f\x64\x20\x28\x64\x61\x79\x73\x20\x68\x6f\x75\x72\x73\x3a\
|
||||
\x6d\x69\x6e\x75\x74\x65\x73\x3a\x73\x65\x63\x6f\x6e\x64\x73\x29\
|
||||
\x2e\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\
|
||||
\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x54\x6f\x74\x20\x53\x61\x76\x65\
|
||||
\x64\x20\x28\x4d\x57\x68\x29\x3a\x3c\x2f\x74\x64\x3e\x20\x3c\x74\
|
||||
\x64\x3e\x54\x68\x65\x20\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\
|
||||
\x64\x20\x70\x6f\x77\x65\x72\x20\x73\x61\x76\x65\x64\x20\x69\x6e\
|
||||
\x20\x74\x68\x65\x20\x63\x61\x6c\x65\x6e\x64\x61\x72\x20\x79\x65\
|
||||
\x61\x72\x2e\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x0a\x20\x20\
|
||||
\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x20\x0a\x20\x20\x0a\x20\x20\x0a\
|
||||
\x20\x20\x0a\x0a\x0a\x0a\x0a\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\
|
||||
\x2f\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x33\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x34\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x32\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x33\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\x80\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
@@ -32,118 +255,10 @@ qt_resource_data = b"\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x32\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x33\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x33\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x34\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x00\xa7\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x57\x65\x62\x20\x48\x65\x6c\x70\x3c\x2f\x74\x69\x74\x6c\
|
||||
\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\
|
||||
\x0a\x0a\x3c\x70\x3e\x3c\x62\x3e\x50\x61\x67\x65\x20\x31\x20\x6f\
|
||||
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
|
||||
\x70\x3e\x0a\x3c\x70\x3e\x20\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\
|
||||
\x22\x70\x61\x67\x65\x32\x2e\x68\x74\x6d\x6c\x22\x3e\x20\x4e\x65\
|
||||
\x78\x74\x3c\x2f\x61\x3e\x3c\x2f\x70\x3e\x0a\x3c\x70\x3e\x3c\x62\
|
||||
\x3e\x65\x74\x63\x2e\x2e\x2e\x3c\x2f\x62\x3e\x20\x65\x74\x63\x2e\
|
||||
\x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
|
||||
\x68\x74\x6d\x6c\x3e\x0a\
|
||||
\x00\x00\x03\x29\
|
||||
\x3c\
|
||||
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
|
||||
\x65\x3e\x48\x61\x6e\x64\x73\x6f\x6d\x65\x20\x50\x6f\x77\x65\x72\
|
||||
\x20\x55\x73\x61\x67\x65\x20\x61\x6e\x64\x20\x53\x61\x76\x69\x6e\
|
||||
\x67\x20\x48\x69\x65\x72\x61\x72\x63\x68\x79\x20\x61\x74\x20\x50\
|
||||
\x72\x6f\x73\x63\x61\x6e\x2c\x20\x48\x55\x53\x48\x21\x3c\x2f\x74\
|
||||
\x69\x74\x6c\x65\x3e\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\
|
||||
\x64\x79\x3e\x0a\x0a\x3c\x68\x35\x20\x20\x73\x74\x79\x6c\x65\x3d\
|
||||
\x22\x63\x6f\x6c\x6f\x72\x3a\x67\x72\x61\x79\x3b\x22\x3e\x4a\x61\
|
||||
\x6e\x75\x61\x72\x79\x20\x32\x30\x32\x34\x2c\x20\x4a\x61\x6e\x20\
|
||||
\x43\x68\x72\x69\x6e\x3c\x2f\x68\x35\x3e\x0a\x3c\x68\x34\x3e\x20\
|
||||
\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\
|
||||
\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x48\x3c\x2f\x73\x70\x61\
|
||||
\x6e\x3e\x61\x6e\x64\x73\x6f\x6d\x65\x20\x3c\x73\x70\x61\x6e\x20\
|
||||
\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x67\x72\
|
||||
\x61\x79\x3b\x22\x3e\x50\x6f\x77\x65\x72\x3c\x2f\x73\x70\x61\x6e\
|
||||
\x3e\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\
|
||||
\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x55\x3c\x2f\x73\
|
||||
\x70\x61\x6e\x3e\x73\x61\x67\x65\x20\x61\x6e\x64\x20\x3c\x73\x70\
|
||||
\x61\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\
|
||||
\x20\x72\x65\x64\x3b\x22\x3e\x53\x3c\x2f\x73\x70\x61\x6e\x3e\x61\
|
||||
\x76\x69\x6e\x67\x20\x3c\x73\x70\x61\x6e\x20\x73\x74\x79\x6c\x65\
|
||||
\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x65\x64\x3b\x22\x3e\x48\
|
||||
\x3c\x2f\x73\x70\x61\x6e\x3e\x69\x65\x72\x61\x72\x63\x68\x79\x20\
|
||||
\x61\x74\x20\x50\x72\x6f\x73\x63\x61\x6e\x2c\x20\x3c\x73\x70\x61\
|
||||
\x6e\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\
|
||||
\x72\x65\x64\x3b\x22\x3e\x48\x55\x53\x48\x21\x3c\x2f\x73\x70\x61\
|
||||
\x6e\x3e\x3c\x2f\x68\x34\x3e\x0a\x3c\x68\x32\x20\x73\x74\x79\x6c\
|
||||
\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\
|
||||
\x41\x62\x6f\x75\x74\x3c\x2f\x68\x32\x3e\x0a\x0a\x3c\x70\x3e\x54\
|
||||
\x68\x69\x73\x20\x3c\x62\x3e\x48\x55\x53\x48\x21\x3c\x2f\x62\x3e\
|
||||
\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x69\x6e\x68\
|
||||
\x65\x72\x69\x74\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x57\
|
||||
\x69\x6e\x64\x6f\x77\x20\x62\x61\x73\x65\x20\x63\x6c\x61\x73\x73\
|
||||
\x2e\x3c\x62\x72\x3e\x20\x20\x0a\x3c\x70\x3e\x69\x6e\x66\x6f\x72\
|
||||
\x6d\x61\x74\x69\x6f\x6e\x20\x63\x6f\x6e\x63\x65\x72\x6e\x69\x6e\
|
||||
\x67\x20\x74\x68\x69\x73\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\
|
||||
\x6f\x6e\x2c\x20\x73\x75\x63\x68\x20\x61\x73\x20\x63\x6f\x6e\x66\
|
||||
\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x20\x70\x61\x72\x61\x6d\x65\
|
||||
\x74\x65\x72\x73\x20\x6f\x72\x20\x6f\x74\x68\x65\x72\x2c\x20\x6d\
|
||||
\x61\x79\x20\x62\x65\x20\x65\x6e\x74\x65\x72\x65\x64\x2c\x20\x65\
|
||||
\x2e\x67\x2e\x2c\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\x22\x70\x61\
|
||||
\x67\x65\x31\x2e\x68\x74\x6d\x6c\x22\x3e\x68\x65\x72\x65\x3c\x2f\
|
||||
\x61\x3e\x3c\x2f\x70\x3e\x0a\x0a\x3c\x68\x32\x20\x73\x74\x79\x6c\
|
||||
\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x75\x65\x3b\x22\x3e\
|
||||
\x54\x68\x65\x20\x50\x61\x6e\x65\x6c\x3c\x2f\x68\x32\x3e\x0a\x0a\
|
||||
\x3c\x70\x3e\x54\x68\x65\x73\x65\x20\x77\x65\x62\x20\x70\x61\x67\
|
||||
\x65\x73\x20\x61\x72\x65\x20\x74\x6f\x20\x62\x65\x20\x63\x6f\x6d\
|
||||
\x70\x6c\x65\x74\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x61\x70\
|
||||
\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x20\x6f\x77\x6e\x65\x72\x2e\
|
||||
\x3c\x62\x72\x3e\x0a\x0a\x0a\x0a\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\
|
||||
\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
|
||||
"
|
||||
|
||||
qt_resource_name = b"\
|
||||
\x00\x0a\
|
||||
\x08\x8a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x7a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x5a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x6a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x4a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
@@ -151,33 +266,49 @@ qt_resource_name = b"\
|
||||
\x0c\xba\xf2\x7c\
|
||||
\x00\x69\
|
||||
\x00\x6e\x00\x64\x00\x65\x00\x78\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x6a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x5a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x8a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
\x00\x0a\
|
||||
\x08\x7a\x34\x9c\
|
||||
\x00\x70\
|
||||
\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
|
||||
"
|
||||
|
||||
qt_resource_struct_v1 = b"\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\
|
||||
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x02\x85\
|
||||
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x2f\
|
||||
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x01\xda\
|
||||
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x84\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
|
||||
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x03\x30\
|
||||
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xb2\
|
||||
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x07\
|
||||
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xe1\
|
||||
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x5d\
|
||||
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
|
||||
"
|
||||
|
||||
qt_resource_struct_v2 = b"\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x02\x85\
|
||||
\x00\x00\x01\x8d\x9c\xeb\xd9\x5b\
|
||||
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x2f\
|
||||
\x00\x00\x01\x8d\x9c\xeb\xd9\x5c\
|
||||
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x01\xda\
|
||||
\x00\x00\x01\x8d\x9c\xeb\xd9\x5e\
|
||||
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x84\
|
||||
\x00\x00\x01\x8d\x9c\xeb\xd9\x5f\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
|
||||
\x00\x00\x01\x8d\x9c\xeb\xd9\x61\
|
||||
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x03\x30\
|
||||
\x00\x00\x01\x8d\xa7\xc7\x77\x2b\
|
||||
\x00\x00\x01\x8d\xc6\x98\xaa\x4d\
|
||||
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xb2\
|
||||
\x00\x00\x01\x8d\xc6\x98\xaa\x50\
|
||||
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x07\
|
||||
\x00\x00\x01\x8d\xc6\x98\xaa\x52\
|
||||
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xe1\
|
||||
\x00\x00\x01\x8d\xc6\x98\xaa\x54\
|
||||
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x5d\
|
||||
\x00\x00\x01\x8d\xc6\x98\xaa\x55\
|
||||
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
|
||||
\x00\x00\x01\x8d\xd0\x41\x77\x24\
|
||||
"
|
||||
|
||||
qt_version = QtCore.qVersion().split('.')
|
||||
|
||||
+345
-97
@@ -1,5 +1,6 @@
|
||||
'''The GUI module for Savings Overview and magnet control
|
||||
'''
|
||||
import decimal
|
||||
import getpass
|
||||
import os
|
||||
import random
|
||||
@@ -14,15 +15,21 @@ from qtpy.QtWidgets import (
|
||||
QMessageBox, QPushButton, QTabBar, QTabWidget, QTableWidgetItem,
|
||||
QTextEdit, QWidget)
|
||||
|
||||
import elog
|
||||
from common.packages import elog
|
||||
|
||||
from apps4ops.bdbase.utils import _line
|
||||
from apps4ops.bdbase.enumkind import MsgSeverity
|
||||
from caqtwidgets.pvwidgets import (
|
||||
CAQLabel, CAQLineEdit, CAQMenu, CAQMessageButton, CAQTableWidget, QHLine)
|
||||
CAQLabel, CAQLineEdit, CAQMenu, CAQMessageButton, CAQTableWidget,
|
||||
CAQTextEntry, QHLine)
|
||||
|
||||
_pymodule = os.path.basename(__file__)
|
||||
|
||||
file_path = elog.__file__
|
||||
|
||||
# storing the directory in dir variable
|
||||
dir = os.path.dirname(file_path)
|
||||
print(dir)
|
||||
|
||||
class AppGui(QWidget):
|
||||
'''The GUI class
|
||||
@@ -36,7 +43,7 @@ class AppGui(QWidget):
|
||||
self.check_status = self.parent.check_status
|
||||
self.check_status_list = self.parent.check_status_list
|
||||
self.elog_enum = self.parent.elog_enum
|
||||
|
||||
self.input_parameters = self.parent.input_parameters
|
||||
# Required for caqtwidgets
|
||||
self.settings = self.parent.settings
|
||||
self.show_log_message = self.parent.show_log_message
|
||||
@@ -50,12 +57,12 @@ class AppGui(QWidget):
|
||||
self.gui_frame.expert_parameters_group.setFixedWidth(260)
|
||||
self.gui_frame.expert_parameters_group.setFixedHeight(130)
|
||||
self.gui_frame.operator_parameters_group.setFixedWidth(260)
|
||||
if "Controlroom" in self.settings.data["Master"]:
|
||||
self.gui_frame.operator_parameters_group.setFixedHeight(160)
|
||||
else:
|
||||
self.gui_frame.operator_parameters_group.setFixedHeight(130)
|
||||
#if "Controlroom" in self.settings.data["Master"]:
|
||||
# self.gui_frame.operator_parameters_group.setFixedHeight(160)
|
||||
#else:
|
||||
self.gui_frame.operator_parameters_group.setFixedHeight(130)
|
||||
self.gui_frame.measurement_tab_wgt.setFixedWidth(440)
|
||||
self.gui_frame.measurement_tab_wgt.setFixedHeight(240)
|
||||
self.gui_frame.measurement_tab_wgt.setFixedHeight(200)
|
||||
# self.gui_frame.operator_wgt.setFixedHeight(240)
|
||||
# self.gui_frame.expert_wgt.setFixedHeight(240)
|
||||
|
||||
@@ -69,22 +76,21 @@ class AppGui(QWidget):
|
||||
self.gui_frame.central_tab_widget.tabBar().setTabText(0, "Control")
|
||||
#self.gui_frame.central_tab_widget.tabBar().setTabText(1, "IOC")
|
||||
|
||||
#wgt = self.gui_frame.central_tab_widget.widget(1)
|
||||
#lay = self.gui_frame.central_tab_widget.widget(1).layout()
|
||||
|
||||
|
||||
if "Controlroom" in self.assigned_master:
|
||||
'''
|
||||
shift_type = CAQMenu(self, pv_name="PRO-HUSH:SHIFT-TYPE")
|
||||
self.gui_frame.operator_parameters_group.layout().insertWidget(
|
||||
0, QLabel(" Shift Type:"))
|
||||
self.gui_frame.operator_parameters_group.layout().insertWidget(
|
||||
1, shift_type)
|
||||
|
||||
'''
|
||||
self.gui_frame.results_wgt.setFixedWidth(1400)
|
||||
self.gui_frame.results_wgt.setFixedHeight(400)
|
||||
self.gui_frame.results_wgt.setFixedHeight(860)
|
||||
self.gui_frame.results_wgt.setLayout(self.gui_frame.results_layout)
|
||||
|
||||
self.gui_frame.results_layout.addWidget(
|
||||
self.reset_ioc_sm(), 0, 0, 1, 1)
|
||||
|
||||
|
||||
sec_prefix_list = [
|
||||
sub[0: sub.index("-")] for sub in self.sec_state_list]
|
||||
@@ -101,8 +107,14 @@ class AppGui(QWidget):
|
||||
label.setScaledContents(True)
|
||||
|
||||
self.gui_frame.results_layout.addWidget(label, 0, 2, 1, 1, Qt.AlignTop)
|
||||
|
||||
self.gui_frame.results_layout.setContentsMargins(15, 15, 15, 15)
|
||||
self.gui_frame.results_layout.setVerticalSpacing(20)
|
||||
self.gui_frame.results_layout.setHorizontalSpacing(10)
|
||||
|
||||
self.gui_frame.results_layout.addWidget(
|
||||
self.reset_lastpwr(), 1, 0, 1, 1,
|
||||
Qt.AlignmentFlag(Qt.AlignTop|Qt.AlignCenter))
|
||||
|
||||
|
||||
self.expert_labels = self.parent.expert_labels
|
||||
self.settings = self.parent.settings
|
||||
@@ -113,8 +125,6 @@ class AppGui(QWidget):
|
||||
self.table_pwr_dict = {}
|
||||
self.offtime_dict = {}
|
||||
|
||||
# self.I_min = 0.002 HIPA
|
||||
|
||||
self.cafe.openPrepare()
|
||||
self.cafe.open(["PRO-HUSH:LASTPWR", "PRO-HUSH:TOTPWR",
|
||||
"PRO:LASTSAVE", "PPO-HUSH:TOTSAVE"])
|
||||
@@ -122,39 +132,51 @@ class AppGui(QWidget):
|
||||
self.cafe.openNowAndWait(0.1)
|
||||
|
||||
self.magnet_tab_wgt = self.group_sector_qtabwidget()
|
||||
self.magnet_tab_wgt.setFixedHeight(380)
|
||||
self.gui_frame.measurement_layout.addWidget(
|
||||
self.magnet_tab_wgt, 0, 2, 6, 20, alignment=Qt.AlignTop)
|
||||
self.magnet_tab_wgt, 0, 2, 3, 2, alignment=Qt.AlignTop)
|
||||
|
||||
idx = self.magnet_tab_wgt.count() - 1
|
||||
self.submastership_dict = {
|
||||
"G1": None, "G2": None, "O2": None, "PIF": None, "G3": None}
|
||||
|
||||
_row = self.gui_frame.measurement_layout.rowCount()
|
||||
self.gui_frame.measurement_layout.addWidget(
|
||||
self.group_submaster_status(), _row, 2, 2, 2,
|
||||
Qt.AlignTop|Qt.AlignHCenter)
|
||||
|
||||
self.sh_idx = self.magnet_tab_wgt.count() - 1
|
||||
for i in range(0, self.magnet_tab_wgt.count()):
|
||||
tabtext = self.magnet_tab_wgt.tabText(i)
|
||||
if tabtext == "SH":
|
||||
idx = i
|
||||
self.sh_idx = i
|
||||
break
|
||||
|
||||
self.magnet_tab_wgt.setCurrentIndex(idx)
|
||||
self.magnet_tab_wgt.setCurrentIndex(self.sh_idx)
|
||||
|
||||
status_wgt = self.group_sector_status()
|
||||
status_wgt.setFixedHeight(340)
|
||||
|
||||
#qf = QFrame()
|
||||
#qf.setFixedHeight(15)
|
||||
#self.gui_frame.measurement_layout.addWidget(qf, 2, 0, 1, 1)
|
||||
|
||||
self.gui_frame.measurement_layout.addWidget(
|
||||
status_wgt, 3, 0, 2, 1, alignment=Qt.AlignTop) # | Qt.AlignHCenter)
|
||||
status_wgt, 1, 0, 4, 1, alignment=Qt.AlignTop) # | Qt.AlignHCenter)
|
||||
|
||||
qf = QFrame()
|
||||
qf.setFixedHeight(5)
|
||||
self.gui_frame.measurement_layout.addWidget(
|
||||
qf, 2, 0, 1, 1, alignment=Qt.AlignTop)
|
||||
#qf = QFrame()
|
||||
#qf.setFixedHeight(1)
|
||||
#self.gui_frame.measurement_layout.addWidget(qf, 5, 0, 1, 1)
|
||||
|
||||
qf1 = QFrame()
|
||||
qf1.setFixedWidth(10)
|
||||
qf1.setFixedWidth(1)
|
||||
|
||||
self.gui_frame.measurement_layout.addWidget(
|
||||
qf1, 4, 1, 2, 1, alignment=Qt.AlignTop)
|
||||
qf1, 5, 1, 1, 1, alignment=Qt.AlignTop)
|
||||
|
||||
#qf2 = QFrame()
|
||||
#qf2.setFixedWidth(1)
|
||||
#self.gui_frame.measurement_layout.addWidget(
|
||||
# qf2, 0, 22, 1, 1, alignment=Qt.AlignTop)
|
||||
qf2 = QFrame()
|
||||
qf2.setFixedWidth(1)
|
||||
self.gui_frame.measurement_layout.addWidget(
|
||||
qf2, 0, 7, 1, 1, alignment=Qt.AlignTop)
|
||||
|
||||
# Overload from guiheader.py
|
||||
self.sector_disruptor_dict = {}
|
||||
@@ -166,12 +188,20 @@ class AppGui(QWidget):
|
||||
self.sector_disruptor_dict["G3"] = "Geschlossen"
|
||||
|
||||
def enable_disable_beamline(sect, sector_line, value):
|
||||
|
||||
def is_submaster(local_sector):
|
||||
if local_sector in self.submastership_dict:
|
||||
return bool(
|
||||
"MASTERSHIP" in self.submastership_dict[local_sector])
|
||||
#"UNDEF" in self.submastership_dict[local_sector])
|
||||
#"Geschlossen" in self.submastership_dict[local_sector])
|
||||
else:
|
||||
return self.gui_header.is_master()
|
||||
|
||||
self.sector_disruptor_dict[sect] = value
|
||||
#print("sect/value", sect, value)
|
||||
for sector in sector_line:
|
||||
if "Geschlossen" not in self.sector_disruptor_dict[
|
||||
sector] or not self.gui_header.is_master():
|
||||
sector] or not is_submaster(sector): #not self.gui_header.is_master():
|
||||
#print("sector/value", sector, value)
|
||||
#print("isMaster", self.gui_header.is_master())
|
||||
#print("master", self.gui_header.mastership)
|
||||
@@ -185,7 +215,6 @@ class AppGui(QWidget):
|
||||
sector].restore_value_button.isEnabled():
|
||||
self.table_sol_dict[
|
||||
sector].restore_value_button.setEnabled(False)
|
||||
|
||||
else:
|
||||
print("Geschlossen? sector/value/ismaster", sector, value,
|
||||
self.gui_header.mastership)
|
||||
@@ -291,27 +320,56 @@ class AppGui(QWidget):
|
||||
"B1B2"].restore_value_button.isEnabled():
|
||||
self.table_sol_dict[
|
||||
"B1B2"].restore_value_button.setEnabled(True)
|
||||
|
||||
|
||||
'''
|
||||
if "B1B2" in self.settings.data["headerMagnetSector"]:
|
||||
self.gui_header.shift_type.trigger_monitor_str.connect(
|
||||
receive_b1b2_update)
|
||||
#holds shifttype
|
||||
pvd = self.cafe.getPVCache(
|
||||
self.settings.data["B1B2"]["status"], dt="str")
|
||||
receive_b1b2_update(pvd.value[0], pvd.alarmStatus, pvd.alarmSeverity)
|
||||
receive_b1b2_update(pvd.value[0], pvd.alarmStatus, pvd.alarmSeverity)
|
||||
'''
|
||||
# end overload from guiheader.py
|
||||
|
||||
@Slot()
|
||||
|
||||
@Slot()
|
||||
def receive_master_update(value, status, alarm_severity):
|
||||
idx = self.sh_idx
|
||||
for key, wgt_val in self.gui_header.master_to_wgt.items():
|
||||
#master = self.gui_header.beam_current_wgt_group[wgt_val]
|
||||
if value in key:
|
||||
for i in range(0, self.magnet_tab_wgt.count()):
|
||||
tabtext = self.magnet_tab_wgt.tabText(i)
|
||||
if tabtext == wgt_val:
|
||||
idx = i
|
||||
break
|
||||
self.magnet_tab_wgt.setCurrentIndex(idx)
|
||||
|
||||
self.gui_header.beam_current_wgt_dict[
|
||||
"MASTER"].trigger_monitor_str.connect(receive_master_update)
|
||||
pvd = self.cafe.getPVCache(
|
||||
self.settings.data["MASTER"]["status"], dt="str")
|
||||
try:
|
||||
self.gui_header.beam_current_wgt_dict[
|
||||
"MASTER"].trigger_monitor_str.emit(pvd.value[0], pvd.status,
|
||||
pvd.alarmSeverity)
|
||||
except Exception as ex:
|
||||
print("EMIT FAILED", str(ex))
|
||||
#print("EMIT SUCCEEDED ===========>")
|
||||
#receive_master_update(pvd.value[0], pvd.status, pvd.alarmSeverity)
|
||||
|
||||
@Slot(int)
|
||||
def simulation_update(state):
|
||||
if bool(state):
|
||||
color = self.gui_header.sim_color
|
||||
else:
|
||||
color = self.gui_header.op_color
|
||||
print("SIM STATE CHANGED", state, color, flush=True)
|
||||
|
||||
self.gui_header.pf_off_color = color
|
||||
###JC CHANGE BACK#
|
||||
###JC COMMENT OUT TO MAKE VISIBLE WHEN TESTING#
|
||||
self.gui_header.color_pframe(color)
|
||||
print("SIM STATE CHANGED//", state, color, flush=True)
|
||||
#print("SIMULATION IS TRUE??", self.input_parameters["simulation"])
|
||||
|
||||
self.gui_frame.simulation_checkbox.stateChanged.connect(
|
||||
simulation_update)
|
||||
@@ -373,6 +431,77 @@ class AppGui(QWidget):
|
||||
print("MONITOR======>", sector, state)
|
||||
break
|
||||
|
||||
'''
|
||||
@Slot(str, int, int)
|
||||
def receive_submaster_update(self, value, status, alarm_severity):
|
||||
print("VALUE=========================", value, flush=True)
|
||||
sender = self.sender()
|
||||
print("sender, value", sender, value, flush=True)
|
||||
print("sender.sector", sender.sector, flush=True)
|
||||
self.submastership_dict[sender.sector] = value
|
||||
print("VALUE ===============================", self.submastership_dict[sender.sector], flush=True)
|
||||
'''
|
||||
|
||||
def group_submaster_status(self):
|
||||
@Slot(str, int, int)
|
||||
def receive_submaster_update(value, status, alarm_severity):
|
||||
print("VALUE=========================", value, flush=True)
|
||||
sender = self.sender()
|
||||
print("sender, value", sender, value, flush=True)
|
||||
print("sender.sector", sender.sector, flush=True)
|
||||
self.submastership_dict[sender.sector] = value
|
||||
print("VALUE ===============================", self.submastership_dict[sender.sector], flush=True)
|
||||
|
||||
pv_id = "mastershipStatus"
|
||||
qgrid = QGridLayout()
|
||||
qgb = QGroupBox("Mastership Status")
|
||||
no_beamlines = 0
|
||||
for i, sector in enumerate(self.settings.data["headerMagnetSector"]):
|
||||
if "mastershipStatus" in self.settings.data[sector]:
|
||||
no_beamlines += 1
|
||||
qgb_inner = QGroupBox(sector)
|
||||
#qgb_inner.setFixedHeight(80)
|
||||
qgb_inner.setObjectName("INNER")
|
||||
text_color = self.settings.data[sector]["color"]
|
||||
#print("text color", text_color)
|
||||
sss = ("QGroupBox {" + "color: {0};".format(text_color) +
|
||||
" font-weight: bold;}")
|
||||
qgb_inner.setStyleSheet(sss)
|
||||
#ql = QLabel(sector)
|
||||
pv_name = self.settings.data[sector][pv_id]
|
||||
print(type(pv_name))
|
||||
#pv_name = u"{0}".format(pv_name)
|
||||
print("pv_name", pv_name, "in sector", sector)
|
||||
pv_name = pv_name.encode('utf-8')
|
||||
print(type(pv_name))
|
||||
pv_name = pv_name.decode('ascii')
|
||||
qw = CAQLabel(self, pv_name=str(pv_name))
|
||||
qw.sector = sector
|
||||
#self.submastership_dict[sector] = None
|
||||
qw.trigger_monitor_str.connect(receive_submaster_update)
|
||||
print(i, sector)
|
||||
|
||||
value = self.cafe.getCache(
|
||||
self.settings.data[sector][pv_id], dt='str')
|
||||
qw.trigger_monitor_str.emit(value, 1, 0)
|
||||
print("emitted", flush=True)
|
||||
qw.setFixedWidth(120)
|
||||
qw.setText("submastership")
|
||||
qw_layout = QHBoxLayout()
|
||||
qw_layout.addWidget(qw)
|
||||
qgb_inner.setLayout(qw_layout)
|
||||
#qgrid.addWidget(ql, 0, i, 1, 1, Qt.AlignBottom)
|
||||
qgrid.addWidget(qgb_inner, 0, i, 1, 1,
|
||||
Qt.AlignTop|Qt.AlignHCenter)
|
||||
|
||||
|
||||
|
||||
qgb.setContentsMargins(9, 9, 9, 9)
|
||||
qgb.setObjectName("OUTER")
|
||||
qgb.setLayout(qgrid)
|
||||
qgb.setFixedWidth((150 * no_beamlines) + 20)
|
||||
return qgb
|
||||
|
||||
def group_sector_status(self):
|
||||
|
||||
qgrid = QGridLayout()
|
||||
@@ -755,8 +884,9 @@ class AppGui(QWidget):
|
||||
sum_pwr = sum(list(row_pwr_dict.values()))
|
||||
pv_last_pwr = "P" + target.sector + "-HUSH:LASTPWR"
|
||||
|
||||
stat = self.cafe.set(pv_last_pwr, sum_pwr)
|
||||
self.check_status(_pymodule, "set", pv_last_pwr, stat, _line())
|
||||
if not self.input_parameters["simulation"]:
|
||||
stat = self.cafe.set(pv_last_pwr, sum_pwr)
|
||||
self.check_status(_pymodule, "set", pv_last_pwr, stat, _line())
|
||||
|
||||
def ca_table_sector_widget(self, sector: str = ""):
|
||||
device_list = self.settings.data[sector]["device"]
|
||||
@@ -783,24 +913,43 @@ class AppGui(QWidget):
|
||||
|
||||
#print(pv_dict['SOL:2'], flush=True)
|
||||
#print(_standby_values, flush=True)
|
||||
table_sol = CAQTableWidget(
|
||||
self, pv_list=pv_dict["SOL:2"], show_units=True, notify_freq_hz=0,
|
||||
notify_unison=False, scale_factor=1, show_timestamp=False,
|
||||
init_column=True, pv_list_show=device_list, standby_column=True,
|
||||
standby_values=standby_values, set_delay=delay)
|
||||
|
||||
table_sol.restore_value_button.setToolTip(
|
||||
("Restore devices to their pre-standby values"))
|
||||
table_sol.init_value_button.setToolTip(
|
||||
("Shows initial, pre-standby values. Update is also " +
|
||||
"executed automatically before the standby procedure."))
|
||||
|
||||
table_sol.standby_value_button.sector = sector
|
||||
table_sol.standby_value_button.clicked.disconnect()
|
||||
table_sol.standby_value_button.clicked.connect(self.on_sector_standby)
|
||||
table_sol.restore_value_button.sector = sector
|
||||
table_sol.restore_value_button.clicked.disconnect()
|
||||
table_sol.restore_value_button.clicked.connect(self.on_sector_restore)
|
||||
init_column = True
|
||||
standby_column = True
|
||||
if "B1B2" in sector:
|
||||
init_column = False
|
||||
standby_column = False
|
||||
standby_values = None
|
||||
|
||||
|
||||
table_sol = CAQTableWidget(
|
||||
self, pv_list=pv_dict["SOL:2"], show_units=True, notify_freq_hz=1,
|
||||
notify_unison=True, scale_factor=1, show_timestamp=False,
|
||||
init_column=False)
|
||||
else:
|
||||
|
||||
table_sol = CAQTableWidget(
|
||||
self, pv_list=pv_dict["SOL:2"], show_units=True, notify_freq_hz=0,
|
||||
notify_unison=False, scale_factor=1, show_timestamp=False,
|
||||
init_column=init_column, pv_list_show=device_list,
|
||||
standby_column=standby_column, standby_values=standby_values,
|
||||
set_delay=delay)
|
||||
|
||||
if init_column:
|
||||
table_sol.restore_value_button.setToolTip(
|
||||
("Restore devices to their pre-standby values"))
|
||||
table_sol.init_value_button.setToolTip(
|
||||
("Shows initial, pre-standby values. Update is also " +
|
||||
"executed automatically before the standby procedure."))
|
||||
|
||||
if standby_column:
|
||||
table_sol.standby_value_button.sector = sector
|
||||
table_sol.standby_value_button.clicked.disconnect()
|
||||
table_sol.standby_value_button.clicked.connect(self.on_sector_standby)
|
||||
table_sol.restore_value_button.sector = sector
|
||||
table_sol.restore_value_button.clicked.disconnect()
|
||||
table_sol.restore_value_button.clicked.connect(self.on_sector_restore)
|
||||
|
||||
self.table_sol_dict[sector] = table_sol
|
||||
|
||||
@@ -813,11 +962,13 @@ class AppGui(QWidget):
|
||||
self, pv_list=pv_dict["PWR"], show_units=False, notify_freq_hz=1,
|
||||
suffix="kW",
|
||||
notify_unison=True, scale_factor=0.001, show_timestamp=False,
|
||||
init_column=True, init_list=pv_dict["PWR"], pv_list_show=[False])
|
||||
init_column=init_column, init_list=pv_dict["PWR"],
|
||||
pv_list_show=[False])
|
||||
|
||||
table_pwr.init_value_button.setToolTip(
|
||||
("Shows initial, pre-standby values. Update is also " +
|
||||
"executed automatically before the standby procedure."))
|
||||
if init_column:
|
||||
table_pwr.init_value_button.setToolTip(
|
||||
("Shows initial, pre-standby values. Update is also " +
|
||||
"executed automatically before the standby procedure."))
|
||||
|
||||
self.table_pwr_dict[sector] = table_pwr
|
||||
|
||||
@@ -828,7 +979,11 @@ class AppGui(QWidget):
|
||||
f = header_value.font()
|
||||
f.setPixelSize(13)
|
||||
header_item.setFont(f)
|
||||
header_item.setText("Device")
|
||||
if init_column:
|
||||
header_item.setText("Device")
|
||||
else:
|
||||
header_item.setText("PV")
|
||||
|
||||
header_init.setFont(f)
|
||||
header_init.setText("Init. Value")
|
||||
header_standby.setFont(f)
|
||||
@@ -837,14 +992,20 @@ class AppGui(QWidget):
|
||||
header_value.setText("SOL:2")
|
||||
table_sol.setContentsMargins(15, 0, 15, 10)
|
||||
table_sol.setHorizontalHeaderItem(0, header_item)
|
||||
table_sol.setHorizontalHeaderItem(1, header_init)
|
||||
table_sol.setHorizontalHeaderItem(2, header_standby)
|
||||
table_sol.setHorizontalHeaderItem(3, header_value)
|
||||
if init_column:
|
||||
table_sol.setHorizontalHeaderItem(1, header_init)
|
||||
table_sol.setColumnWidth(1, 88)
|
||||
if standby_column:
|
||||
table_sol.setHorizontalHeaderItem(2, header_standby)
|
||||
table_sol.setHorizontalHeaderItem(3, header_value)
|
||||
table_sol.setColumnWidth(2, 80)
|
||||
table_sol.setColumnWidth(3, 88)
|
||||
table_sol.setColumnWidth(0, 80)
|
||||
table_sol.setColumnWidth(1, 88)
|
||||
table_sol.setColumnWidth(2, 80)
|
||||
table_sol.setColumnWidth(3, 88)
|
||||
table_sol.setFixedWidth(386)
|
||||
|
||||
if init_column:
|
||||
table_sol.setFixedWidth(386)
|
||||
else:
|
||||
table_sol.setFixedWidth(220)
|
||||
|
||||
ioc_magnets = []
|
||||
for i, device in enumerate(device_list):
|
||||
@@ -871,11 +1032,16 @@ class AppGui(QWidget):
|
||||
header_value.setFont(f)
|
||||
header_value.setText("PWR")
|
||||
table_pwr.setContentsMargins(15, 0, 15, 10)
|
||||
table_pwr.setHorizontalHeaderItem(0, header_init)
|
||||
table_pwr.setHorizontalHeaderItem(1, header_value)
|
||||
table_pwr.setColumnWidth(0, 88)
|
||||
table_pwr.setColumnWidth(1, 88)
|
||||
table_pwr.setFixedWidth(226)
|
||||
if init_column:
|
||||
table_pwr.setHorizontalHeaderItem(0, header_init)
|
||||
table_pwr.setHorizontalHeaderItem(1, header_value)
|
||||
table_pwr.setColumnWidth(0, 88)
|
||||
table_pwr.setColumnWidth(1, 88)
|
||||
table_pwr.setFixedWidth(226)
|
||||
else:
|
||||
header_value.setText("PWR:2")
|
||||
table_pwr.setHorizontalHeaderItem(0, header_value)
|
||||
table_pwr.setFixedWidth(140)
|
||||
|
||||
if "Controlroom" in self.assigned_master and "B1B2" not in sector:
|
||||
for i in ioc_magnets:
|
||||
@@ -886,7 +1052,7 @@ class AppGui(QWidget):
|
||||
|
||||
pv_status = self.settings.data[sector]["status"]
|
||||
beamline_status = self.cafe.getCache(pv_status)
|
||||
if beamline_status is not None:
|
||||
if beamline_status is not None and init_column:
|
||||
# in HIPA this was I < self.I_min:
|
||||
if "Geschlossen" in beamline_status:
|
||||
try:
|
||||
@@ -911,8 +1077,9 @@ class AppGui(QWidget):
|
||||
#B1B2 is not is not in state machine
|
||||
if "B1B2" in table_pwr.init_value_button.sector:
|
||||
retrun
|
||||
stat = self.cafe.set(pv, init_sum)
|
||||
self.check_status(_pymodule, "set", pv, stat, _line())
|
||||
if not self.input_parameters["simulation"]:
|
||||
stat = self.cafe.set(pv, init_sum)
|
||||
self.check_status(_pymodule, "set", pv, stat, _line())
|
||||
|
||||
def on_init_update():
|
||||
table_pwr.init_value_button.setEnabled(False)
|
||||
@@ -920,10 +1087,11 @@ class AppGui(QWidget):
|
||||
time.sleep(0.1)
|
||||
table_pwr.init_value_button.setEnabled(True)
|
||||
|
||||
table_sol.init_value_button.sector = sector
|
||||
table_sol.init_value_button.clicked.connect(on_sol_update)
|
||||
table_pwr.init_value_button.sector = sector
|
||||
table_pwr.init_value_button.clicked.connect(on_init_update)
|
||||
if init_column:
|
||||
table_sol.init_value_button.sector = sector
|
||||
table_sol.init_value_button.clicked.connect(on_sol_update)
|
||||
table_pwr.init_value_button.sector = sector
|
||||
table_pwr.init_value_button.clicked.connect(on_init_update)
|
||||
|
||||
hbox = QHBoxLayout()
|
||||
hbox.addWidget(table_sol)
|
||||
@@ -1006,8 +1174,9 @@ class AppGui(QWidget):
|
||||
if not sector_prefix:
|
||||
return
|
||||
pv1 = sector_prefix + "-HUSH:SEQ-ONOFF"
|
||||
stat = self.cafe.set(pv1, 0)
|
||||
self.check_status(_pymodule, "set", pv1, stat, _line())
|
||||
if not self.input_parameters["simulation"]:
|
||||
stat = self.cafe.set(pv1, 0)
|
||||
self.check_status(_pymodule, "set", pv1, stat, _line())
|
||||
time.sleep(0.05)
|
||||
QApplication.processEvents()
|
||||
return
|
||||
@@ -1018,10 +1187,11 @@ class AppGui(QWidget):
|
||||
pv1 = sector_prefix + "-HUSH:SEQ-ONOFF"
|
||||
pv2 = sector_prefix + "-HUSH:TOTSAVE"
|
||||
pv3 = sector_prefix + "-HUSH:OFFTIME"
|
||||
stat = self.cafe.set(pv1, 0)
|
||||
self.check_status(_pymodule, "set", pv1, stat, _line())
|
||||
off_time = self.cafe.get(pv3)
|
||||
self.check_status(_pymodule, "get", pv3, None, _line())
|
||||
if not self.input_parameters["simulation"]:
|
||||
stat = self.cafe.set(pv1, 0)
|
||||
self.check_status(_pymodule, "set", pv1, stat, _line())
|
||||
off_time = self.cafe.get(pv3)
|
||||
self.check_status(_pymodule, "get", pv3, None, _line())
|
||||
|
||||
iloop = 0
|
||||
if off_time is not None:
|
||||
@@ -1033,11 +1203,13 @@ class AppGui(QWidget):
|
||||
QApplication.processEvents()
|
||||
else:
|
||||
time.sleep(0.1)
|
||||
|
||||
print("SECTOR ILOOP", sector_prefix, iloop)
|
||||
stat = self.cafe.set(pv1, 1)
|
||||
self.check_status(_pymodule, "set", pv1, stat, _line())
|
||||
stat = self.cafe.set(pv2, 0)
|
||||
self.check_status(_pymodule, "set", pv2, stat, _line())
|
||||
if not self.input_parameters["simulation"]:
|
||||
stat = self.cafe.set(pv1, 1)
|
||||
self.check_status(_pymodule, "set", pv1, stat, _line())
|
||||
stat = self.cafe.set(pv2, 0)
|
||||
self.check_status(_pymodule, "set", pv2, stat, _line())
|
||||
return
|
||||
|
||||
def reset_ioc_saving(self, sector_prefix_list: list = None):
|
||||
@@ -1050,10 +1222,11 @@ class AppGui(QWidget):
|
||||
qpb.setFixedWidth(160)
|
||||
|
||||
qtext = QTextEdit()
|
||||
qtext.setText("""<br> The Reset Account Button resets Total Power Saved (MWh) to zero. <br>
|
||||
This is typically executed at the end of the calendar year.<br>
|
||||
The present energy saving figures will be entered into the elogbook.<br>
|
||||
The button prompts the user for confirmation before proceeding.<br>
|
||||
qtext.setText("""<br> The Reset Account Button resets Total
|
||||
Power Saved (MWh) to zero. <br> This is typically executed
|
||||
at the end of the calendar year. <br> The present energy
|
||||
saving figures will be entered into the elogbook.<br> The
|
||||
button prompts the user for confirmation before proceeding.<br>
|
||||
""")
|
||||
qtext.setReadOnly(True)
|
||||
qtext.setStyleSheet("background-color: QColor(0, 0, 50, 10);")
|
||||
@@ -1127,3 +1300,78 @@ class AppGui(QWidget):
|
||||
qw.setFixedHeight(280)
|
||||
|
||||
return qw
|
||||
|
||||
|
||||
|
||||
def reset_lastpwr(self):
|
||||
sector_label = [None] * len(self.sec_state_list)
|
||||
pv_initpwr = [None] * len(self.sec_state_list)
|
||||
pv_lastpwr = [None] * len(self.sec_state_list)
|
||||
|
||||
|
||||
|
||||
qgrid = QGridLayout()
|
||||
qsection = QLabel("Section")
|
||||
qsection.setAlignment(Qt.AlignmentFlag(Qt.AlignBottom|Qt.AlignHCenter))
|
||||
qnominal = QLabel("Nominal \n Value (kW)")
|
||||
qnominal.setAlignment(Qt.AlignmentFlag(Qt.AlignBottom|Qt.AlignHCenter))
|
||||
qset = QLabel("Set Value (kW)")
|
||||
qset.setAlignment(Qt.AlignmentFlag(Qt.AlignBottom|Qt.AlignHCenter))
|
||||
#f = qsection.font()
|
||||
#f.setPixelSize(16)
|
||||
#qsection.setFont(f)
|
||||
#qnominal.setFont(f)
|
||||
#qset.setFont(f)
|
||||
|
||||
qgrid.addWidget(qsection, 0, 0, 1, 1)
|
||||
qgrid.addWidget(qnominal, 0, 1, 1, 1)
|
||||
qgrid.addWidget(qset, 0, 2, 1, 1)
|
||||
|
||||
for i, pv in enumerate(self.sec_state_list):
|
||||
pvsplit = pv.split("-")
|
||||
sector = pvsplit[0][1:]
|
||||
sum_pwr = round(sum(self.settings.data[sector]["pwrref"]), 3)
|
||||
pv_initpwr_value = decimal.Decimal(format(sum_pwr, '.3f'))
|
||||
pv_lastpwr_name = pv.replace("STATE", "LASTPWR")
|
||||
|
||||
qsector = QLabel(sector + ":")
|
||||
f = qsector.font()
|
||||
f.setPixelSize(14)
|
||||
qsector.setFont(f)
|
||||
color = "black"
|
||||
try:
|
||||
color = self.settings.data[sector]["color"]
|
||||
except KeyError as ex:
|
||||
print(ex, self.settings.data[sector])
|
||||
|
||||
weight = "bold" if sector in self.settings.data[
|
||||
"headerMagnetSector"] else "medium"
|
||||
color_str = "color : {0}; font-weight:{1};".format(color, weight)
|
||||
incolor = "QLabel {" + color_str + "}"
|
||||
|
||||
qsector.setStyleSheet(incolor)
|
||||
|
||||
sector_label[i] = qsector
|
||||
ql = QLabel(str(pv_initpwr_value))
|
||||
ql.setFont(f)
|
||||
pv_initpwr[i] = ql
|
||||
pv_lastpwr[i] = CAQTextEntry(self, pv_name=pv_lastpwr_name)
|
||||
|
||||
qgrid.addWidget(sector_label[i], i + 1, 0, 1, 1, Qt.AlignCenter)
|
||||
qgrid.addWidget(pv_initpwr[i], i + 1, 1, 1, 1, Qt.AlignRight)
|
||||
qgrid.addWidget(pv_lastpwr[i], i + 1, 2, 1, 1, Qt.AlignLeft)
|
||||
|
||||
|
||||
qgrid.setContentsMargins(9, 9, 9, 9)
|
||||
qgrid.setSpacing(10)
|
||||
|
||||
qw = QGroupBox("Last Power")
|
||||
qw.setContentsMargins(5, 10, 5, 0)
|
||||
qw.setAlignment(Qt.AlignTop)
|
||||
qw.setObjectName("OUTER")
|
||||
qw.setLayout(qgrid)
|
||||
qw.setFixedWidth(250)
|
||||
qw.setFixedHeight(280)
|
||||
|
||||
return qw
|
||||
|
||||
|
||||
Reference in New Issue
Block a user