This TODO file lists ideas and features for future developments. They are more or less ordered according to their benefit, but that is subjective to some degree. Unless written, no activity has been started on the topics. TODOs for ongoing SDR output refactoring ---------------------------------------- Currently, all the frontend tuning and timestamping settings are UHD-specific. To make it possible to run with synchronous=1 using Soapy, refactoring the output to share the parts that are common. This would go towards SFN support with LimeSDR devices, under the condition that the LimeSDR gets support for a HW timestamp that can be set from a PPS signal. Discussion ongoing here https://discourse.myriadrf.org/t/synchronize-two-limesdr/1714 DPD will be possible too. Test sleep_through_frame implementation. Clean up and separate GPS and refclk checks. * *done* handle UHD GPSDO and time * *done* handle SoapySDR time * Add refclk stuff and timestamps to Soapy. * Ensure muting is set properly at startup. * Ensure synchronous is taken in account. * Verify resync after underflow and muting *done* Add antenna selection to config. Test RC entries. *done* Portability: replace clock_gettime with std::chrono *done* Make an abstraction for the DPD feedback server, use it for Soapy and UHD. *optional* Move staticdelay into a new process block Double-check all #includes Move other non SDR outputs to the output folder. Tests, both with B200 and LimeSDR: - No timestamps - with timestamps - LO offset - muting through RC - proper muting in absence of timestamps - GPS lock loss behaviour - All RC commands - Underrun recovery - Proper teardown - DPD server Smaller things -------------- Remove GuardIntervalInserter implementation for window==0, as it was shown both are equivalent. Replace all prints to stderr ---------------------------- We have a nice logging subsystem, use it to avoid that fprintf(stderr, ...) and logging to stderr messages collide. Finalise EDI input ------------------ The EDI input, based on work started in http://git.mpb.li/git/odr-edilib/ is not complete: * Add option to define max fill of input udp buffer. * Flag and present errors in some way (packets missing, RS faults, sequence errors, etc) * Detect and handle changes in mux composition * Fix misbehaviours when packets are intentionnally interleaved * Fix hangup where it tries to decode old PSEQs for too long Resampler improvements ---------------------- * Assess quality of window currently used. * Evaluate usefulness of other windows. * Distribute energy of Fs bin equally to both negative and positive frequencies in the back buffer. Review CicEq ------------ The CIC Equaliser was used for the USRP1 to compensate for spectrum flatness. It is not documented, and its effect poorly explained. Review if still needed, and document appropriately.