mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-07 10:30:41 +02:00
fixing python version. allowing versions to execute even if no detector connected or in shared memory (#990)
This commit is contained in:
parent
6348ccd05b
commit
7fa5b5d70a
@ -10,7 +10,14 @@ import sys
|
|||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
from pybind11.setup_helpers import Pybind11Extension, build_ext
|
from pybind11.setup_helpers import Pybind11Extension, build_ext
|
||||||
|
|
||||||
__version__ = os.environ.get('GIT_DESCRIBE_TAG', 'developer')
|
|
||||||
|
import subprocess
|
||||||
|
def get_git_tag():
|
||||||
|
try:
|
||||||
|
return subprocess.check_output(['git', 'describe', '--tags', '--abbrev=0']).strip().decode('utf-8')
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
return 'developer'
|
||||||
|
__version__ = get_git_tag()
|
||||||
|
|
||||||
|
|
||||||
def get_conda_path():
|
def get_conda_path():
|
||||||
|
@ -27,4 +27,14 @@ MacAddr = _slsdet.MacAddr
|
|||||||
scanParameters = _slsdet.scanParameters
|
scanParameters = _slsdet.scanParameters
|
||||||
currentSrcParameters = _slsdet.currentSrcParameters
|
currentSrcParameters = _slsdet.currentSrcParameters
|
||||||
DurationWrapper = _slsdet.DurationWrapper
|
DurationWrapper = _slsdet.DurationWrapper
|
||||||
pedestalParameters = _slsdet.pedestalParameters
|
pedestalParameters = _slsdet.pedestalParameters
|
||||||
|
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
def get_git_tag():
|
||||||
|
try:
|
||||||
|
return subprocess.check_output(['git', 'describe', '--tags', '--abbrev=0']).strip().decode('utf-8')
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
return 'developer'
|
||||||
|
__version__ = get_git_tag()
|
||||||
|
|
||||||
|
@ -1989,23 +1989,59 @@ class Detector(CppDetectorApi):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def versions(self):
|
def versions(self):
|
||||||
version_list = {'type': self.type,
|
type = "Unknown"
|
||||||
'package': self.packageversion,
|
firmware = "Unknown"
|
||||||
'client': self.clientversion}
|
detectorserver = "Unknown"
|
||||||
|
kernel = "Unknown"
|
||||||
if self.type == detectorType.EIGER:
|
hardware = "Unknown"
|
||||||
version_list ['firmware (Beb)'] = self.firmwareversion
|
receiverversion = "Unknown"
|
||||||
version_list ['firmware(Febl)'] = self.getFrontEndFirmwareVersion(slsDetectorDefs.fpgaPosition.FRONT_LEFT)
|
eiger = False
|
||||||
version_list ['firmware (Febr)'] = self.getFrontEndFirmwareVersion(slsDetectorDefs.fpgaPosition.FRONT_RIGHT)
|
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:
|
else:
|
||||||
version_list ['firmware'] = self.firmwareversion
|
version_list ['firmware'] = {firmware}
|
||||||
|
version_list ['detectorserver'] = {detectorserver}
|
||||||
version_list ['detectorserver'] = self.detectorserverversion
|
version_list ['kernel'] = kernel
|
||||||
version_list ['kernel'] = self.kernelversion
|
version_list ['hardware'] = hardware
|
||||||
version_list ['hardware'] = self.hardwareversion
|
if receiver_in_shm:
|
||||||
|
version_list ['receiver'] = {receiverversion}
|
||||||
if self.use_receiver:
|
|
||||||
version_list ['receiver'] = self.rx_version
|
|
||||||
|
|
||||||
return version_list
|
return version_list
|
||||||
|
|
||||||
|
@ -260,39 +260,74 @@ std::string Caller::versions(int action) {
|
|||||||
if (!args.empty()) {
|
if (!args.empty()) {
|
||||||
WrongNumberOfParameters(0);
|
WrongNumberOfParameters(0);
|
||||||
}
|
}
|
||||||
bool eiger = (det->getDetectorType().squash() == defs::EIGER);
|
|
||||||
auto t = det->getFirmwareVersion(std::vector<int>{det_id});
|
|
||||||
os << "\nType : " << OutString(det->getDetectorType())
|
|
||||||
<< "\nRelease : " << det->getPackageVersion() << std::hex
|
|
||||||
<< "\nClient : " << det->getClientVersion();
|
|
||||||
|
|
||||||
|
std::string vType = "Unknown";
|
||||||
|
std::string vFirmware = "Unknown";
|
||||||
|
std::string vServer = "Unknown";
|
||||||
|
std::string vKernel = "Unknown";
|
||||||
|
std::string vHardware = "Unknown";
|
||||||
|
bool eiger = false;
|
||||||
|
std::string vBebFirmware = "Unknown";
|
||||||
|
std::string vFeblFirmware = "Unknown";
|
||||||
|
std::string vFebrFirmware = "Unknown";
|
||||||
|
bool receiver = false;
|
||||||
|
std::string vReceiver = "Unknown";
|
||||||
|
|
||||||
|
std::string vRelease = det->getPackageVersion();
|
||||||
|
std::string vClient = det->getClientVersion();
|
||||||
|
|
||||||
|
if (det->size() != 0) {
|
||||||
|
// shared memory has detectors
|
||||||
|
vType = OutString(det->getDetectorType());
|
||||||
|
eiger = (det->getDetectorType().squash() == defs::EIGER);
|
||||||
|
receiver = det->getUseReceiverFlag().squash(false);
|
||||||
|
if (receiver) {
|
||||||
|
// cannot connect to receiver
|
||||||
|
try {
|
||||||
|
vReceiver = OutString(
|
||||||
|
det->getReceiverVersion(std::vector<int>{det_id}));
|
||||||
|
} catch (const std::exception &e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// cannot connect to Detector
|
||||||
|
try {
|
||||||
|
auto firmwareVersion =
|
||||||
|
det->getFirmwareVersion(std::vector<int>{det_id});
|
||||||
|
vFirmware = OutStringHex(firmwareVersion);
|
||||||
|
vServer = OutString(
|
||||||
|
det->getDetectorServerVersion(std::vector<int>{det_id}));
|
||||||
|
vKernel = OutString(
|
||||||
|
det->getKernelVersion({std::vector<int>{det_id}}));
|
||||||
|
vHardware = OutString(
|
||||||
|
det->getHardwareVersion(std::vector<int>{det_id}));
|
||||||
|
if (eiger) {
|
||||||
|
vBebFirmware = OutString(firmwareVersion);
|
||||||
|
vFeblFirmware = OutString(det->getFrontEndFirmwareVersion(
|
||||||
|
defs::FRONT_LEFT, std::vector<int>{det_id}));
|
||||||
|
vFebrFirmware = OutString(det->getFrontEndFirmwareVersion(
|
||||||
|
defs::FRONT_RIGHT, std::vector<int>{det_id}));
|
||||||
|
}
|
||||||
|
} catch (const std::exception &e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
os << "\nType : " << vType
|
||||||
|
<< "\nRelease : " << vRelease
|
||||||
|
<< "\nClient : " << vClient;
|
||||||
if (eiger) {
|
if (eiger) {
|
||||||
os << "\nFirmware (Beb) : "
|
os << "\nFirmware (Beb) : " << vBebFirmware
|
||||||
<< OutString(det->getFirmwareVersion(std::vector<int>{det_id}));
|
<< "\nFirmware (Febl) : " << vFeblFirmware
|
||||||
os << "\nFirmware (Febl) : "
|
<< "\nFirmware (Febr) : " << vFebrFirmware;
|
||||||
<< OutString(det->getFrontEndFirmwareVersion(
|
|
||||||
defs::FRONT_LEFT, std::vector<int>{det_id}));
|
|
||||||
os << "\nFirmware (Febr) : "
|
|
||||||
<< OutString(det->getFrontEndFirmwareVersion(
|
|
||||||
defs::FRONT_RIGHT, std::vector<int>{det_id}));
|
|
||||||
} else {
|
} else {
|
||||||
os << "\nFirmware : "
|
os << "\nFirmware : " << vFirmware;
|
||||||
<< OutStringHex(
|
|
||||||
det->getFirmwareVersion(std::vector<int>{det_id}));
|
|
||||||
}
|
|
||||||
|
|
||||||
os << "\nServer : "
|
|
||||||
<< OutString(det->getDetectorServerVersion(std::vector<int>{det_id}))
|
|
||||||
<< "\nKernel : "
|
|
||||||
<< OutString(det->getKernelVersion({std::vector<int>{det_id}}))
|
|
||||||
<< "\nHardware : "
|
|
||||||
<< OutString(det->getHardwareVersion(std::vector<int>{det_id}));
|
|
||||||
|
|
||||||
if (det->getUseReceiverFlag().squash(true)) {
|
|
||||||
os << "\nReceiver : "
|
|
||||||
<< OutString(det->getReceiverVersion(std::vector<int>{det_id}));
|
|
||||||
}
|
}
|
||||||
|
os << "\nServer : " << vServer
|
||||||
|
<< "\nKernel : " << vKernel
|
||||||
|
<< "\nHardware : " << vHardware;
|
||||||
|
if (receiver)
|
||||||
|
os << "\nReceiver : " << vReceiver;
|
||||||
os << std::dec << '\n';
|
os << std::dec << '\n';
|
||||||
|
|
||||||
} else if (action == defs::PUT_ACTION) {
|
} else if (action == defs::PUT_ACTION) {
|
||||||
throw RuntimeError("cannot put");
|
throw RuntimeError("cannot put");
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user