fixing python version. allowing versions to execute even if no detector connected or in shared memory (#990)

This commit is contained in:
2024-09-30 17:10:20 +02:00
committed by GitHub
parent 6348ccd05b
commit 7fa5b5d70a
4 changed files with 134 additions and 46 deletions

View File

@ -1989,23 +1989,59 @@ class Detector(CppDetectorApi):
@property
def versions(self):
version_list = {'type': self.type,
'package': self.packageversion,
'client': self.clientversion}
if self.type == detectorType.EIGER:
version_list ['firmware (Beb)'] = self.firmwareversion
version_list ['firmware(Febl)'] = self.getFrontEndFirmwareVersion(slsDetectorDefs.fpgaPosition.FRONT_LEFT)
version_list ['firmware (Febr)'] = self.getFrontEndFirmwareVersion(slsDetectorDefs.fpgaPosition.FRONT_RIGHT)
type = "Unknown"
firmware = "Unknown"
detectorserver = "Unknown"
kernel = "Unknown"
hardware = "Unknown"
receiverversion = "Unknown"
eiger = False
firmware_febl = "Unknown"
firmware_febr = "Unknown"
firmware_beb = "Unknown"
receiver_in_shm = False
release = self.packageversion
client = self.clientversion
if self.nmod != 0:
# shared memory has detectors
type = self.type
eiger = (self.type == detectorType.EIGER)
receiver_in_shm = self.use_receiver
if receiver_in_shm:
# cannot connect to receiver
try:
receiverversion = self.rx_version
except Exception as e:
pass
# cannot connect to Detector
try:
firmware = self.firmwareversion
detectorserver = self.detectorserverversion
kernel = self.kernelversion
hardware = self.hardwareversion
if eiger:
firmware_beb = self.firmwareversion
firmware_febl = self.getFrontEndFirmwareVersion(slsDetectorDefs.fpgaPosition.FRONT_LEFT)
firmware_febr = self.getFrontEndFirmwareVersion(slsDetectorDefs.fpgaPosition.FRONT_RIGHT)
except Exception as e:
pass
version_list = {'type': {type},
'package': {release},
'client': {client}}
if eiger:
version_list ['firmware (Beb)'] = {firmware_beb}
version_list ['firmware(Febl)'] = {firmware_febl}
version_list ['firmware (Febr)'] = {firmware_febr}
else:
version_list ['firmware'] = self.firmwareversion
version_list ['detectorserver'] = self.detectorserverversion
version_list ['kernel'] = self.kernelversion
version_list ['hardware'] = self.hardwareversion
if self.use_receiver:
version_list ['receiver'] = self.rx_version
version_list ['firmware'] = {firmware}
version_list ['detectorserver'] = {detectorserver}
version_list ['kernel'] = kernel
version_list ['hardware'] = hardware
if receiver_in_shm:
version_list ['receiver'] = {receiverversion}
return version_list