10 Commits
v1.4.0 ... main

22 changed files with 1362 additions and 487 deletions

View File

@@ -1,20 +0,0 @@
{
"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"
}

View File

@@ -1,5 +1,4 @@
{ {
"Parameters":{ "Parameters":{
"drawLine" : {"flag" : 0, "data":{ "widget": "QHLine", "text" : "None", "value" : "None"}}, "drawLine" : {"flag" : 0, "data":{ "widget": "QHLine", "text" : "None", "value" : "None"}},
@@ -17,5 +16,6 @@
"resultsTabTitle" : "IOC" "resultsTabTitle" : "IOC"
}, },
"headerMagnetSector": ["B1B2","G1","SH","G2","O2","PIF", "G3"], "headerMagnetSector": ["B1B2","G1","SH","G2","O2","PIF", "G3"],
"Master": "Controlroom" "Master": "Controlroom",
"Reset": "HUSH!"
} }

View File

@@ -3,19 +3,125 @@
"hasFile": 0, "hasFile": 0,
"loadInitFile": 0, "loadInitFile": 0,
"hasDaq": 0, "hasDaq": 0,
"hasH5": 0, "hasH5" : 0,
"hasEpics": 0 "hasEpics" : 0
}, },
"hdf": { "ElogBooks": {
"destination" : "./"
"Proscan": {
"url": "https://elog-gfa.psi.ch:443/Proscan",
"destination": "/afs/psi.ch/intranet/Controls/tmp/elog/ePic/proscan/",
"Required": {"Eintrag": ["Problem", "Info", "Tuning",
"Betriebs-Wechsel", "Überbrückung",
"Pikett", "Status", "Meldung-AK3",
"Tips & Tricks", "Schicht-Übergabe",
"Schicht-Auftrag"]},
"Optional" : {"Effekt": ["","Abruch","Verzögerung","keiner","anderer"],
"System":["","Beamprobe Commissioning","Beamprobe Radial", "Diagnostik & Stopper Strahlweg",
"Extraktionselemente", "Gasversorgunung", "HF", "Interlock System", "Ionenquelle",
"Kontrollsysteme", "Kryo und Magnet", "Külung", "Mag.Speisegeräte",
"PaSS Gantry 1", "PaSS Gantry 2","PaSS Gantry 3", "PaSS OPTIS 2",
"PaSS Kontrollraum", "PaSS Frei","Phase Slit","Phasensonde",
"PSYS", "Schältplane Accel", "Speisegeräte Accel",
"TrimRods", "Vakuum", "Zyklotron allgemein", "Strahlweg", "SU",
"Andere Ursache"]
}
},
"Sandkasten": {
"url": "https://elog-gfa.psi.ch:443/Sandkasten",
"destination": "/afs/psi.ch/intranet/Controls/tmp/elog/ePic/sls/",
"Required" : {"Eintrag": ["Problem","Anregung"]},
"Optional" : {"Status": ["","Offen", "Geschlossen"]}
}
},
"Elog":{
"useELOGenv": 0,
"host": "elog-gfa.psi.ch",
"book": "Proscan",
"url": "https://elog-gfa.psi.ch/Proscan",
"destination": "/afs/psi.ch/intranet/Controls/tmp/bdbase/ePic/"
},
"stdlog":{
"destination": "/tmp/"
},
"screenshot": {
"destination": "/tmp/"
},
"url": {
"archiver" : "https://data-ui.psi.ch/preselect?c1=proscan-archive/"
},
"Shift":{
"type" :"PRO-HUSH:SHIFT-TYPE"
},
"headerMagnetSector" : ["G1","SH","G2","O2","PIF","G3"],
"header" : ["COMET","BMA1","G1","SH","G2","O2","PIF","G3","MASTER"],
"COMET":{
"status": "MMAC3:STR:2",
"colorObj" : "Machine",
"color": "gray",
"qlingrad": "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 1 gray)"
},
"MASTER":{
"status": "XPROSCAN:STAB:2",
"colorObj" : "Pk",
"color": "#00b7eb",
"qlingrad": "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 1 #00b7eb)"
},
"BMA1":{
"status" : "BMA1:STA:2",
"colorObj" : "Machine",
"color": "gray",
"qlingrad": "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 1 gray)"
},
"BMD1":{
"status" : "BMD1:STA:2",
"colorObj" : "Machine",
"color": "gray",
"qlingrad": "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 1 gray)"
},
"B1B2":{
"status": "PRO-HUSH:SHIFT-TYPE",
"colorObj" : "Machine",
"color": "#9888b6",
"qlingrad": "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 1 #9888b6)",
"device" : ["QMA1", "QMA2", "QMA3", "QMA4", "QMA5"],
"attribute" : ["SOL:2", "IST:2", "PWR:2"],
"standby": [-9.155, 9.155, -6.867, -6.867, 6.867],
"ref" : [-91.464, 102.359, -97.096, -44.269, 37.113],
"pwrref" : [9.065, 5.142, 4.061, 0.867, 0.597],
"iocDevice" : ["QMA1", "QMA2", "QMA5"]
}, },
"G1":{ "G1":{
"alarm": "PG1-HUSH:ALARM",
"status": "BME1:STA:2",
"mastershipStatus": "XPROSCAN:GANTRY1:STATUS",
"colorObj" : "Beamline",
"color": "#9888b6",
"qlingrad": "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 1 #9888b6)",
"device" : ["QME1", "QME2", "AME1", "QME4", "QME5",
"AME2", "QME7", "QME8", "QME10", "QME11"],
"attribute" : ["SOL:2", "IST:2", "PWR"],
"standby": [-6.867, 6.867, 9.155, 6.867, 6.867, 9.155, 6.867, -6.867, 6.867, -6.867], "standby": [-6.867, 6.867, 9.155, 6.867, 6.867, 9.155, 6.867, -6.867, 6.867, -6.867],
"ref" : [-43.813, 43.177, 157.28, 20.017, 30.544, 157,79, 42.203, -42.467, 52.179, -77.032], "ref" : [-43.813, 43.177, 157.28, 20.017, 30.544, 157.79, 42.203, -42.467, 52.179, -77.032],
"pwrref" : [0.789, 0.764, 17.341, 0.164, 0.366, 17.482, 0.737, 0.736, 1.096, 2.464], "pwrref" : [0.789, 0.764, 17.341, 0.164, 0.366, 17.482, 0.737, 0.736, 1.096, 2.464],
"iocDevice" : ["AME1", "AME2", "QME10"] "iocDevice" : ["AME1", "AME2", "QME10"]
}, },
"SH":{ "SH":{
"alarm": "PSH-HUSH:ALARM",
"status": "BMA1:STA:2",
"colorObj" : "Machine",
"color": "gray",
"qlingrad": "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 1 gray)",
"device" : ["QMA6", "QMA7", "QMA8", "QMA9", "AMA2", "QMA10", "QMA11",
"QMA12", "QMA13", "AMA3"],
"attribute" : ["SOL:2", "IST:2", "PWR"],
"standby": [-6.8, 6.8, 6.8, -6.8, 6.8, 6.8, -6.8, -6.8, "standby": [-6.8, 6.8, 6.8, -6.8, 6.8, 6.8, -6.8, -6.8,
6.8, 0], 6.8, 0],
"ref" : [-34.048, 26.68, 26.68, -34.05, 87.764, 37.424, -47.207, -38.156, "ref" : [-34.048, 26.68, 26.68, -34.05, 87.764, 37.424, -47.207, -38.156,
@@ -25,15 +131,33 @@
"iocDevice" : ["QMA7", "AMA2", "QMA12"] "iocDevice" : ["QMA7", "AMA2", "QMA12"]
}, },
"G2":{ "G2":{
"alarm": "PG2-HUSH:ALARM",
"status": "BMB1:STA:2",
"mastershipStatus": "XPROSCAN:GANTRY2:STATUS",
"colorObj" : "Beamline",
"color": "#9888b6",
"qlingrad": "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 1 #9888b6)",
"device" : ["QMB1", "QMB2", "QMB3", "QMB4", "QMB5", "QMF1", "QMF2",
"QMF3", "QMF4", "QMF6", "QMF7", "AMF1", "AMF2", "AMF3"],
"attribute" : ["SOL:2", "IST:2", "PWR"],
"standby" : [-6.867, 6.867, -6.867, 6.867, -6.867, -7.553, 7.553, -7.553, "standby" : [-6.867, 6.867, -6.867, 6.867, -6.867, -7.553, 7.553, -7.553,
7.553, 7.553, -7.553, 10.758, 10.758, 23.804], 7.553, 7.553, -7.553, 10.758, 10.758, 23.804],
"ref": [-41.056, 36.548, -30.490, 52.433, -27.636, -37.412, 41.966, -37.296, "ref": [-41.056, 36.548, -30.490, 52.433, -27.636, -37.412, 41.966, -37.296,
51.200, 53.657, -41.966, 109.543, 109.405, 251.492], 51.200, 53.657, -41.966, 109.543, 109.405, 251.492],
"pwrref" : [0.699, 0.545, 0.389, 1.152, 0.323, 0.374, 0.467, 0.378, "pwrref" : [0.699, 0.545, 0.389, 1.152, 0.323, 0.374, 0.467, 0.378,
0.700, 0.772, 0.464, 7.114, 7.112, 21.727], 0.700, 0.772, 0.464, 7.114, 7.112, 21.727],
"iocDevice" : ["QMB2", "QMB4", "AMF1"] "iocDevice" : ["QMB2", "QMB4", "AMF1"]
}, },
"O2":{ "O2":{
"alarm": "PO2-HUSH:ALARM",
"status": "BMC1:STA:2",
"mastershipStatus": "XPROSCAN:OPTIS2:STATUS",
"colorObj" : "Beamline",
"color": "#9888b6",
"qlingrad": "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 1 #9888b6)",
"device" : ["QMC1", "QMC2", "QMC3", "QMC4", "AMC1", "QMC5", "QMC6",
"QMC7", "QMC8", "QMC9"],
"attribute" : ["SOL:2", "IST:2", "PWR"],
"standby": [-6.867, 6.867, 6.867, -6.867, 9.155, 6.867, -6.867, 6.867, "standby": [-6.867, 6.867, 6.867, -6.867, 9.155, 6.867, -6.867, 6.867,
-6.867, 6.867], -6.867, 6.867],
"ref" : [-40.85, 26.974, 26.974, -40.851, 45.988, 30.890, -29.542, 33.742, "ref" : [-40.85, 26.974, 26.974, -40.851, 45.988, 30.890, -29.542, 33.742,
@@ -43,6 +167,15 @@
"iocDevice" : ["QMC2", "AMC1", "QMC7"] "iocDevice" : ["QMC2", "AMC1", "QMC7"]
}, },
"PIF":{ "PIF":{
"alarm": "PPIF-HUSH:ALARM",
"status": "BMD1:STA:2",
"mastershipStatus": "XPROSCAN:PIF:STATUS",
"colorObj" : "ATHOS",
"color": "#2e5894",
"qlingrad": "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 1 #2e5894)",
"device" : ["QMD1", "QMD2", "QMD3", "QMD4", "AMD1","QMD5", "QMD6", "QMD7",
"QMD8", "QMD9"],
"attribute" : ["SOL:2", "IST:2", "PWR"],
"standby": [-6.800, 6.800, 6.800, -6.800, 6.800, 6.800, -6.800, 6.800, "standby": [-6.800, 6.800, 6.800, -6.800, 6.800, 6.800, -6.800, 6.800,
-6.800, 6.800], -6.800, 6.800],
"ref" : [-36.159, 34.434, 42.277, -43, 135, 61, -62, 37, "ref" : [-36.159, 34.434, 42.277, -43, 135, 61, -62, 37,
@@ -52,26 +185,23 @@
"iocDevice" : ["QMD2", "AMD1", "QMD9"] "iocDevice" : ["QMD2", "AMD1", "QMD9"]
}, },
"G3":{ "G3":{
"alarm": "PG3-HUSH:ALARM",
"status": "BMD2:STA:2",
"mastershipStatus": "XPROSCAN:GANTRY3:STATUS",
"colorObj" : "Beamline",
"color": "#9888b6",
"qlingrad": "qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 1 #9888b6)",
"device" : ["QMD10", "QMD11", "QMD12"],
"attribute" : ["SOL:2", "IST:2", "PWR"],
"standby": [-6.800, 6.800, -6.800], "standby": [-6.800, 6.800, -6.800],
"ref" : [-40.388, 68.393, -34.805], "ref" : [-40.388, 68.393, -34.805],
"pwrref" : [0.64, 1.8, 0.46], "pwrref" : [0.64, 1.8, 0.46],
"iocDevice" : ["QMD10", "QMD11", "QMD12"] "iocDevice" : ["QMD10", "QMD11", "QMD12"]
},
"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":{ "hdf": {
"debug": {"flag" : 0, "data":{ "widget": "None", "text" : "Debug", "value" : 0}}, "destination" : "/tmp"
"simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}} },
}, "hdfGroups": {
"IOC": { "General":["Created","Author","Application","Comment","Filepath","Process","UID","User"]
"resultsTabTitle" : "IOC" }
},
"Master": "Controlroom
} }

View File

@@ -14,5 +14,6 @@
"simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}} "simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}}
}, },
"headerMagnetSector": ["G1"], "headerMagnetSector": ["G1"],
"Master": "Gantry 1" "Master": "Gantry 1",
"Reset": "HUSH!"
} }

