added status

This commit is contained in:
2023-10-22 20:32:05 +02:00
parent 65fa1e3a62
commit 3d30bf5b1e
+53 -7
View File
@@ -47,7 +47,7 @@ class OperationMessages:
attr_name = clean_name(name)
setattr(self, attr_name, om)
# fill second dict with alternative key formats
# fill second dict with cleaned keys
cleaned_ID = clean_name(ID)
items[cleaned_ID] = items[attr_name] = om
@@ -90,6 +90,8 @@ class OperationMessage:
pvname_send = f"{prefix}:OP-MSG-tmp"
self.pv_send = PV(pvname_send)
self.status = OperationMessageStatus(prefix)
self.entries = [
OperationMessageEntry(prefix, i+1) for i in range(N_MSG_HISTORY)
]
@@ -103,7 +105,7 @@ class OperationMessage:
def __repr__(self):
header = f"{self.name} ({self.ID})"
entries = (repr(i) for i in self.entries)
entries = [self.status] + [repr(i) for i in self.entries]
return itemize(entries, header=header)
@@ -131,12 +133,56 @@ class OperationMessageEntry:
#TODO:
class OperationMessageStatus:
# status:
#
# status dropdown/enum: SF-OP:{ID}-MSG:STATUS
# status change date: SF-OP:{ID}-MSG:STATUS-DATE
def __init__(self, prefix):
pvname_date = f"{prefix}:STATUS-DATE"
pvname_status = f"{prefix}:STATUS"
self.pv_date = PV(pvname_date)
self.pv_status = PV(pvname_status)
@property
def date(self):
return self.pv_date.get()
@property
def status(self):
return self.pv_status.get(as_string=True)
def __repr__(self):
return f"{self.date} {self.status}"
#TODO: auto generate those?
def set_offline(self):
self.update("OFFLINE")
def set_preparation(self):
self.update("PREPARATION")
def set_remote(self):
self.update("REMOTE")
def set_attended(self):
self.update("ATTENDED")
def update(self, value):
value = value.upper()
allowed = self.get_allowed()
if value not in allowed:
raise ValueError(f'value "{value}" is not from allowed values: {allowed}')
self.pv_status.put(value)
def get_allowed(self):
return self.pv_status.enum_strs
#TODO:
# machine:
#