mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 11:20:04 +02:00
read back of csr
This commit is contained in:
parent
a2007b78e7
commit
7c4f9ee044
@ -49,13 +49,13 @@ args = parser.parse_args()
|
|||||||
|
|
||||||
|
|
||||||
servers = [
|
servers = [
|
||||||
"eigerDetectorServer",
|
# "eigerDetectorServer",
|
||||||
"jungfrauDetectorServer",
|
# "jungfrauDetectorServer",
|
||||||
"mythen3DetectorServer",
|
"mythen3DetectorServer",
|
||||||
"gotthard2DetectorServer",
|
# "gotthard2DetectorServer",
|
||||||
"gotthardDetectorServer",
|
# "gotthardDetectorServer",
|
||||||
"ctbDetectorServer",
|
# "ctbDetectorServer",
|
||||||
"moenchDetectorServer",
|
# "moenchDetectorServer",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -1136,6 +1136,10 @@ void init_det(py::module &m) {
|
|||||||
(Result<bool>(Detector::*)(sls::Positions) const) &
|
(Result<bool>(Detector::*)(sls::Positions) const) &
|
||||||
Detector::getMaster,
|
Detector::getMaster,
|
||||||
py::arg() = Positions{})
|
py::arg() = Positions{})
|
||||||
|
.def("getChipStatusRegister",
|
||||||
|
(Result<int>(Detector::*)(sls::Positions) const) &
|
||||||
|
Detector::getChipStatusRegister,
|
||||||
|
py::arg() = Positions{})
|
||||||
.def("getNumberOfAnalogSamples",
|
.def("getNumberOfAnalogSamples",
|
||||||
(Result<int>(Detector::*)(sls::Positions) const) &
|
(Result<int>(Detector::*)(sls::Positions) const) &
|
||||||
Detector::getNumberOfAnalogSamples,
|
Detector::getNumberOfAnalogSamples,
|
||||||
|
@ -31,6 +31,10 @@ int clearBit(int ibit, int patword) { return patword &= ~(1 << ibit); }
|
|||||||
extern enum TLogLevel trimmingPrint ;
|
extern enum TLogLevel trimmingPrint ;
|
||||||
|
|
||||||
|
|
||||||
|
int getChipStatusRegister(){
|
||||||
|
return chipStatusRegister;
|
||||||
|
}
|
||||||
|
|
||||||
patternParameters *setChipStatusRegister(int csr) {
|
patternParameters *setChipStatusRegister(int csr) {
|
||||||
int iaddr=0;
|
int iaddr=0;
|
||||||
int nbits=18;
|
int nbits=18;
|
||||||
|
@ -57,6 +57,7 @@ enum {Cac225, Cac_450};
|
|||||||
#define default_gain
|
#define default_gain
|
||||||
int setBit(int ibit, int patword);
|
int setBit(int ibit, int patword);
|
||||||
int clearBit(int ibit, int patword);
|
int clearBit(int ibit, int patword);
|
||||||
|
int getChipStatusRegister();
|
||||||
patternParameters *setChipStatusRegister(int csr);
|
patternParameters *setChipStatusRegister(int csr);
|
||||||
patternParameters *setChannelRegisterChip(int ichip, int *mask, int *trimbits);
|
patternParameters *setChannelRegisterChip(int ichip, int *mask, int *trimbits);
|
||||||
patternParameters *setInterpolation(int mask);
|
patternParameters *setInterpolation(int mask);
|
||||||
|
@ -25,6 +25,10 @@
|
|||||||
#include "blackfin.h"
|
#include "blackfin.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(MYTHEN3D)
|
||||||
|
#include "mythen3.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdio.h> // FILE
|
#include <stdio.h> // FILE
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
@ -247,3 +247,4 @@ int get_pattern(int);
|
|||||||
int load_default_pattern(int);
|
int load_default_pattern(int);
|
||||||
int get_all_threshold_energy(int);
|
int get_all_threshold_energy(int);
|
||||||
int get_master(int);
|
int get_master(int);
|
||||||
|
int get_csr();
|
@ -369,6 +369,7 @@ void function_table() {
|
|||||||
flist[F_LOAD_DEFAULT_PATTERN] = &load_default_pattern;
|
flist[F_LOAD_DEFAULT_PATTERN] = &load_default_pattern;
|
||||||
flist[F_GET_ALL_THRESHOLD_ENERGY] = &get_all_threshold_energy;
|
flist[F_GET_ALL_THRESHOLD_ENERGY] = &get_all_threshold_energy;
|
||||||
flist[F_GET_MASTER] = &get_master;
|
flist[F_GET_MASTER] = &get_master;
|
||||||
|
flist[F_GET_CSR] = &get_csr;
|
||||||
|
|
||||||
// check
|
// check
|
||||||
if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) {
|
if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) {
|
||||||
@ -8388,3 +8389,19 @@ int get_master(int file_des){
|
|||||||
#endif
|
#endif
|
||||||
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
|
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_csr(int file_des){
|
||||||
|
ret = OK;
|
||||||
|
memset(mess, 0, sizeof(mess));
|
||||||
|
int retval = -1;
|
||||||
|
|
||||||
|
LOG(logDEBUG1, ("Getting csr\n"));
|
||||||
|
|
||||||
|
#ifndef MYTHEN3D
|
||||||
|
functionNotImplemented();
|
||||||
|
#else
|
||||||
|
retval = getChipStatusRegister();
|
||||||
|
#endif
|
||||||
|
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -1308,6 +1308,10 @@ class Detector {
|
|||||||
|
|
||||||
Result<bool> getMaster(Positions pos = {}) const;
|
Result<bool> getMaster(Positions pos = {}) const;
|
||||||
|
|
||||||
|
|
||||||
|
//TODO! check if we really want to expose this !!!!!
|
||||||
|
Result<int> getChipStatusRegister(Positions pos = {}) const;
|
||||||
|
|
||||||
///@{
|
///@{
|
||||||
|
|
||||||
/** @name CTB / Moench Specific */
|
/** @name CTB / Moench Specific */
|
||||||
|
@ -1615,6 +1615,10 @@ Result<bool> Detector::getMaster(Positions pos) const{
|
|||||||
return pimpl->Parallel(&Module::isMaster, pos);
|
return pimpl->Parallel(&Module::isMaster, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result<int> Detector::getChipStatusRegister(Positions pos) const{
|
||||||
|
return pimpl->Parallel(&Module::getChipStatusRegister, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// CTB/ Moench Specific
|
// CTB/ Moench Specific
|
||||||
|
|
||||||
|
@ -1998,6 +1998,10 @@ bool Module::isMaster() const{
|
|||||||
return sendToDetector<int>(F_GET_MASTER);
|
return sendToDetector<int>(F_GET_MASTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Module::getChipStatusRegister() const{
|
||||||
|
return sendToDetector<int>(F_GET_CSR);
|
||||||
|
}
|
||||||
|
|
||||||
// CTB / Moench Specific
|
// CTB / Moench Specific
|
||||||
int Module::getNumberOfAnalogSamples() const {
|
int Module::getNumberOfAnalogSamples() const {
|
||||||
return sendToDetector<int>(F_GET_NUM_ANALOG_SAMPLES);
|
return sendToDetector<int>(F_GET_NUM_ANALOG_SAMPLES);
|
||||||
|
@ -426,6 +426,7 @@ class Module : public virtual slsDetectorDefs {
|
|||||||
void setGateDelay(int gateIndex, int64_t value);
|
void setGateDelay(int gateIndex, int64_t value);
|
||||||
std::array<time::ns, 3> getGateDelayForAllGates() const;
|
std::array<time::ns, 3> getGateDelayForAllGates() const;
|
||||||
bool isMaster() const;
|
bool isMaster() const;
|
||||||
|
int getChipStatusRegister() const;
|
||||||
|
|
||||||
/**************************************************
|
/**************************************************
|
||||||
* *
|
* *
|
||||||
|
@ -221,6 +221,7 @@ enum detFuncs {
|
|||||||
F_LOAD_DEFAULT_PATTERN,
|
F_LOAD_DEFAULT_PATTERN,
|
||||||
F_GET_ALL_THRESHOLD_ENERGY,
|
F_GET_ALL_THRESHOLD_ENERGY,
|
||||||
F_GET_MASTER,
|
F_GET_MASTER,
|
||||||
|
F_GET_CSR,
|
||||||
|
|
||||||
NUM_DET_FUNCTIONS,
|
NUM_DET_FUNCTIONS,
|
||||||
RECEIVER_ENUM_START = 256, /**< detector function should not exceed this
|
RECEIVER_ENUM_START = 256, /**< detector function should not exceed this
|
||||||
|
Loading…
x
Reference in New Issue
Block a user