View File

@@ -14,5 +14,6 @@
"simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}} "simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}}
}, },
"headerMagnetSector": ["G2"], "headerMagnetSector": ["G2"],
"Master": "Gantry 2" "Master": "Gantry 2",
"Reset": "HUSH!"
} }

View File

@@ -14,5 +14,6 @@
"simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}} "simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}}
}, },
"headerMagnetSector": ["PIF", "G3"], "headerMagnetSector": ["PIF", "G3"],
"Master": "Gantry 3" "Master": "Gantry 3",
"Reset": "HUSH!"
} }

View File

@@ -14,5 +14,6 @@
"simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}} "simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}}
}, },
"headerMagnetSector": ["O2"], "headerMagnetSector": ["O2"],
"Master": "OPTIS2" "Master": "OPTIS2",
"Reset": "HUSH!"
} }

View File

@@ -14,5 +14,6 @@
"simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}} "simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Dry run", "value" : 0}}
}, },
"headerMagnetSector": ["PIF"], "headerMagnetSector": ["PIF"],
"Master": "PIF" "Master": "PIF",
"Reset": "HUSH!"
} }

View File

@@ -9,30 +9,7 @@
from PyQt5 import QtCore from PyQt5 import QtCore
qt_resource_data = b"\ qt_resource_data = b"\
\x00\x00\x00\xa7\ \x00\x00\x23\xd6\
\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\x80\
\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\x35\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\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\x23\xb9\
\x3c\ \x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\ \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\ \x65\x3e\x48\x61\x6e\x64\x73\x6f\x6d\x65\x20\x50\x6f\x77\x65\x72\
@@ -561,64 +538,76 @@ qt_resource_data = b"\
\x63\x6f\x6d\x70\x6c\x69\x73\x68\x65\x64\x20\x74\x68\x72\x6f\x75\ \x63\x6f\x6d\x70\x6c\x69\x73\x68\x65\x64\x20\x74\x68\x72\x6f\x75\
\x67\x68\x20\x74\x68\x65\x20\x22\x52\x65\x73\x65\x74\x20\x41\x63\ \x67\x68\x20\x74\x68\x65\x20\x22\x52\x65\x73\x65\x74\x20\x41\x63\
\x63\x6f\x75\x6e\x74\x22\x20\x62\x75\x74\x74\x6f\x6e\x2e\x0a\x20\ \x63\x6f\x75\x6e\x74\x22\x20\x62\x75\x74\x74\x6f\x6e\x2e\x0a\x20\
\x20\x54\x68\x69\x73\x20\x61\x63\x74\x69\x6f\x6e\x20\x61\x6c\x73\ \x20\x54\x68\x69\x73\x20\x61\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\
\x6f\x20\x72\x65\x63\x6f\x72\x64\x73\x20\x74\x68\x65\x20\x65\x6e\ \x70\x61\x73\x73\x77\x6f\x72\x64\x20\x70\x72\x6f\x74\x65\x63\x74\
\x65\x72\x67\x79\x20\x73\x61\x76\x65\x64\x20\x76\x61\x6c\x75\x65\ \x65\x64\x20\x28\x48\x55\x53\x48\x21\x29\x20\x54\x68\x65\x20\x65\
\x20\x69\x6e\x20\x65\x6c\x6f\x67\x62\x6f\x6f\x6b\x2e\x0a\x0a\x20\ \x6e\x65\x72\x67\x79\x20\x73\x61\x76\x65\x64\x20\x69\x73\x20\x61\
\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\ \x6c\x73\x6f\x20\x72\x65\x63\x6f\x72\x64\x65\x64\x20\x69\x6e\x20\
\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\x65\x3b\x22\x3e\x4c\x61\x73\ \x74\x68\x65\x20\x65\x6c\x6f\x67\x62\x6f\x6f\x6b\x2e\x20\x0a\x0a\
\x74\x20\x50\x6f\x77\x65\x72\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x54\x68\x69\x73\x20\x73\x75\x62\x2d\x70\x61\x6e\x65\x6c\x20\x61\ \x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\x65\x3b\x22\x3e\x4c\x61\
\x6c\x6c\x6f\x77\x73\x20\x74\x68\x65\x20\x65\x78\x70\x65\x72\x74\ \x73\x74\x20\x50\x6f\x77\x65\x72\x3c\x2f\x68\x33\x3e\x0a\x20\x20\
\x20\x75\x73\x65\x72\x20\x74\x6f\x20\x72\x65\x73\x65\x74\x20\x74\ \x20\x54\x68\x69\x73\x20\x73\x75\x62\x2d\x70\x61\x6e\x65\x6c\x20\
\x68\x65\x20\x49\x6e\x69\x74\x69\x61\x6c\x20\x50\x6f\x77\x65\x72\ \x61\x6c\x6c\x6f\x77\x73\x20\x74\x68\x65\x20\x65\x78\x70\x65\x72\
\x20\x69\x6e\x20\x22\x53\x61\x76\x69\x6e\x67\x73\x20\x4f\x76\x65\ \x74\x20\x75\x73\x65\x72\x20\x74\x6f\x20\x72\x65\x73\x65\x74\x20\
\x72\x76\x69\x65\x77\x22\x20\x66\x6f\x72\x20\x61\x20\x67\x69\x76\ \x74\x68\x65\x20\x49\x6e\x69\x74\x69\x61\x6c\x20\x50\x6f\x77\x65\
\x65\x6e\x20\x73\x65\x63\x74\x69\x6f\x6e\x20\x74\x6f\x20\x69\x74\ \x72\x20\x69\x6e\x20\x22\x53\x61\x76\x69\x6e\x67\x73\x20\x4f\x76\
\x73\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x76\x61\x6c\x75\x65\x2c\ \x65\x72\x76\x69\x65\x77\x22\x20\x66\x6f\x72\x20\x61\x20\x67\x69\
\x20\x73\x68\x6f\x75\x6c\x64\x20\x73\x75\x63\x68\x20\x61\x20\x6e\ \x76\x65\x6e\x20\x73\x65\x63\x74\x69\x6f\x6e\x20\x74\x6f\x20\x69\
\x65\x65\x64\x20\x65\x76\x65\x72\x20\x68\x61\x70\x68\x61\x7a\x61\ \x74\x73\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x76\x61\x6c\x75\x65\
\x72\x64\x6c\x79\x20\x61\x72\x69\x73\x65\x20\x77\x68\x69\x6c\x65\ \x2c\x20\x73\x68\x6f\x75\x6c\x64\x20\x73\x75\x63\x68\x20\x61\x20\
\x20\x74\x68\x65\x20\x73\x65\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\ \x6e\x65\x65\x64\x20\x65\x76\x65\x72\x20\x68\x61\x70\x68\x61\x7a\
\x69\x6e\x20\x45\x6e\x65\x72\x67\x79\x20\x53\x61\x76\x69\x6e\x67\ \x61\x72\x64\x6c\x79\x20\x61\x72\x69\x73\x65\x20\x77\x68\x69\x6c\
\x20\x6d\x6f\x64\x65\x2c\x20\x61\x6e\x64\x20\x66\x6f\x72\x20\x77\ \x65\x20\x74\x68\x65\x20\x73\x65\x63\x74\x69\x6f\x6e\x20\x69\x73\
\x68\x69\x63\x68\x20\x74\x68\x65\x20\x22\x55\x70\x64\x61\x74\x65\ \x20\x69\x6e\x20\x45\x6e\x65\x72\x67\x79\x20\x53\x61\x76\x69\x6e\
\x22\x20\x62\x75\x74\x74\x6f\x6e\x20\x69\x6e\x20\x74\x68\x65\x20\ \x67\x20\x6d\x6f\x64\x65\x2c\x20\x61\x6e\x64\x20\x66\x6f\x72\x20\
\x4d\x61\x67\x6e\x65\x74\x20\x70\x61\x6e\x65\x6c\x20\x69\x73\x20\ \x77\x68\x69\x63\x68\x20\x74\x68\x65\x20\x22\x55\x70\x64\x61\x74\
\x64\x69\x73\x65\x6e\x61\x62\x6c\x65\x64\x2e\x0a\x0a\x3c\x68\x33\ \x65\x22\x20\x62\x75\x74\x74\x6f\x6e\x20\x69\x6e\x20\x74\x68\x65\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\ \x20\x4d\x61\x67\x6e\x65\x74\x20\x70\x61\x6e\x65\x6c\x20\x69\x73\
\x62\x36\x38\x65\x65\x3b\x22\x3e\x48\x55\x53\x48\x21\x20\x49\x6d\ \x20\x64\x69\x73\x65\x6e\x61\x62\x6c\x65\x64\x2e\x0a\x0a\x3c\x68\
\x61\x67\x65\x3c\x2f\x68\x33\x3e\x0a\x20\x3c\x74\x61\x62\x6c\x65\ \x33\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\
\x3e\x0a\x20\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x0a\ \x37\x62\x36\x38\x65\x65\x3b\x22\x3e\x48\x55\x53\x48\x21\x20\x49\
\x20\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x22\x3a\x48\x75\ \x6d\x61\x67\x65\x3c\x2f\x68\x33\x3e\x0a\x20\x3c\x74\x61\x62\x6c\
\x73\x68\x2e\x6a\x70\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x39\x30\ \x65\x3e\x0a\x20\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\
\x20\x68\x65\x69\x67\x68\x74\x3d\x39\x30\x2f\x3e\x20\x26\x6e\x62\ \x0a\x20\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x22\x3a\x48\
\x73\x70\x3b\x20\x3c\x2f\x74\x64\x3e\x3c\x74\x64\x3e\x0a\x20\x20\ \x75\x73\x68\x2e\x6a\x70\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x39\
\x20\x49\x6e\x73\x70\x69\x72\x65\x64\x20\x62\x79\x20\x44\x61\x64\ \x30\x20\x68\x65\x69\x67\x68\x74\x3d\x39\x30\x2f\x3e\x20\x26\x6e\
\x61\x20\x41\x6e\x74\x65\x20\x50\x6f\x72\x74\x61\x73\x2c\x20\x61\ \x62\x73\x70\x3b\x20\x3c\x2f\x74\x64\x3e\x3c\x74\x64\x3e\x0a\x20\
\x72\x67\x75\x61\x62\x6c\x79\x20\x53\x77\x69\x74\x7a\x65\x72\x6c\ \x20\x20\x49\x6e\x73\x70\x69\x72\x65\x64\x20\x62\x79\x20\x44\x61\
\x61\x6e\x64\x27\x73\x20\x67\x72\x65\x61\x74\x65\x73\x74\x20\x50\ \x64\x61\x20\x41\x6e\x74\x65\x20\x50\x6f\x72\x74\x61\x73\x2c\x20\
\x6f\x70\x2f\x52\x6f\x63\x6b\x20\x62\x61\x6e\x64\x21\x20\x44\x6f\ \x61\x72\x67\x75\x61\x62\x6c\x79\x20\x53\x77\x69\x74\x7a\x65\x72\
\x20\x67\x69\x76\x65\x20\x74\x68\x65\x6d\x20\x61\x20\x6c\x69\x73\ \x6c\x61\x6e\x64\x27\x73\x20\x67\x72\x65\x61\x74\x65\x73\x74\x20\
\x74\x65\x6e\x2e\x0a\x20\x20\x20\x54\x68\x65\x69\x72\x20\x6d\x75\ \x50\x6f\x70\x2f\x52\x6f\x63\x6b\x20\x62\x61\x6e\x64\x21\x20\x47\
\x73\x69\x63\x20\x61\x6e\x64\x20\x6c\x79\x72\x69\x63\x73\x20\x61\ \x69\x76\x65\x20\x27\x65\x6d\x20\x61\x20\x6c\x69\x73\x74\x65\x6e\
\x72\x65\x20\x61\x77\x65\x73\x6f\x6d\x65\x21\x3c\x2f\x74\x64\x3e\ \x2e\x0a\x20\x20\x20\x54\x68\x65\x69\x72\x20\x6d\x75\x73\x69\x63\
\x0a\x20\x20\x20\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x3c\x70\x3e\ \x20\x61\x6e\x64\x20\x6c\x79\x72\x69\x63\x73\x20\x61\x72\x65\x20\
\x0a\x3c\x2f\x70\x3e\x0a\x20\x20\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\ \x61\x77\x65\x73\x6f\x6d\x65\x21\x3c\x2f\x74\x64\x3e\x0a\x20\x20\
\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\ \x20\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x3c\x70\x3e\x0a\x3c\x2f\
\x70\x3e\x0a\x20\x20\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\x68\
\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\ \x00\x00\x00\xa7\
\x3c\ \x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\ \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\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\ \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\ \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\ \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\ \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\ \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\ \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\ \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\ \x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\ \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\
\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\x35\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\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\ \x00\x00\x00\xa7\
\x3c\ \x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\ \x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
@@ -637,10 +626,23 @@ qt_resource_data = b"\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\ \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\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\ \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\ \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\ \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\ \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\ \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\ \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\ \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\ \x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
@@ -649,56 +651,56 @@ qt_resource_data = b"\
qt_resource_name = b"\ qt_resource_name = b"\
\x00\x0a\ \x00\x0a\
\x08\x6a\x34\x9c\ \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\x5a\x34\x9c\
\x00\x70\ \x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\ \x00\x0a\
\x08\x8a\x34\x9c\ \x08\x8a\x34\x9c\
\x00\x70\ \x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\ \x00\x0a\
\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\x4a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x7a\x34\x9c\ \x08\x7a\x34\x9c\
\x00\x70\ \x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\ \x00\x0a\
\x08\x5a\x34\x9c\ \x08\x6a\x34\x9c\
\x00\x70\ \x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \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\
" "
qt_resource_struct_v1 = b"\ qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x24\xec\ \x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x26\x5f\
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x26\x42\ \x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x23\xda\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x25\xb4\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x25\x09\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x24\x85\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x25\x97\
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x2f\
" "
qt_resource_struct_v2 = b"\ qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\ \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\x00\x00\x00\x00\x00\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x24\xec\ \x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x26\x5f\
\x00\x00\x01\x8d\xc6\x98\xaa\x4d\ \x00\x00\x01\x94\x50\x2e\x84\x4a\
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x26\x42\ \x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x23\xda\
\x00\x00\x01\x8d\xc6\x98\xaa\x50\ \x00\x00\x01\x94\x50\x2e\x84\x4c\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x25\xb4\
\x00\x00\x01\x94\x50\x2e\x84\x4d\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x25\x09\
\x00\x00\x01\x94\x50\x2e\x84\x4f\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x24\x85\
\x00\x00\x01\x94\x50\x2e\x84\x51\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x8d\xc6\x98\xaa\x52\ \x00\x00\x01\x94\x50\x7b\xd3\x65\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x25\x97\
\x00\x00\x01\x8d\xc6\x98\xaa\x54\
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
\x00\x00\x01\x8d\xc6\x98\xaa\x55\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x2f\
\x00\x00\x01\x8d\xf0\x21\xc8\x6b\
" "
qt_version = [int(v) for v in QtCore.qVersion().split('.')] qt_version = [int(v) for v in QtCore.qVersion().split('.')]

