Regarding different Adalm Pluto System Objects, internal functionality, simultaneously transmit and receive

I have a few questions regarding the available Adalm Pluto System Objects for MatLab like adi.AD9361.Tx/Rx from the ADI github (MathWorks_tools), or the sdrtx/rx from the MathWorks Communication Systems Toolbox Support Package.

1) Why are there 2 classes of System Objects, and which one is recommended to use? Whats the difference between them in terms of configurability, are both capable of turning on/off the cyclicity of the TX buffer for example?

2) Is it possible to simultaneously transmit and receive at the same time? In particular I want to try to capture the signal from my car remote, and as soon as the beginning of a signal is detected, transmit a short frame of jam signal to prevent my car from unlocking. This means however to continuously receive, otherwise the key signal isn't completely captured for further processing.

3) Relating to 2): How do the aforementioned TX / Rx System Objects internally work? Are the RX buffers continuously filled by the ADC, and calling rx() only reads out the last N samples with N being the number of samples per frame? Or does the method rather block the program flow, by waiting until the receive buffer received N new samples?
What about the tx() methods? Do they block the programm flow by waiting until the whole signal was clocked into the DAC, or do they rather return directly after putting the whole frame into a TX queue?

4) Is it in the obligation of the user to scale the TX signal into the 12b, -2^11,...,+2^11-1 range expected by the ADC? If values outside this range are passed to the tx() methods, does this lead to a DAC overflow?

Parents Reply Children