mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 21:37:13 +02:00
1. Ctb transceiver ro (#773)
* transceiverenable, tsamples, romode for tranceiver and digital_transceiver * 202 spec instr only for transceiver mode * removed check for empty in trans readout and clean memory before reading from fifo * ctb read fifo strobe for all after reading all channels, adding 1us after selecting channel, changing fw date * updated 10gb transceiver enable ---- * added transceiver (tsamples, romode(transceiver, digital_transceiver), transceiverenable (mask) * clean memory before reading from fifo (for analog and digital as well) * read fifo then read strobe (also corresp fw) fixes number of reads (also for analg and digital)-> increases all pipelines by 1 * fixed bug in rearranging digital data in receiver * fixed bug in streaming size of data after rearranging * fixed bug in setbit, clearbit,and getbit * status checks fifo before returning idle (transmitting if data in fifo if transceiver more enabled) * soem matterhorn specifics that will need to be put into pattern in a month or two. this is temporary. * NOTE: breaking api. rxParameters struct has transceiverenabel and tsamples given from det to receiver
This commit is contained in:
@ -946,7 +946,8 @@ void Implementation::StartMasterWriter() {
|
||||
masterAttributes.analogSamples = generalData->nAnalogSamples;
|
||||
masterAttributes.digital =
|
||||
(generalData->readoutType == DIGITAL_ONLY ||
|
||||
generalData->readoutType == ANALOG_AND_DIGITAL)
|
||||
generalData->readoutType == ANALOG_AND_DIGITAL ||
|
||||
generalData->readoutType == DIGITAL_AND_TRANSCEIVER)
|
||||
? 1
|
||||
: 0;
|
||||
masterAttributes.digitalSamples = generalData->nDigitalSamples;
|
||||
@ -955,6 +956,14 @@ void Implementation::StartMasterWriter() {
|
||||
for (auto &i : ctbDbitList) {
|
||||
masterAttributes.dbitlist |= (1 << i);
|
||||
}
|
||||
masterAttributes.transceiverSamples =
|
||||
generalData->nTransceiverSamples;
|
||||
masterAttributes.transceiverMask = generalData->transceiverMask;
|
||||
masterAttributes.transceiver =
|
||||
(generalData->readoutType == TRANSCEIVER_ONLY ||
|
||||
generalData->readoutType == DIGITAL_AND_TRANSCEIVER)
|
||||
? 1
|
||||
: 0;
|
||||
masterAttributes.detectorRoi = generalData->detectorRoi;
|
||||
masterAttributes.counterMask = generalData->counterMask;
|
||||
masterAttributes.exptimeArray[0] = acquisitionTime1;
|
||||
@ -1509,6 +1518,20 @@ void Implementation::setNumberofDigitalSamples(const uint32_t i) {
|
||||
LOG(logINFO) << "Packets per Frame: " << (generalData->packetsPerFrame);
|
||||
}
|
||||
|
||||
uint32_t Implementation::getNumberofTransceiverSamples() const {
|
||||
return generalData->nTransceiverSamples;
|
||||
}
|
||||
|
||||
void Implementation::setNumberofTransceiverSamples(const uint32_t i) {
|
||||
if (generalData->nTransceiverSamples != i) {
|
||||
generalData->SetNumberOfTransceiverSamples(i);
|
||||
SetupFifoStructure();
|
||||
}
|
||||
LOG(logINFO) << "Number of Transceiver Samples: "
|
||||
<< generalData->nTransceiverSamples;
|
||||
LOG(logINFO) << "Packets per Frame: " << (generalData->packetsPerFrame);
|
||||
}
|
||||
|
||||
uint32_t Implementation::getCounterMask() const {
|
||||
return generalData->counterMask;
|
||||
}
|
||||
@ -1718,6 +1741,20 @@ void Implementation::setDbitOffset(const int s) {
|
||||
LOG(logINFO) << "Dbit offset: " << ctbDbitOffset;
|
||||
}
|
||||
|
||||
uint32_t Implementation::getTransceiverEnableMask() const {
|
||||
return generalData->transceiverMask;
|
||||
}
|
||||
|
||||
void Implementation::setTransceiverEnableMask(uint32_t mask) {
|
||||
if (generalData->transceiverMask != mask) {
|
||||
generalData->SetTransceiverEnableMask(mask);
|
||||
SetupFifoStructure();
|
||||
}
|
||||
LOG(logINFO) << "Transceiver Enable Mask: 0x" << std::hex
|
||||
<< generalData->transceiverMask << std::dec;
|
||||
LOG(logINFO) << "Packets per Frame: " << (generalData->packetsPerFrame);
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* *
|
||||
* Callbacks *
|
||||
|
Reference in New Issue
Block a user