mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-14 22:07:12 +02:00
* merge fix from #721 PR (sync) 7.0.2.rc -> developer * row and column for jungfrau mixed up * multi module jungfrau sync must do slaves first then master for start acquisition and send software trigger, and master first and then slaves for stopacquisition * non blocking to slaves first and only then blocking/nonblocking to the master for sending software trigger(jungfrau multi mod sync) * fixed get/set timing jungfrau when sync enabled, getsync during blocking acquire (for trigger or stop) will get stuck as it should ask the stop server * switching between 1 and 2 interfaces did not set gui/client zmq port properly. Resulted in dummy streaming forever. fixed * formatting, refactoring: const & for positions, multi mod M3 stop first master first * adding missing cstdint for gcc 13 * Refactoring handle sync out, handling synchronization also for softwaretrigger for m3, for start/sync/stop for g2/g1 --------- Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com> * fixed row and col for moench 2 interfaces * fix moench getTiming and also allow moench to handle sync --------- Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
This commit is contained in:
@ -857,7 +857,7 @@ void Detector::stopDetector(Positions pos) {
|
||||
throw RuntimeError(
|
||||
"Could not stop detector. Returned error status.");
|
||||
}
|
||||
pimpl->Parallel(&Module::stopAcquisition, pos);
|
||||
pimpl->stopDetector(pos);
|
||||
status = getDetectorStatus().squash(defs::runStatus::RUNNING);
|
||||
++retries;
|
||||
|
||||
@ -916,7 +916,7 @@ void Detector::setNextFrameNumber(uint64_t value, Positions pos) {
|
||||
}
|
||||
|
||||
void Detector::sendSoftwareTrigger(const bool block, Positions pos) {
|
||||
pimpl->Parallel(&Module::sendSoftwareTrigger, pos, block);
|
||||
pimpl->sendSoftwareTrigger(block, pos);
|
||||
}
|
||||
|
||||
Result<defs::scanParameters> Detector::getScan(Positions pos) const {
|
||||
@ -954,18 +954,23 @@ void Detector::setNumberofUDPInterfaces(int n, Positions pos) {
|
||||
}
|
||||
|
||||
void Detector::setNumberofUDPInterfaces_(int n, Positions pos) {
|
||||
if (!size()) {
|
||||
throw RuntimeError("No modules added.");
|
||||
}
|
||||
bool previouslyClientStreaming = pimpl->getDataStreamingToClient();
|
||||
int clientStartingPort = getClientZmqPort({0}).squash(0);
|
||||
bool useReceiver = getUseReceiverFlag().squash(false);
|
||||
bool previouslyReceiverStreaming = false;
|
||||
int startingPort = 0;
|
||||
int rxStartingPort = 0;
|
||||
if (useReceiver) {
|
||||
previouslyReceiverStreaming = getRxZmqDataStream(pos).squash(true);
|
||||
startingPort = getRxZmqPort({0}).squash(0);
|
||||
rxStartingPort = getRxZmqPort({0}).squash(0);
|
||||
}
|
||||
pimpl->Parallel(&Module::setNumberofUDPInterfaces, pos, n);
|
||||
// ensure receiver zmq socket ports are multiplied by 2 (2 interfaces)
|
||||
if (getUseReceiverFlag().squash(false) && size()) {
|
||||
setRxZmqPort(startingPort, -1);
|
||||
setClientZmqPort(clientStartingPort, -1);
|
||||
if (getUseReceiverFlag().squash(false)) {
|
||||
setRxZmqPort(rxStartingPort, -1);
|
||||
}
|
||||
// redo the zmq sockets if enabled
|
||||
if (previouslyClientStreaming) {
|
||||
|
Reference in New Issue
Block a user