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:
2023-07-14 16:29:21 +02:00
committed by GitHub
parent a56be25500
commit c628ae2192
30 changed files with 1118 additions and 238 deletions

View File

@ -87,6 +87,8 @@ std::string ToString(const slsDetectorDefs::rxParameters &r) {
<< std::endl
<< "gates:" << r.gates << std::endl
<< "scanParams:" << ToString(r.scanParams) << std::endl
<< "transceiverSamples:" << r.transceiverSamples << std::endl
<< "transceiverMask:" << r.transceiverMask << std::endl
<< ']';
return oss.str();
}
@ -325,6 +327,10 @@ std::string ToString(const defs::readoutMode s) {
return std::string("digital");
case defs::ANALOG_AND_DIGITAL:
return std::string("analog_digital");
case defs::TRANSCEIVER_ONLY:
return std::string("transceiver");
case defs::DIGITAL_AND_TRANSCEIVER:
return std::string("digital_transceiver");
default:
return std::string("Unknown");
}
@ -789,6 +795,10 @@ template <> defs::readoutMode StringTo(const std::string &s) {
return defs::DIGITAL_ONLY;
if (s == "analog_digital")
return defs::ANALOG_AND_DIGITAL;
if (s == "transceiver")
return defs::TRANSCEIVER_ONLY;
if (s == "digital_transceiver")
return defs::DIGITAL_AND_TRANSCEIVER;
throw RuntimeError("Unknown readout mode " + s);
}