merge fix

This commit is contained in:
maliakal_d 2022-02-23 11:40:50 +01:00
commit ef3df36e55
18 changed files with 56 additions and 46 deletions

View File

@ -41,6 +41,8 @@ This document describes the differences between v7.0.0 and v6.x.x
- file write disabled by default
- start non blocking acquisition at modular level
- connect master commands to api (allow set master for eiger)
- hostname cmd failed when connecting to servers in update mode (ctb, moench, jungfrau, eiger)
- missingpackets signed (negative => extra packets)
2. Resolved Issues

View File

@ -1911,7 +1911,7 @@ class Detector(CppDetectorApi):
@property
@element
def rx_missingpackets(self):
"""Gets the number of missing packets for each port in receiver."""
"""Gets the number of missing packets for each port in receiver. Negative number denotes extra packets. """
return self.getNumMissingPackets()
"""

View File

@ -490,9 +490,8 @@ void init_det(py::module &m) {
(Result<int64_t>(Detector::*)(sls::Positions) const) &
Detector::getFramesCaught,
py::arg() = Positions{})
.def(
"getNumMissingPackets",
(Result<std::vector<uint64_t>>(Detector::*)(sls::Positions) const) &
.def("getNumMissingPackets",
(Result<std::vector<int64_t>>(Detector::*)(sls::Positions) const) &
Detector::getNumMissingPackets,
py::arg() = Positions{})
.def("getNextFrameNumber",

View File

@ -67,7 +67,13 @@ int defaultDacValues[NDAC] = DEFAULT_DAC_VALS;
int vLimit = 0;
enum detectorSettings thisSettings = UNINITIALIZED;
int highvoltage = 0;
// getNumberofchannels return 0 for y in --update mode (virtual servers)
#ifdef VIRTUAL
int nSamples = DEFAULT_NUM_SAMPLES;
#else
int nSamples = 1;
#endif
int detPos[2] = {0, 0};
int isInitCheckDone() { return initCheckDone; }

View File

@ -80,8 +80,7 @@ char scanErrMessage[MAX_STR_LENGTH] = "";
/* initialization functions */
int updateModeAllowedFunction(int file_des) {
unsigned int listsize = 19;
enum detFuncs list[] = {F_EXEC_COMMAND,
enum detFuncs allowedFuncs[] = {F_EXEC_COMMAND,
F_GET_DETECTOR_TYPE,
F_GET_FIRMWARE_VERSION,
F_GET_SERVER_VERSION,
@ -99,9 +98,14 @@ int updateModeAllowedFunction(int file_des) {
F_UPDATE_KERNEL,
F_UPDATE_DETECTOR_SERVER,
F_GET_UPDATE_MODE,
F_SET_UPDATE_MODE};
for (unsigned int i = 0; i < listsize; ++i) {
if ((unsigned int)fnum == list[i]) {
F_SET_UPDATE_MODE,
F_GET_NUM_CHANNELS,
F_GET_NUM_INTERFACES,
F_ACTIVATE};
size_t allowedFuncsSize = sizeof(allowedFuncs) / sizeof(enum detFuncs);
for (unsigned int i = 0; i < allowedFuncsSize; ++i) {
if ((unsigned int)fnum == allowedFuncs[i]) {
return OK;
}
}

View File

@ -594,11 +594,9 @@ class Detector {
Result<int64_t> getFramesCaught(Positions pos = {}) const;
/** Gets the number of missing packets for each port in receiver.
* Troubleshoot: If they are large numbers, convert it to signed to get
* number of access packets received */
Result<std::vector<uint64_t>>
getNumMissingPackets(Positions pos = {}) const;
/** Gets the number of missing packets for each port in receiver. Negative
* number denotes extra packets. */
Result<std::vector<int64_t>> getNumMissingPackets(Positions pos = {}) const;
/** [Eiger][Jungfrau][Moench][CTB] */
Result<uint64_t> getNextFrameNumber(Positions pos = {}) const;

View File

@ -1537,7 +1537,8 @@ class CmdProxy {
"\n\tNumber of frames caught by receiver.");
GET_COMMAND(rx_missingpackets, getNumMissingPackets,
"\n\tNumber of missing packets for each port in receiver.");
"\n\tNumber of missing packets for each port in receiver. "
"Negative number denotes extra packets.");
INTEGER_COMMAND_VEC_ID(
nextframenumber, getNextFrameNumber, setNextFrameNumber,

View File

@ -776,7 +776,7 @@ void Detector::startDetector(Positions pos) {
for (unsigned int i = 0; i < is_master.size(); ++i) {
if (is_master[i]) {
masterPosition = i;
slaves.erase(pos.begin() + i);
slaves.erase(slaves.begin() + i);
}
}
pimpl->Parallel(&Module::startAcquisition, pos);
@ -808,7 +808,7 @@ Result<int64_t> Detector::getFramesCaught(Positions pos) const {
return pimpl->Parallel(&Module::getFramesCaughtByReceiver, pos);
}
Result<std::vector<uint64_t>>
Result<std::vector<int64_t>>
Detector::getNumMissingPackets(Positions pos) const {
return pimpl->Parallel(&Module::getNumMissingPackets, pos);
}

View File

@ -876,7 +876,7 @@ int64_t Module::getFramesCaughtByReceiver() const {
return sendToReceiver<int64_t>(F_GET_RECEIVER_FRAMES_CAUGHT);
}
std::vector<uint64_t> Module::getNumMissingPackets() const {
std::vector<int64_t> Module::getNumMissingPackets() const {
// TODO!(Erik) Refactor
LOG(logDEBUG1) << "Getting num missing packets";
if (shm()->useReceiverFlag) {
@ -888,7 +888,7 @@ std::vector<uint64_t> Module::getNumMissingPackets() const {
" returned error: " + client.readErrorMessage());
} else {
auto nports = client.Receive<int>();
std::vector<uint64_t> retval(nports);
std::vector<int64_t> retval(nports);
client.Receive(retval);
LOG(logDEBUG1) << "Missing packets of Receiver" << moduleIndex
<< ": " << sls::ToString(retval);

View File

@ -204,7 +204,7 @@ class Module : public virtual slsDetectorDefs {
runStatus getReceiverStatus() const;
double getReceiverProgress() const;
int64_t getFramesCaughtByReceiver() const;
std::vector<uint64_t> getNumMissingPackets() const;
std::vector<int64_t> getNumMissingPackets() const;
uint64_t getNextFrameNumber() const;
void setNextFrameNumber(uint64_t value);
void sendSoftwareTrigger(const bool block);

View File

@ -6,10 +6,10 @@
#define APIRECEIVER 0x211124
#define APIGUI 0x211124
#define APICTB 0x220203
#define APIGOTTHARD 0x220203
#define APIGOTTHARD2 0x220203
#define APIJUNGFRAU 0x220203
#define APIMYTHEN3 0x220203
#define APIMOENCH 0x220203
#define APIEIGER 0x220207
#define APICTB 0x220223
#define APIGOTTHARD 0x220223
#define APIGOTTHARD2 0x220223
#define APIJUNGFRAU 0x220223
#define APIMYTHEN3 0x220223
#define APIMOENCH 0x220223
#define APIEIGER 0x220223