Details
-
Type:
Bug
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: ts_main_telescope
-
Labels:None
-
Story Points:1
-
Sprint:TSSW Sprint - Nov 07 - Nov 21
-
Team:Telescope and Site
-
Urgent?:No
Description
MTAirCompressorCSC went to fault, most likely during/after summit power failure, with message recorded in log:
CRITICAL base_csc:712 Fault! errorCode=1, errorReport="Error in telemetry loop: 'ExceptionResponse' object has no attribute 'registers'"
This might point to some issues with pymodbus. The only way this message can be produced (the only use of \<registers\>) is from this line in aircompressor_model.py:
def get_registers(self, address, count, unit, error_status):
status = self.read_holding_registers(address, count, unit=unit)
if status.isError():
raise ModbusError(status, error_status)
return status.registers
except obviously ExceptionResponse.isError() shall be true (governed by function code, which is + with 0x80 in pymodbus code).
I was looking into possibility function_code (which governs isError()) is wrongly assigned, but cannot find reason for it.