mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-15 06:17:12 +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:
@ -2387,6 +2387,19 @@ void Module::setTenGigaADCEnableMask(uint32_t mask) {
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t Module::getTransceiverEnableMask() const {
|
||||
return sendToDetector<uint32_t>(F_GET_TRANSCEIVER_ENABLE_MASK);
|
||||
}
|
||||
|
||||
void Module::setTransceiverEnableMask(uint32_t mask) {
|
||||
sendToDetector(F_SET_TRANSCEIVER_ENABLE_MASK, mask, nullptr);
|
||||
// update #nchan, as it depends on #samples, adcmask,
|
||||
updateNumberOfChannels();
|
||||
|
||||
if (shm()->useReceiverFlag) {
|
||||
sendToReceiver<int>(F_RECEIVER_SET_TRANSCEIVER_MASK, mask);
|
||||
}
|
||||
}
|
||||
// CTB Specific
|
||||
|
||||
int Module::getNumberOfDigitalSamples() const {
|
||||
@ -2401,6 +2414,18 @@ void Module::setNumberOfDigitalSamples(int value) {
|
||||
}
|
||||
}
|
||||
|
||||
int Module::getNumberOfTransceiverSamples() const {
|
||||
return sendToDetector<int>(F_GET_NUM_TRANSCEIVER_SAMPLES);
|
||||
}
|
||||
|
||||
void Module::setNumberOfTransceiverSamples(int value) {
|
||||
sendToDetector(F_SET_NUM_TRANSCEIVER_SAMPLES, value, nullptr);
|
||||
updateNumberOfChannels(); // depends on samples and adcmask
|
||||
if (shm()->useReceiverFlag) {
|
||||
sendToReceiver(F_RECEIVER_SET_NUM_TRANSCEIVER_SAMPLES, value, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
slsDetectorDefs::readoutMode Module::getReadoutMode() const {
|
||||
return sendToDetector<readoutMode>(F_GET_READOUT_MODE);
|
||||
}
|
||||
@ -2408,6 +2433,7 @@ slsDetectorDefs::readoutMode Module::getReadoutMode() const {
|
||||
void Module::setReadoutMode(const slsDetectorDefs::readoutMode mode) {
|
||||
auto arg = static_cast<uint32_t>(mode); // TODO! unit?
|
||||
sendToDetector(F_SET_READOUT_MODE, arg, nullptr);
|
||||
sendToDetectorStop(F_SET_READOUT_MODE, arg, nullptr);
|
||||
// update #nchan, as it depends on #samples, adcmask,
|
||||
if (shm()->detType == CHIPTESTBOARD) {
|
||||
updateNumberOfChannels();
|
||||
|
Reference in New Issue
Block a user