View File

@@ -99,7 +99,7 @@ Enumerated values for SEQ-STATE (not all states may have necessarily been implem
The accounting of the energy saved for a given is year is to be recorded. The accounting of the energy saved for a given is year is to be recorded.
At the end of the calendar year, the process variables holding the power At the end of the calendar year, the process variables holding the power
saved values are to be reset to zero. This is accomplished through the "Reset Account" button. saved values are to be reset to zero. This is accomplished through the "Reset Account" button.
This action also records the energy saved value in elogbook. This action is password protected (HUSH!) The energy saved is also recorded in the elogbook.
<h3 style="color:#7b68ee;">Last Power</h3> <h3 style="color:#7b68ee;">Last Power</h3>
This sub-panel allows the expert user to reset the Initial Power in "Savings Overview" for a given section to its default value, should such a need ever haphazardly arise while the section is in Energy Saving mode, and for which the "Update" button in the Magnet panel is disenabled. This sub-panel allows the expert user to reset the Initial Power in "Savings Overview" for a given section to its default value, should such a need ever haphazardly arise while the section is in Energy Saving mode, and for which the "Update" button in the Magnet panel is disenabled.
@@ -108,7 +108,7 @@ Enumerated values for SEQ-STATE (not all states may have necessarily been implem
<table> <table>
<tr><td> <tr><td>
<img src=":Hush.jpg" width=90 height=90/> &nbsp; </td><td> <img src=":Hush.jpg" width=90 height=90/> &nbsp; </td><td>
Inspired by Dada Ante Portas, arguably Switzerland's greatest Pop/Rock band! Do give them a listen. Inspired by Dada Ante Portas, arguably Switzerland's greatest Pop/Rock band! Give 'em a listen.
Their music and lyrics are awesome!</td> Their music and lyrics are awesome!</td>
</table> </table>
<p> <p>

View File

@@ -127,5 +127,6 @@
"resultsTabTitle" : "IOC" "resultsTabTitle" : "IOC"
}, },
"headerMagnetSector": ["B1B2","G1","SH","G2","O2","PIF", "G3"], "headerMagnetSector": ["B1B2","G1","SH","G2","O2","PIF", "G3"],
"Master": "Controlroom" "Master": "Controlroom",
"Reset": "HUSH!"
} }

