82 lines
2.6 KiB
Python
82 lines
2.6 KiB
Python
import sys
|
|
|
|
from PySide6.QtCore import QCommandLineParser, QCommandLineOption
|
|
from PySide6.QtWidgets import QApplication, QDialog
|
|
|
|
from aaregui.main_window import MainWindow
|
|
from aaregui.widgets.login import LoginDialog
|
|
from aaredaqlib.beamline import MXBeamline, mx_beamline
|
|
|
|
if __name__ == "__main__":
|
|
app = QApplication(sys.argv)
|
|
|
|
app.setApplicationName("AareGUI")
|
|
app.setApplicationVersion("0.1.0")
|
|
app.setOrganizationName("PSI")
|
|
app.setOrganizationDomain("psi.ch")
|
|
|
|
# Create the parser
|
|
parser = QCommandLineParser()
|
|
parser.setApplicationDescription("PSI AareGUI")
|
|
parser.addHelpOption() # Adds --help option
|
|
parser.addVersionOption() # Adds --version option
|
|
|
|
match mx_beamline():
|
|
case MXBeamline.X06DA:
|
|
default_url = "http://x06da-queue-01.psi.ch:5210"
|
|
default_zmq_addr = "tcp://129.129.110.12:9089"
|
|
case MXBeamline.X10SA:
|
|
default_url = "http://x10aa-queue-01.psi.ch:5210"
|
|
default_zmq_addr = ""
|
|
case MXBeamline.X06SA:
|
|
default_url = "http://x06sa-queue-01.psi.ch:5210"
|
|
default_zmq_addr = ""
|
|
case _:
|
|
default_url = ""
|
|
default_zmq_addr = ""
|
|
|
|
# Add custom options as needed
|
|
urlOption = QCommandLineOption(["u", "aaredaq-url"],
|
|
"Base AareDAQ URL",
|
|
"url", default_url)
|
|
parser.addOption(urlOption)
|
|
|
|
defaultImage = QCommandLineOption(["i", "image"],
|
|
"Default image to display in absence of the ZMQ stream",
|
|
"image")
|
|
parser.addOption(defaultImage)
|
|
|
|
cameraZeroMQ = QCommandLineOption(["s", "sample-camera-zmq"],
|
|
"Sample camera ZeroMQ URL",
|
|
"sample-camera-zmq",
|
|
default_zmq_addr)
|
|
parser.addOption(cameraZeroMQ)
|
|
|
|
parser.process(app)
|
|
|
|
base_url = parser.value(urlOption)
|
|
if base_url == "":
|
|
base_url = None
|
|
|
|
zmq_addr = parser.value(cameraZeroMQ)
|
|
if zmq_addr == "":
|
|
zmq_addr = None
|
|
|
|
if parser.isSet(defaultImage):
|
|
default_image = parser.value(defaultImage)
|
|
else:
|
|
default_image = None
|
|
|
|
dialog = LoginDialog(base_url=base_url)
|
|
|
|
if dialog.exec() == QDialog.DialogCode.Accepted and dialog.token:
|
|
win = MainWindow(base_url=base_url,
|
|
token=dialog.token,
|
|
default_image=default_image,
|
|
zmq_addr=zmq_addr)
|
|
win.show()
|
|
sys.exit(app.exec())
|
|
else:
|
|
print("Cancelled")
|
|
sys.exit()
|