Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fa33a4479d | |||
| 54b332f69d | |||
| 0ff5ca7b49 |
@@ -708,12 +708,14 @@ class PVGateway(QWidget):
|
||||
|
||||
|
||||
def receive_monitor_dbr_time(self, pvdata, alarm_severity):
|
||||
print("called from gateway", self.pv_name, alarm_severity)
|
||||
print("called from gateway", self.pv_name, alarm_severity, flush=True)
|
||||
pvdata.show()
|
||||
|
||||
def receive_monitor_update(self, value, status, alarm_severity):
|
||||
'''Triggered by monitor signal. For Widget to overload.'''
|
||||
|
||||
|
||||
|
||||
self.mutex_post_display.lock()
|
||||
_current_qt_dynamic_property = self.qt_dynamic_property_get()
|
||||
|
||||
@@ -765,6 +767,8 @@ class PVGateway(QWidget):
|
||||
'''Callback function to be invoked on change of pv value.
|
||||
cafe.getCache and cafe.set operations permitted within callback.
|
||||
'''
|
||||
|
||||
|
||||
self.mutex.lock()
|
||||
|
||||
pv_name = pvname
|
||||
|
||||
1696
pvgateway.py-
1696
pvgateway.py-
File diff suppressed because it is too large
Load Diff
1910
pvgateway.py:2.9
1910
pvgateway.py:2.9
File diff suppressed because it is too large
Load Diff
52
pvwidgets.py
52
pvwidgets.py
@@ -539,12 +539,14 @@ class CAQTextEntry(QLineEdit, PVGateway):
|
||||
trigger_monitor = Signal(object, int)
|
||||
trigger_connect = Signal(int, str, int)
|
||||
|
||||
def __init__(self, parent=None, pv_name: str = "", monitor_callback=None,
|
||||
def __init__(self, parent=None, pv_name: str="", monitor_callback=None,
|
||||
pv_within_daq_group: bool = False, color_mode=None,
|
||||
show_units=False, prefix: str = "", suffix: str = ""):
|
||||
show_units=False, prefix: str="", suffix: str="",
|
||||
precision: int=0):
|
||||
super().__init__(parent, pv_name, monitor_callback, pv_within_daq_group,
|
||||
color_mode, show_units, prefix, suffix,
|
||||
connect_callback=self.py_connect_callback)
|
||||
connect_callback=self.py_connect_callback,
|
||||
precision=precision)
|
||||
|
||||
self.is_initialize_complete() #waits a fraction of a second
|
||||
|
||||
@@ -574,13 +576,21 @@ class CAQTextEntry(QLineEdit, PVGateway):
|
||||
def configure_widget(self):
|
||||
self.setFocusPolicy(Qt.StrongFocus)
|
||||
|
||||
fm = QFontMetricsF(QFont("Sans Serif", 12))
|
||||
|
||||
|
||||
f = QFont("Sans Serif")
|
||||
f.setPixelSize(11)
|
||||
|
||||
fm = QFontMetricsF(f)
|
||||
|
||||
qrect = fm.boundingRect(self.suggested_text)
|
||||
|
||||
_width_scaling_factor = 1.15
|
||||
|
||||
self.setFixedHeight((fm.lineSpacing()*1.8))
|
||||
self.setFixedWidth(((qrect.width()+10) * _width_scaling_factor))
|
||||
_width_scaling_factor = 1.2
|
||||
|
||||
|
||||
|
||||
self.setFixedHeight(18) #(fm.lineSpacing()*1.6))
|
||||
self.setFixedWidth((qrect.width()+20) * _width_scaling_factor)
|
||||
|
||||
self.qt_property_initial_values(qt_object_name=self.PV_CONTROLLER)
|
||||
|
||||
@@ -598,7 +608,7 @@ class CAQTextEntry(QLineEdit, PVGateway):
|
||||
else:
|
||||
valStr = ("{: .%sf}" % self.precision)
|
||||
strText = valStr.format(round(val, self.precision))
|
||||
print(strText, " precision ", self.precision)
|
||||
#print(strText, " precision ", self.precision)
|
||||
self.setText(strText)
|
||||
else:
|
||||
#Do this for TextInfo cache
|
||||
@@ -643,7 +653,7 @@ class CAQTextEntry(QLineEdit, PVGateway):
|
||||
|
||||
|
||||
class CAQSpinBox(QSpinBox, PVGateway):
|
||||
'''Channel access enabled QTextEntry widget'''
|
||||
'''Channel access enabled QSpinBox widget'''
|
||||
trigger_monitor_float = Signal(float, int, int)
|
||||
trigger_monitor_int = Signal(int, int, int)
|
||||
trigger_monitor_str = Signal(str, int, int)
|
||||
@@ -1211,7 +1221,7 @@ class CAQTableWidget(QTableWidget):
|
||||
|
||||
|
||||
def widget_update(self):
|
||||
|
||||
""" Called when self.notif_unison is True """
|
||||
for _row, pvgate in enumerate(self.pv_gateway):
|
||||
|
||||
if not pvgate.notify_unison:
|
||||
@@ -1304,6 +1314,8 @@ class CAQTableWidget(QTableWidget):
|
||||
|
||||
self.item(_row, val_col_no).setBackground(
|
||||
QColor(pvgate.bg_readback))
|
||||
#self.item(_row, val_col_no).setBackground(
|
||||
# QColor('#aeae66'))
|
||||
if self.show_timestamp:
|
||||
self.item(_row, ts_col_no).setBackground(
|
||||
QColor(pvgate.bg_readback))
|
||||
@@ -1435,6 +1447,8 @@ class CAQTableWidget(QTableWidget):
|
||||
connect_triggers=False, notify_freq_hz=self.notify_freq_hz,
|
||||
notify_unison=self.notify_unison, precision=self.precision)
|
||||
|
||||
|
||||
|
||||
self.pv_gateway[i].is_initialize_complete()
|
||||
self.pv_gateway[i].trigger_connect.connect(
|
||||
self.receive_connect_update)
|
||||
@@ -1957,7 +1971,7 @@ class CAQTableWidget(QTableWidget):
|
||||
f = self.reconnect_button.font()
|
||||
|
||||
if 'Timestamp' in self.columns_dict.keys():
|
||||
f.setPixelSize(13)
|
||||
f.setPixelSize(11) #previous 13
|
||||
self.reconnect_button.setFixedWidth(100)
|
||||
else:
|
||||
f.setPixelSize(11) #6
|
||||
@@ -2085,14 +2099,20 @@ class CAQTableWidget(QTableWidget):
|
||||
value = value * self.scale_factor
|
||||
_value = self.pv_gateway[_row].format_display_value(value)
|
||||
|
||||
|
||||
qtwi = QTableWidgetItem(str(_value) + " ")
|
||||
f = qtwi.font()
|
||||
f.setPointSize(8)
|
||||
qtwi.setFont(f)
|
||||
qtwi.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable)
|
||||
#qtwi.setEditTriggers(QAbstractItemView.AllEditTriggers)
|
||||
self.setItem(_row, self.columns_dict['Value'], qtwi)
|
||||
#self.item(_row, self.columns_dict['Value']).setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable)
|
||||
#self.item(_row, self.columns_dict['Value']).setEditTriggers(QAbstractItemView.AllEditTriggers)
|
||||
self.item(_row, self.columns_dict['Value']).setTextAlignment(
|
||||
Qt.AlignRight | Qt.AlignVCenter)
|
||||
|
||||
|
||||
|
||||
if 'Timestamp' in self.columns_dict.keys():
|
||||
_handle = self.pv_gateway[_row].handle
|
||||
_pvd = self.pv_gateway[_row].cafe.getPVCache(_handle)
|
||||
@@ -2128,6 +2148,8 @@ class CAQTableWidget(QTableWidget):
|
||||
|
||||
_prop = self.pv_gateway[_row].qt_dynamic_property_get()
|
||||
|
||||
|
||||
|
||||
if _prop == self.pv_gateway[_row].READBACK_ALARM:
|
||||
|
||||
if alarm_severity == self.pv_gateway[_row].cyca.SEV_MAJOR:
|
||||
@@ -2172,6 +2194,10 @@ class CAQTableWidget(QTableWidget):
|
||||
elif _prop == self.pv_gateway[_row].READBACK_STATIC:
|
||||
self.item(_row, self.columns_dict['Value']).setBackground(
|
||||
QColor(self.pv_gateway[_row].bg_readback))
|
||||
#self.item(_row, self.columns_dict['Value']).setBackground(
|
||||
# QColor("#ffffe1"))
|
||||
#self.item(_row, self.columns_dict['Value']).setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable)
|
||||
|
||||
if 'Timestamp' in self.columns_dict.keys():
|
||||
self.item(_row, self.columns_dict['Timestamp']).setBackground(
|
||||
QColor(self.pv_gateway[_row].bg_readback))
|
||||
|
||||
3142
pvwidgets.py-
3142
pvwidgets.py-
File diff suppressed because it is too large
Load Diff
3461
pvwidgets.py:2.9
3461
pvwidgets.py:2.9
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user