View File

@@ -21,7 +21,7 @@ from src.gui import AppGui
_pymodule = os.path.basename(__file__) _pymodule = os.path.basename(__file__)
_appname, _appext = _pymodule.split(".") _appname, _appext = _pymodule.split(".")
_appversion = "2.0.0" _appversion = "1.8.4"
# _title = """Power Usage & Saving Hierarchy""" #, HUSH!""" # _title = """Power Usage & Saving Hierarchy""" #, HUSH!"""
_title = """HUSH!""" _title = """HUSH!"""
@@ -58,6 +58,8 @@ class StartMain(BaseWindow):
self.setMinimumHeight(974) self.setMinimumHeight(974)
self.setMinimumWidth(1460) self.setMinimumWidth(1460)
def prepare_elog_message(self): def prepare_elog_message(self):
@@ -181,7 +183,7 @@ class StartMain(BaseWindow):
All rights reserved.</p> All rights reserved.</p>
<p>Author: J. Chrin, February 2024 </p> <p>Author: J. Chrin, February 2024 </p>
<p>(EPICS db adapted from A. Kovach, 2016) </p> <p>(EPICS db adapted from A. Kovach, 2016) </p>
<p>IOC Administrator: H. Lutz </p> <p>IOC Administrator: P. Fernandez (prev. H. Lutz) </p>
<p>1st Responsible: J. Chrin </p> <p>1st Responsible: J. Chrin </p>
<p>Initiates energy saving procedures and records power saved</p> <p>Initiates energy saving procedures and records power saved</p>
<p>Python {2} - Qt {3} - PyQt {4} <br> <p>Python {2} - Qt {3} - PyQt {4} <br>
@@ -205,7 +207,7 @@ class StartMain(BaseWindow):
######################################################################### #########################################################################
if __name__ == "__main__": if __name__ == "__main__":
delay = 25 if "_" in _pymodule else 40 delay = 8 if "_" in _pymodule else 15
app = QApplication(sys.argv) app = QApplication(sys.argv)
splash = BaseWindow.initialize_application( splash = BaseWindow.initialize_application(
app, appname=_appname, delay=delay, facility=Facility.PROSCAN) app, appname=_appname, delay=delay, facility=Facility.PROSCAN)

