diff --git a/OpticsTools.py b/OpticsTools.py
index 16affc9..8918a75 100644
--- a/OpticsTools.py
+++ b/OpticsTools.py
@@ -1,7 +1,6 @@
import sys
import json
-from datetime import datetime
-import time
+import webbrowser
from argparse import ArgumentParser
from PyQt5 import QtWidgets,QtGui
@@ -50,11 +49,21 @@ class OpticsTools(QtWidgets.QMainWindow, Ui_OpticsGUI):
self.actionOpen_2.triggered.connect(self.loadSettings)
self.actionSave.triggered.connect(self.saveSettings)
self.UIUpdateFromMachine.clicked.connect(self.fullUpdate)
+ self.actionHelp.triggered.connect(self.openGit)
+ self.actionAbout.triggered.connect(self.about)
def closeEvent(self, event):
self.plot.close()
event.accept()
+ def about(self):
+ QtWidgets.QMessageBox.about(self, "Optics Tool",
+ "Version:%s\nContact: Sven Reiche\nEmail: sven.reiche@psi.ch" % self.version)
+
+ def openGit(self):
+ webbrowser.open("https://gitea.psi.ch/reiche/opticstool")
+
+
def saveSettings(self):
options = QtWidgets.QFileDialog.Options()
options |= QtWidgets.QFileDialog.DontUseNativeDialog
diff --git a/issues.txt b/issues.txt
index f4bda8a..34e7196 100644
--- a/issues.txt
+++ b/issues.txt
@@ -1,11 +1,8 @@
-1) Mark in matching list groups with reference points
-3) export to machine for magnet settings
+2) make matching targets editable
4) export elegant lattice
5) support of other reference files -> fill up the selection list
-6) matching
8) Elegant support?
10) Prepare several settings files
-11) About and website support
diff --git a/machine.py b/machine.py
index d7a1c53..6713b9a 100644
--- a/machine.py
+++ b/machine.py
@@ -1,6 +1,6 @@
import re
import numpy as np
-from epics import PV
+from epics import PV,caput_many
class Machine:
def __init__(self, parent=None, office=False):
@@ -43,6 +43,26 @@ class Machine:
else:
self.PVs={ele:PV(ele, auto_monitor=False) for ele in self.PVNames}
+ def setMagnets(self,vals):
+ pvs=[]
+ val=[]
+ for ele in vals.keys():
+ val.append(vals[ele])
+ if 'MQUA' in ele or 'MQSK' in ele:
+ pvs.append(ele+':K1L-SET')
+ if 'MSEX' in ele:
+ pvs.append(ele + ':K2L-SET')
+ if 'MBND' in ele:
+ pvs.append(ele + ':K0L-SET')
+ if self.offline:
+ print('####################################')
+ print('Program is in offline mode')
+ print('Any machine settings ar enot applied')
+ return
+ caput_many(pvs,val)
+
+
+
def getMachineStatus(self):
print('offline:',self.offline)
if self.offline:
diff --git a/sandbox.py b/sandbox.py
index 646bf6e..b8cd7ce 100644
--- a/sandbox.py
+++ b/sandbox.py
@@ -19,6 +19,22 @@ class Sandbox:
self.parent.SB2ModMag.clicked.connect(self.updateModelEvent)
self.parent.Mach2ModUnd.clicked.connect(self.updateModelEvent)
self.parent.SB2ModUnd.clicked.connect(self.updateModelEvent)
+ self.parent.SB2MachineMag.clicked.connect(self.updateMachine)
+
+ def updateMachine(self):
+ vals = self.getSBbyCol(self.parent.MagSB,1)
+ self.parent.machine.setMagnets(vals)
+ self.updateSandbox()
+
+ def getSBbyCol(self, sb,col):
+ vals={}
+ for i in range(sb.rowCount()):
+ field=str(sb.item(i,0).text())
+ val = str(sb.item(i, col).text())
+ if val == '---':
+ continue
+ vals[field]=float(val)
+ return vals
def updateModelEvent(self):
if self.parent.sender() is self.parent.Mach2ModMag:
diff --git a/ui/OpticsToolsGui.py b/ui/OpticsToolsGui.py
index f863f70..3ad13bd 100644
--- a/ui/OpticsToolsGui.py
+++ b/ui/OpticsToolsGui.py
@@ -511,12 +511,12 @@ class Ui_OpticsGUI(object):
self.actionExport_Magnet_Settings = QtWidgets.QAction(OpticsGUI)
self.actionExport_Magnet_Settings.setEnabled(False)
self.actionExport_Magnet_Settings.setObjectName("actionExport_Magnet_Settings")
- self.actionInfo = QtWidgets.QAction(OpticsGUI)
- self.actionInfo.setEnabled(True)
- self.actionInfo.setObjectName("actionInfo")
- self.actionWebsite = QtWidgets.QAction(OpticsGUI)
- self.actionWebsite.setEnabled(False)
- self.actionWebsite.setObjectName("actionWebsite")
+ self.actionAbout = QtWidgets.QAction(OpticsGUI)
+ self.actionAbout.setEnabled(True)
+ self.actionAbout.setObjectName("actionAbout")
+ self.actionHelp = QtWidgets.QAction(OpticsGUI)
+ self.actionHelp.setEnabled(True)
+ self.actionHelp.setObjectName("actionHelp")
self.actionLoad_Settings_from_Model = QtWidgets.QAction(OpticsGUI)
self.actionLoad_Settings_from_Model.setEnabled(True)
self.actionLoad_Settings_from_Model.setObjectName("actionLoad_Settings_from_Model")
@@ -595,8 +595,8 @@ class Ui_OpticsGUI(object):
self.menuFile.addAction(self.actionSave)
self.menuFile.addSeparator()
self.menuFile.addAction(self.actionQuit)
- self.menuHelp.addAction(self.actionInfo)
- self.menuHelp.addAction(self.actionWebsite)
+ self.menuHelp.addAction(self.actionAbout)
+ self.menuHelp.addAction(self.actionHelp)
self.menubar.addAction(self.menuFile.menuAction())
self.menubar.addAction(self.menuHelp.menuAction())
@@ -690,8 +690,8 @@ class Ui_OpticsGUI(object):
self.actionQuit.setText(_translate("OpticsGUI", "Quit"))
self.actionExport_Lattice.setText(_translate("OpticsGUI", "Export Lattice..."))
self.actionExport_Magnet_Settings.setText(_translate("OpticsGUI", "Export Magnet Settings..."))
- self.actionInfo.setText(_translate("OpticsGUI", "Info..."))
- self.actionWebsite.setText(_translate("OpticsGUI", "Website..."))
+ self.actionAbout.setText(_translate("OpticsGUI", "About..."))
+ self.actionHelp.setText(_translate("OpticsGUI", "Help.."))
self.actionLoad_Settings_from_Model.setText(_translate("OpticsGUI", "Load Settings from Model"))
self.actionUpdate_Model.setText(_translate("OpticsGUI", "Update Model"))
self.actionLoad_Settings_from_Machine.setText(_translate("OpticsGUI", "Load Settings from Machine"))
diff --git a/ui/OpticsToolsGui.ui b/ui/OpticsToolsGui.ui
index e61a178..a3d6ea1 100644
--- a/ui/OpticsToolsGui.ui
+++ b/ui/OpticsToolsGui.ui
@@ -821,8 +821,8 @@
Help
-
-
+
+
@@ -913,20 +913,20 @@
Export Magnet Settings...
-
+
true
- Info...
+ About...
-
+
- false
+ true
- Website...
+ Help..