working on lockin (SR)
Change-Id: Ia8dc71bf1029feaa66614ade0f8e9e99358f142e
This commit is contained in:
parent
564620e9e3
commit
0771cb6899
@ -85,8 +85,8 @@ class XY(HasIO, Readable):
|
||||
return c_ind
|
||||
|
||||
def comm(self, cmd):
|
||||
reply, status, overload = self.communicate(cmd).split(b';')
|
||||
if overload != b'0':
|
||||
reply, status, overload = self.communicate(cmd).split(';')
|
||||
if overload != '0':
|
||||
self.status = (self.Status.WARN, f'overload {overload}')
|
||||
self.status = (self.Status.IDLE, '')
|
||||
return reply
|
||||
|
@ -18,7 +18,7 @@
|
||||
# Module authors:
|
||||
# Oksana Shliakhtun <oksana.shliakhtun@psi.ch>
|
||||
# *****************************************************************************
|
||||
""" RUFS Command: Description of Bits
|
||||
""" Table of status bits (see 'RUFS' command)
|
||||
|
||||
====== ======================================================== ==============================================
|
||||
Value Description
|
||||
@ -86,6 +86,29 @@ class ThermFishIO(StringIO):
|
||||
class SensorA10(HasIO, Readable):
|
||||
ioClass = ThermFishIO
|
||||
value = Parameter('internal temperature', unit='degC')
|
||||
status_messages = [
|
||||
(ERROR, 'high tempr. cutout fault', 2, 0),
|
||||
(ERROR, 'high RA tempr. fault', 2, 1),
|
||||
(ERROR, 'high temperature fixed fault', 3, 7),
|
||||
(ERROR, 'low temperature fixed fault', 3, 6),
|
||||
(ERROR, 'high temperature fault', 3, 5),
|
||||
(ERROR, 'low temperature fault', 3, 4),
|
||||
(ERROR, 'low level fault', 3, 3),
|
||||
(ERROR, 'circulator fault', 4, 5),
|
||||
(ERROR, 'high press. cutout', 5, 2),
|
||||
(ERROR, 'motor overloaded', 5, 1),
|
||||
(ERROR, 'pump speed fault', 5, 0),
|
||||
(WARN, 'open internal sensor', 1, 7),
|
||||
(WARN, 'shorted internal sensor', 1, 6),
|
||||
(WARN, 'high temperature warn', 3, 2),
|
||||
(WARN, 'low temperature warn', 3, 1),
|
||||
(WARN, 'low level warn', 3, 0),
|
||||
(IDLE, 'max. heating', 5, 5),
|
||||
(IDLE, 'heating', 5, 6),
|
||||
(IDLE, 'cooling', 5, 4),
|
||||
(IDLE, 'max cooling', 5, 3),
|
||||
(IDLE, '', 4, 3),
|
||||
]
|
||||
|
||||
def get_par(self, cmd):
|
||||
"""
|
||||
@ -112,37 +135,11 @@ class SensorA10(HasIO, Readable):
|
||||
result_str = self.communicate('RUFS') # read unit fault status
|
||||
values_str = result_str.strip().split()
|
||||
values_int = [int(val) for val in values_str]
|
||||
v1, v2, v3, v4, v5 = values_int #[:5]
|
||||
|
||||
status_messages = [
|
||||
(ERROR, 'high tempr. cutout fault', 2, 0),
|
||||
(ERROR, 'high RA tempr. fault', 2, 1),
|
||||
(ERROR, 'high temperature fixed fault', 3, 7),
|
||||
(ERROR, 'low temperature fixed fault', 3, 6),
|
||||
(ERROR, 'high temperature fault', 3, 5),
|
||||
(ERROR, 'low temperature fault', 3, 4),
|
||||
(ERROR, 'low level fault', 3, 3),
|
||||
(ERROR, 'circulator fault', 4, 5),
|
||||
(ERROR, 'high press. cutout', 5, 2),
|
||||
(ERROR, 'motor overloaded', 5, 1),
|
||||
(ERROR, 'pump speed fault', 5, 0),
|
||||
(WARN, 'open internal sensor', 1, 7),
|
||||
(WARN, 'shorted internal sensor', 1, 6),
|
||||
(WARN, 'high temperature warn', 3, 2),
|
||||
(WARN, 'low temperature warn', 3, 1),
|
||||
(WARN, 'low level warn', 3, 0),
|
||||
(IDLE, 'max. heating', 5, 5),
|
||||
(IDLE, 'heating', 5, 6),
|
||||
(IDLE, 'cooling', 5, 4),
|
||||
(IDLE, 'max cooling', 5, 3),
|
||||
(IDLE, '', 4, 3),
|
||||
]
|
||||
|
||||
for status_type, status_msg, vi, bit in status_messages:
|
||||
for status_type, status_msg, vi, bit in self.status_messages:
|
||||
if values_int[vi-1] & (1 << bit):
|
||||
print(status_type, status_msg, vi, bit)
|
||||
return status_type, status_msg
|
||||
return WARN, 'circulation off'
|
||||
return WARN, 'circulation off'
|
||||
|
||||
|
||||
class TemperatureLoopA10(SensorA10, Drivable):
|
||||
|
Loading…
x
Reference in New Issue
Block a user