16
hush.sh
View File

@@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
cd /proscan/bd/applications/hush/hla/1.4.0 cd /proscan/bd/applications/hush/hla/latest
# For use if script is sourced rather than executed # For use if script is sourced rather than executed
appNameDefault="hush.sh" appNameDefault="hush.sh"
@@ -20,6 +20,9 @@ else
echo "Interactive/sourced script" echo "Interactive/sourced script"
fi fi
_EPICS_HOST_ARCH=${RHREL}-x86_64
_EPICS_BASE=base-7.0.8
# Select Python Version here. Currently one of 3.5, 3.7, 3.8, 3.10 # Select Python Version here. Currently one of 3.5, 3.7, 3.8, 3.10
PYTHON_VERSION=3.10 PYTHON_VERSION=3.10
@@ -35,6 +38,7 @@ if [ "$1" ]; then
elif [ "$1" == "3.7" -o "$1" == "37" ]; then elif [ "$1" == "3.7" -o "$1" == "37" ]; then
PYTHON_VERSION=3.7 PYTHON_VERSION=3.7
PYTHON_VERSION_DIR=37 PYTHON_VERSION_DIR=37
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
elif [ "$1" == "3.8" -o "$1" == "38" ]; then elif [ "$1" == "3.8" -o "$1" == "38" ]; then
PYTHON_VERSION=3.8 PYTHON_VERSION=3.8
PYTHON_VERSION_DIR=38 PYTHON_VERSION_DIR=38
@@ -52,16 +56,14 @@ fi
echo "PYTHON_VERSION $PYTHON_VERSION" echo "PYTHON_VERSION $PYTHON_VERSION"
_EPICS_HOST_ARCH=${RHREL}-x86_64
#_EPICS_HOST_ARCH=${EPICS_HOST_ARCH}
. /opt/gfa/python $PYTHON_VERSION . /opt/gfa/python $PYTHON_VERSION
#C_EXT version #C_EXT version
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0 export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.13.0
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR} export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.13.0/common/python${PYTHON_VERSION_DIR}
fi fi
echo $PYTHONPATH echo $PYTHONPATH
@@ -114,3 +116,7 @@ else
fi fi
if [ "${PYTHON_VERSION}" == "3.7" ] ; then
unset LD_PRELOAD
fi

View File

@@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
cd /proscan/bd/applications/hush/hla/1.4.0 cd /proscan/bd/applications/hush/hla/latest
# For use if script is sourced rather than executed # For use if script is sourced rather than executed
appNameDefault="hush_g1.sh" appNameDefault="hush_g1.sh"
@@ -20,6 +20,9 @@ else
echo "Interactive/sourced script" echo "Interactive/sourced script"
fi fi
_EPICS_HOST_ARCH=${RHREL}-x86_64
_EPICS_BASE=base-7.0.8
# Select Python Version here. Currently one of 3.5, 3.7, 3,8, 3,10 # Select Python Version here. Currently one of 3.5, 3.7, 3,8, 3,10
PYTHON_VERSION=3.10 PYTHON_VERSION=3.10
@@ -35,6 +38,7 @@ if [ "$1" ]; then
elif [ "$1" == "3.7" -o "$1" == "37" ]; then elif [ "$1" == "3.7" -o "$1" == "37" ]; then
PYTHON_VERSION=3.7 PYTHON_VERSION=3.7
PYTHON_VERSION_DIR=37 PYTHON_VERSION_DIR=37
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
elif [ "$1" == "3.8" -o "$1" == "38" ]; then elif [ "$1" == "3.8" -o "$1" == "38" ]; then
PYTHON_VERSION=3.8 PYTHON_VERSION=3.8
PYTHON_VERSION_DIR=38 PYTHON_VERSION_DIR=38
@@ -52,18 +56,13 @@ fi
echo "PYTHON_VERSION $PYTHON_VERSION" echo "PYTHON_VERSION $PYTHON_VERSION"
_EPICS_HOST_ARCH=${RHREL}-x86_64
#_EPICS_HOST_ARCH=${EPICS_HOST_ARCH}
. /opt/gfa/python $PYTHON_VERSION . /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: #C_EXT version for Py 3.7:
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0 export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.13.0
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR} export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.13.0/common/python${PYTHON_VERSION_DIR}
fi fi
echo $PYTHONPATH echo $PYTHONPATH
@@ -119,3 +118,6 @@ else
fi fi
if [ "${PYTHON_VERSION}" == "3.7" ] ; then
unset LD_PRELOAD
fi

View File

@@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
cd /proscan/bd/applications/hush/hla/1.4.0 cd /proscan/bd/applications/hush/hla/latest
# For use if script is sourced rather than executed # For use if script is sourced rather than executed
appNameDefault="hush_g2.sh" appNameDefault="hush_g2.sh"
@@ -20,7 +20,10 @@ else
echo "Interactive/sourced script" echo "Interactive/sourced script"
fi fi
# Select Python Version here. Currently one of 3.5, 3.7 _EPICS_HOST_ARCH=${RHREL}-x86_64
_EPICS_BASE=base-7.0.8
# Select Python Version here. Currently one of 3.5, 3.7, 3.8, 3.10
PYTHON_VERSION=3.10 PYTHON_VERSION=3.10
# Only neede for verison-specific packages, e.g., bigtree- # Only neede for verison-specific packages, e.g., bigtree-
@@ -35,6 +38,8 @@ if [ "$1" ]; then
elif [ "$1" == "3.7" -o "$1" == "37" ]; then elif [ "$1" == "3.7" -o "$1" == "37" ]; then
PYTHON_VERSION=3.7 PYTHON_VERSION=3.7
PYTHON_VERSION_DIR=37 PYTHON_VERSION_DIR=37
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
elif [ "$1" == "3.8" -o "$1" == "38" ]; then elif [ "$1" == "3.8" -o "$1" == "38" ]; then
PYTHON_VERSION=3.8 PYTHON_VERSION=3.8
PYTHON_VERSION_DIR=38 PYTHON_VERSION_DIR=38
@@ -52,18 +57,13 @@ fi
echo "PYTHON_VERSION $PYTHON_VERSION" echo "PYTHON_VERSION $PYTHON_VERSION"
_EPICS_HOST_ARCH=${RHREL}-x86_64
#_EPICS_HOST_ARCH=${EPICS_HOST_ARCH}
. /opt/gfa/python $PYTHON_VERSION . /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: #C_EXT version for Py 3.7:
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0 export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.13.0
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR} export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.13.0/common/python${PYTHON_VERSION_DIR}
fi fi
echo $PYTHONPATH echo $PYTHONPATH
@@ -118,4 +118,6 @@ else
python ${name}.py -u ${configSector}/${nameconfig}.json & python ${name}.py -u ${configSector}/${nameconfig}.json &
fi fi
if [ "${PYTHON_VERSION}" == "3.7" ] ; then
unset LD_PRELOAD
fi

View File

@@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
cd /proscan/bd/applications/hush/hla/1.4.0 cd /proscan/bd/applications/hush/hla/latest
# For use if script is sourced rather than executed # For use if script is sourced rather than executed
appNameDefault="hush_g3.sh" appNameDefault="hush_g3.sh"
@@ -20,6 +20,9 @@ else
echo "Interactive/sourced script" echo "Interactive/sourced script"
fi fi
_EPICS_HOST_ARCH=${RHREL}-x86_64
_EPICS_BASE=base-7.0.8
# Select Python Version here. Currently one of 3.5, 3.7, 3.8, 3.10 # Select Python Version here. Currently one of 3.5, 3.7, 3.8, 3.10
PYTHON_VERSION=3.10 PYTHON_VERSION=3.10
@@ -35,6 +38,8 @@ if [ "$1" ]; then
elif [ "$1" == "3.7" -o "$1" == "37" ]; then elif [ "$1" == "3.7" -o "$1" == "37" ]; then
PYTHON_VERSION=3.7 PYTHON_VERSION=3.7
PYTHON_VERSION_DIR=37 PYTHON_VERSION_DIR=37
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
elif [ "$1" == "3.8" -o "$1" == "38" ]; then elif [ "$1" == "3.8" -o "$1" == "38" ]; then
PYTHON_VERSION=3.8 PYTHON_VERSION=3.8
PYTHON_VERSION_DIR=38 PYTHON_VERSION_DIR=38
@@ -52,18 +57,14 @@ fi
echo "PYTHON_VERSION $PYTHON_VERSION" echo "PYTHON_VERSION $PYTHON_VERSION"
_EPICS_HOST_ARCH=${RHREL}-x86_64
#_EPICS_HOST_ARCH=${EPICS_HOST_ARCH}
. /opt/gfa/python $PYTHON_VERSION . /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: #C_EXT version for Py 3.7:
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0 export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.13.0
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR} export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.13.0/common/python${PYTHON_VERSION_DIR}
fi fi
echo $PYTHONPATH echo $PYTHONPATH
@@ -117,4 +118,6 @@ else
python ${name}.py -u ${configSector}/${nameconfig}.json & python ${name}.py -u ${configSector}/${nameconfig}.json &
fi fi
if [ "${PYTHON_VERSION}" == "3.7" ] ; then
unset LD_PRELOAD
fi

View File

@@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
cd /proscan/bd/applications/hush/hla/1.4.0 cd /proscan/bd/applications/hush/hla/1.8.4
# For use if script is sourced rather than executed # For use if script is sourced rather than executed
appNameDefault="hush_o2.sh" appNameDefault="hush_o2.sh"
@@ -20,7 +20,10 @@ else
echo "Interactive/sourced script" echo "Interactive/sourced script"
fi fi
# Select Python Version here. Currently one of 3.5, 3.7 _EPICS_HOST_ARCH=${RHREL}-x86_64
_EPICS_BASE=base-7.0.8
# Select Python Version here. Currently one of 3.5, 3.7, 3,8, 3.10
PYTHON_VERSION=3.10 PYTHON_VERSION=3.10
# Only neede for verison-specific packages, e.g., bigtree- # Only neede for verison-specific packages, e.g., bigtree-
@@ -35,6 +38,8 @@ if [ "$1" ]; then
elif [ "$1" == "3.7" -o "$1" == "37" ]; then elif [ "$1" == "3.7" -o "$1" == "37" ]; then
PYTHON_VERSION=3.7 PYTHON_VERSION=3.7
PYTHON_VERSION_DIR=37 PYTHON_VERSION_DIR=37
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
elif [ "$1" == "3.8" -o "$1" == "38" ]; then elif [ "$1" == "3.8" -o "$1" == "38" ]; then
PYTHON_VERSION=3.8 PYTHON_VERSION=3.8
PYTHON_VERSION_DIR=38 PYTHON_VERSION_DIR=38
@@ -53,19 +58,15 @@ fi
echo "PYTHON_VERSION $PYTHON_VERSION" echo "PYTHON_VERSION $PYTHON_VERSION"
_EPICS_HOST_ARCH=${RHREL}-x86_64
#_EPICS_HOST_ARCH=${EPICS_HOST_ARCH}
. /opt/gfa/python $PYTHON_VERSION . /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: #C_EXT version for Py 3.7:
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0 export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.13.0
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR} export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.13.0/common/python${PYTHON_VERSION_DIR}
fi fi
echo $PYTHONPATH echo $PYTHONPATH
@@ -118,4 +119,8 @@ else
python ${name}.py -u ${configSector}/${nameconfig}.json & python ${name}.py -u ${configSector}/${nameconfig}.json &
fi fi
if [ "${PYTHON_VERSION}" == "3.7" ] ; then
unset LD_PRELOAD
fi

View File

@@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
cd /proscan/bd/applications/hush/hla/1.4.0 cd /proscan/bd/applications/hush/hla/latest
# For use if script is sourced rather than executed # For use if script is sourced rather than executed
appNameDefault="hush_pif.sh" appNameDefault="hush_pif.sh"
@@ -20,6 +20,9 @@ else
echo "Interactive/sourced script" echo "Interactive/sourced script"
fi fi
_EPICS_HOST_ARCH=${RHREL}-x86_64
_EPICS_BASE=base-7.0.8
# Select Python Version here. Currently one of 3.5, 3.7 # Select Python Version here. Currently one of 3.5, 3.7
PYTHON_VERSION=3.10 PYTHON_VERSION=3.10
@@ -35,6 +38,8 @@ if [ "$1" ]; then
elif [ "$1" == "3.7" -o "$1" == "37" ]; then elif [ "$1" == "3.7" -o "$1" == "37" ]; then
PYTHON_VERSION=3.7 PYTHON_VERSION=3.7
PYTHON_VERSION_DIR=37 PYTHON_VERSION_DIR=37
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
elif [ "$1" == "3.8" -o "$1" == "38" ]; then elif [ "$1" == "3.8" -o "$1" == "38" ]; then
PYTHON_VERSION=3.8 PYTHON_VERSION=3.8
PYTHON_VERSION_DIR=38 PYTHON_VERSION_DIR=38
@@ -54,19 +59,14 @@ fi
echo "PYTHON_VERSION $PYTHON_VERSION" echo "PYTHON_VERSION $PYTHON_VERSION"
_EPICS_HOST_ARCH=${RHREL}-x86_64
#_EPICS_HOST_ARCH=${EPICS_HOST_ARCH}
. /opt/gfa/python $PYTHON_VERSION . /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: #C_EXT version for Py 3.7:
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.10.0 export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/proscan/bd/applications/deps/apps4ops/v1.13.0
if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then if [ "${EXTRA_PYTHON_PATH_FLAG}" -gt "0" ] ; then
export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.10.0/common/python${PYTHON_VERSION_DIR} export PYTHONPATH=$PYTHONPATH:/proscan/bd/applications/deps/apps4ops/v1.13.0/common/python${PYTHON_VERSION_DIR}
fi fi
echo $PYTHONPATH echo $PYTHONPATH
@@ -121,3 +121,8 @@ else
fi fi
if [ "${PYTHON_VERSION}" == "3.7" ] ; then
unset LD_PRELOAD
fi

View File

@@ -9,30 +9,7 @@
from PyQt5 import QtCore from PyQt5 import QtCore
qt_resource_data = b"\ qt_resource_data = b"\
\x00\x00\x00\xa7\ \x00\x00\x23\xd6\
\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\x80\
\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\x35\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\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\x23\xb9\
\x3c\ \x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\ \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\ \x65\x3e\x48\x61\x6e\x64\x73\x6f\x6d\x65\x20\x50\x6f\x77\x65\x72\
@@ -561,64 +538,76 @@ qt_resource_data = b"\
\x63\x6f\x6d\x70\x6c\x69\x73\x68\x65\x64\x20\x74\x68\x72\x6f\x75\ \x63\x6f\x6d\x70\x6c\x69\x73\x68\x65\x64\x20\x74\x68\x72\x6f\x75\
\x67\x68\x20\x74\x68\x65\x20\x22\x52\x65\x73\x65\x74\x20\x41\x63\ \x67\x68\x20\x74\x68\x65\x20\x22\x52\x65\x73\x65\x74\x20\x41\x63\
\x63\x6f\x75\x6e\x74\x22\x20\x62\x75\x74\x74\x6f\x6e\x2e\x0a\x20\ \x63\x6f\x75\x6e\x74\x22\x20\x62\x75\x74\x74\x6f\x6e\x2e\x0a\x20\
\x20\x54\x68\x69\x73\x20\x61\x63\x74\x69\x6f\x6e\x20\x61\x6c\x73\ \x20\x54\x68\x69\x73\x20\x61\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\
\x6f\x20\x72\x65\x63\x6f\x72\x64\x73\x20\x74\x68\x65\x20\x65\x6e\ \x70\x61\x73\x73\x77\x6f\x72\x64\x20\x70\x72\x6f\x74\x65\x63\x74\
\x65\x72\x67\x79\x20\x73\x61\x76\x65\x64\x20\x76\x61\x6c\x75\x65\ \x65\x64\x20\x28\x48\x55\x53\x48\x21\x29\x20\x54\x68\x65\x20\x65\
\x20\x69\x6e\x20\x65\x6c\x6f\x67\x62\x6f\x6f\x6b\x2e\x0a\x0a\x20\ \x6e\x65\x72\x67\x79\x20\x73\x61\x76\x65\x64\x20\x69\x73\x20\x61\
\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\ \x6c\x73\x6f\x20\x72\x65\x63\x6f\x72\x64\x65\x64\x20\x69\x6e\x20\
\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\x65\x3b\x22\x3e\x4c\x61\x73\ \x74\x68\x65\x20\x65\x6c\x6f\x67\x62\x6f\x6f\x6b\x2e\x20\x0a\x0a\
\x74\x20\x50\x6f\x77\x65\x72\x3c\x2f\x68\x33\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x3c\x68\x33\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\
\x54\x68\x69\x73\x20\x73\x75\x62\x2d\x70\x61\x6e\x65\x6c\x20\x61\ \x6c\x6f\x72\x3a\x23\x37\x62\x36\x38\x65\x65\x3b\x22\x3e\x4c\x61\
\x6c\x6c\x6f\x77\x73\x20\x74\x68\x65\x20\x65\x78\x70\x65\x72\x74\ \x73\x74\x20\x50\x6f\x77\x65\x72\x3c\x2f\x68\x33\x3e\x0a\x20\x20\
\x20\x75\x73\x65\x72\x20\x74\x6f\x20\x72\x65\x73\x65\x74\x20\x74\ \x20\x54\x68\x69\x73\x20\x73\x75\x62\x2d\x70\x61\x6e\x65\x6c\x20\
\x68\x65\x20\x49\x6e\x69\x74\x69\x61\x6c\x20\x50\x6f\x77\x65\x72\ \x61\x6c\x6c\x6f\x77\x73\x20\x74\x68\x65\x20\x65\x78\x70\x65\x72\
\x20\x69\x6e\x20\x22\x53\x61\x76\x69\x6e\x67\x73\x20\x4f\x76\x65\ \x74\x20\x75\x73\x65\x72\x20\x74\x6f\x20\x72\x65\x73\x65\x74\x20\
\x72\x76\x69\x65\x77\x22\x20\x66\x6f\x72\x20\x61\x20\x67\x69\x76\ \x74\x68\x65\x20\x49\x6e\x69\x74\x69\x61\x6c\x20\x50\x6f\x77\x65\
\x65\x6e\x20\x73\x65\x63\x74\x69\x6f\x6e\x20\x74\x6f\x20\x69\x74\ \x72\x20\x69\x6e\x20\x22\x53\x61\x76\x69\x6e\x67\x73\x20\x4f\x76\
\x73\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x76\x61\x6c\x75\x65\x2c\ \x65\x72\x76\x69\x65\x77\x22\x20\x66\x6f\x72\x20\x61\x20\x67\x69\
\x20\x73\x68\x6f\x75\x6c\x64\x20\x73\x75\x63\x68\x20\x61\x20\x6e\ \x76\x65\x6e\x20\x73\x65\x63\x74\x69\x6f\x6e\x20\x74\x6f\x20\x69\
\x65\x65\x64\x20\x65\x76\x65\x72\x20\x68\x61\x70\x68\x61\x7a\x61\ \x74\x73\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x76\x61\x6c\x75\x65\
\x72\x64\x6c\x79\x20\x61\x72\x69\x73\x65\x20\x77\x68\x69\x6c\x65\ \x2c\x20\x73\x68\x6f\x75\x6c\x64\x20\x73\x75\x63\x68\x20\x61\x20\
\x20\x74\x68\x65\x20\x73\x65\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\ \x6e\x65\x65\x64\x20\x65\x76\x65\x72\x20\x68\x61\x70\x68\x61\x7a\
\x69\x6e\x20\x45\x6e\x65\x72\x67\x79\x20\x53\x61\x76\x69\x6e\x67\ \x61\x72\x64\x6c\x79\x20\x61\x72\x69\x73\x65\x20\x77\x68\x69\x6c\
\x20\x6d\x6f\x64\x65\x2c\x20\x61\x6e\x64\x20\x66\x6f\x72\x20\x77\ \x65\x20\x74\x68\x65\x20\x73\x65\x63\x74\x69\x6f\x6e\x20\x69\x73\
\x68\x69\x63\x68\x20\x74\x68\x65\x20\x22\x55\x70\x64\x61\x74\x65\ \x20\x69\x6e\x20\x45\x6e\x65\x72\x67\x79\x20\x53\x61\x76\x69\x6e\
\x22\x20\x62\x75\x74\x74\x6f\x6e\x20\x69\x6e\x20\x74\x68\x65\x20\ \x67\x20\x6d\x6f\x64\x65\x2c\x20\x61\x6e\x64\x20\x66\x6f\x72\x20\
\x4d\x61\x67\x6e\x65\x74\x20\x70\x61\x6e\x65\x6c\x20\x69\x73\x20\ \x77\x68\x69\x63\x68\x20\x74\x68\x65\x20\x22\x55\x70\x64\x61\x74\
\x64\x69\x73\x65\x6e\x61\x62\x6c\x65\x64\x2e\x0a\x0a\x3c\x68\x33\ \x65\x22\x20\x62\x75\x74\x74\x6f\x6e\x20\x69\x6e\x20\x74\x68\x65\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x37\ \x20\x4d\x61\x67\x6e\x65\x74\x20\x70\x61\x6e\x65\x6c\x20\x69\x73\
\x62\x36\x38\x65\x65\x3b\x22\x3e\x48\x55\x53\x48\x21\x20\x49\x6d\ \x20\x64\x69\x73\x65\x6e\x61\x62\x6c\x65\x64\x2e\x0a\x0a\x3c\x68\
\x61\x67\x65\x3c\x2f\x68\x33\x3e\x0a\x20\x3c\x74\x61\x62\x6c\x65\ \x33\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\
\x3e\x0a\x20\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x0a\ \x37\x62\x36\x38\x65\x65\x3b\x22\x3e\x48\x55\x53\x48\x21\x20\x49\
\x20\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x22\x3a\x48\x75\ \x6d\x61\x67\x65\x3c\x2f\x68\x33\x3e\x0a\x20\x3c\x74\x61\x62\x6c\
\x73\x68\x2e\x6a\x70\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x39\x30\ \x65\x3e\x0a\x20\x20\x20\x20\x20\x3c\x74\x72\x3e\x3c\x74\x64\x3e\
\x20\x68\x65\x69\x67\x68\x74\x3d\x39\x30\x2f\x3e\x20\x26\x6e\x62\ \x0a\x20\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x22\x3a\x48\
\x73\x70\x3b\x20\x3c\x2f\x74\x64\x3e\x3c\x74\x64\x3e\x0a\x20\x20\ \x75\x73\x68\x2e\x6a\x70\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x39\
\x20\x49\x6e\x73\x70\x69\x72\x65\x64\x20\x62\x79\x20\x44\x61\x64\ \x30\x20\x68\x65\x69\x67\x68\x74\x3d\x39\x30\x2f\x3e\x20\x26\x6e\
\x61\x20\x41\x6e\x74\x65\x20\x50\x6f\x72\x74\x61\x73\x2c\x20\x61\ \x62\x73\x70\x3b\x20\x3c\x2f\x74\x64\x3e\x3c\x74\x64\x3e\x0a\x20\
\x72\x67\x75\x61\x62\x6c\x79\x20\x53\x77\x69\x74\x7a\x65\x72\x6c\ \x20\x20\x49\x6e\x73\x70\x69\x72\x65\x64\x20\x62\x79\x20\x44\x61\
\x61\x6e\x64\x27\x73\x20\x67\x72\x65\x61\x74\x65\x73\x74\x20\x50\ \x64\x61\x20\x41\x6e\x74\x65\x20\x50\x6f\x72\x74\x61\x73\x2c\x20\
\x6f\x70\x2f\x52\x6f\x63\x6b\x20\x62\x61\x6e\x64\x21\x20\x44\x6f\ \x61\x72\x67\x75\x61\x62\x6c\x79\x20\x53\x77\x69\x74\x7a\x65\x72\
\x20\x67\x69\x76\x65\x20\x74\x68\x65\x6d\x20\x61\x20\x6c\x69\x73\ \x6c\x61\x6e\x64\x27\x73\x20\x67\x72\x65\x61\x74\x65\x73\x74\x20\
\x74\x65\x6e\x2e\x0a\x20\x20\x20\x54\x68\x65\x69\x72\x20\x6d\x75\ \x50\x6f\x70\x2f\x52\x6f\x63\x6b\x20\x62\x61\x6e\x64\x21\x20\x47\
\x73\x69\x63\x20\x61\x6e\x64\x20\x6c\x79\x72\x69\x63\x73\x20\x61\ \x69\x76\x65\x20\x27\x65\x6d\x20\x61\x20\x6c\x69\x73\x74\x65\x6e\
\x72\x65\x20\x61\x77\x65\x73\x6f\x6d\x65\x21\x3c\x2f\x74\x64\x3e\ \x2e\x0a\x20\x20\x20\x54\x68\x65\x69\x72\x20\x6d\x75\x73\x69\x63\
\x0a\x20\x20\x20\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x3c\x70\x3e\ \x20\x61\x6e\x64\x20\x6c\x79\x72\x69\x63\x73\x20\x61\x72\x65\x20\
\x0a\x3c\x2f\x70\x3e\x0a\x20\x20\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\ \x61\x77\x65\x73\x6f\x6d\x65\x21\x3c\x2f\x74\x64\x3e\x0a\x20\x20\
\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\ \x20\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x3c\x70\x3e\x0a\x3c\x2f\
\x70\x3e\x0a\x20\x20\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\x68\
\x74\x6d\x6c\x3e\x0a\
\x00\x00\x00\xa7\ \x00\x00\x00\xa7\
\x3c\ \x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\ \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\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\ \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\ \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\ \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\ \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\ \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\ \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\ \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\ \x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
\x68\x74\x6d\x6c\x3e\x0a\ \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\
\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\x35\x20\x6f\
\x66\x20\x77\x65\x62\x20\x68\x65\x6c\x70\x3c\x2f\x62\x3e\x3c\x2f\
\x70\x3e\x0a\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\ \x00\x00\x00\xa7\
\x3c\ \x3c\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\ \x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\
@@ -637,10 +626,23 @@ qt_resource_data = b"\
\x68\x74\x6d\x6c\x3e\x3c\x68\x65\x61\x64\x3e\x3c\x74\x69\x74\x6c\ \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\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\ \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\ \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\ \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\ \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\ \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\ \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\ \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\ \x2e\x2e\x3c\x2f\x70\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x3c\x2f\
@@ -649,56 +651,56 @@ qt_resource_data = b"\
qt_resource_name = b"\ qt_resource_name = b"\
\x00\x0a\ \x00\x0a\
\x08\x6a\x34\x9c\ \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\x5a\x34\x9c\
\x00\x70\ \x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\ \x00\x0a\
\x08\x8a\x34\x9c\ \x08\x8a\x34\x9c\
\x00\x70\ \x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\ \x00\x0a\
\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\x4a\x34\x9c\
\x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\
\x08\x7a\x34\x9c\ \x08\x7a\x34\x9c\
\x00\x70\ \x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
\x00\x0a\ \x00\x0a\
\x08\x5a\x34\x9c\ \x08\x6a\x34\x9c\
\x00\x70\ \x00\x70\
\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \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\
" "
qt_resource_struct_v1 = b"\ qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x24\xec\ \x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x26\x5f\
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x26\x42\ \x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x23\xda\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x25\xb4\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x25\x09\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x24\x85\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x25\x97\
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x2f\
" "
qt_resource_struct_v2 = b"\ qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\ \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\x00\x00\x00\x00\x00\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x24\xec\ \x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x26\x5f\
\x00\x00\x01\x8d\xc6\x98\xaa\x4d\ \x00\x00\x01\x94\x50\x2e\x84\x4a\
\x00\x00\x00\x82\x00\x00\x00\x00\x00\x01\x00\x00\x26\x42\ \x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x23\xda\
\x00\x00\x01\x8d\xc6\x98\xaa\x50\ \x00\x00\x01\x94\x50\x2e\x84\x4c\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x25\xb4\
\x00\x00\x01\x94\x50\x2e\x84\x4d\
\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x25\x09\
\x00\x00\x01\x94\x50\x2e\x84\x4f\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x24\x85\
\x00\x00\x01\x94\x50\x2e\x84\x51\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x8d\xc6\x98\xaa\x52\ \x00\x00\x01\x94\x50\x7b\xd3\x65\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x25\x97\
\x00\x00\x01\x8d\xc6\x98\xaa\x54\
\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\
\x00\x00\x01\x8d\xc6\x98\xaa\x55\
\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x01\x2f\
\x00\x00\x01\x8d\xf0\x21\xc8\x6b\
" "
qt_version = [int(v) for v in QtCore.qVersion().split('.')] qt_version = [int(v) for v in QtCore.qVersion().split('.')]

1028
src/gui.py

File diff suppressed because it is too large Load Diff

24
src/t.py Normal file
View File

@@ -0,0 +1,24 @@
from datetime import datetime
def in_range():
current_time = datetime.now().time()
#given_time_start = datetime.strptime("07:00AM", "I:%M%p").time()
#given_time_stop = datetime.strptime("05:30PM", "I:%M%p").time()
given_time_start = datetime.strptime("07:00", "%H:%M").time()
given_time_stop = datetime.strptime("17:00", "%H:%M").time()
if given_time_start <= current_time <= given_time_stop:
print("in range", current_time)
return True
else:
print(current_time)
print(given_time_stop)
if in_range():
print("in range")
else:
print("not in range")

42
timediff.py Normal file
View File

@@ -0,0 +1,42 @@
from datetime import datetime
import time
import PyCafe
cafe = PyCafe.CyCafe()
pd=cafe.getPV("BMA1:STA:2")
tz = pd.tsDate
time0 = datetime(tz[0], tz[1], tz[2], tz[3], tz[4], tz[5])
tn = datetime.now()
time1 = datetime(tn.year, tn.month, tn.day, tn.hour, tn.minute, tn.second)
difference = time1 - time0
minutes = divmod(difference.total_seconds(), 60)
print('Total difference in minutes: ', int(minutes[0]), 'minutes', int(minutes[1]), 'seconds')
def time_difference():
tn = datetime.now()
time1 = datetime(tn.year, tn.month, tn.day, tn.hour, tn.minute, tn.second)
difference = time1 - time0
return divmod(difference.total_seconds(), 60)
def cb(handle, pv, pvdata):
global time0
print(pv, handle)
pvdata.show()
tz = pvdata.tsDate
time0 = datetime(tz[0], tz[1], tz[2], tz[3], tz[4], tz[5])
print("time0 in callback", time0)
cafe.openMonitorPrepare()
cafe.monitorStart("BMA1:STA:2", cb=cb)
cafe.openMonitorNowAndWait(1.0)
for i in range(0, 360):
time.sleep(1)
minutes = time_difference()
print('Total difference in minutes: ', int(minutes[0]), 'minutes', int(minutes[1]), 'seconds')
print("time0 actual", time0)