- [x] Time domain marker frequency conversion (1 / dT) - [ ] Limit data rate (trigger blocking)? - [x] Max hold (maximum for each bin in the FFT) - [ ] Implement the waveform memory all the way (make global like the markers) - [x] Save sensor data to file - [ ] Propagate `const ProcessedRecord` from the processing thread. - [x] Add `valid` bit to metrics (don't show bad frequency metrics). - [x] Record frames - [x] One selected record index within the frame - [x] Plot all records on top of each other (persistence-ish) - Only update the plot when all information is available (lower perceived trigger rate). - [x] Add firmware name to configuration filename - [x] Allow clock system actions in acquisition state - [ ] FWPD integration - [x] Use dynamic length in transfer interface - [x] Implement `nof_acquisition_channels`/`nof_transfer_channels` - [ ] Figure out how to visualize the attribute data. In metric view I guess? Need more sophisticated masking. - [ ] Make the screenshot path more discoverable/configurable somehow. - [x] Don't clear the FFT processing on Start/Stop (ever?) - [x] Rework the Python embedding (message thread + ~~reinitialize the interpreter between scripts~~) - [x] Synchronize parameter files after calling Python - Special return value or always? - [x] Statistics for time domain metrics (mean, min, max etc.) cleared manually? - [x] Still some issue w/ harmonic analysis on max-hold buffer? - [x] Tooltips for solo and mute buttons. - [x] Validate `pyadq` compatibility
const ProcessedRecordfrom the processing thread.validbit to metrics (don't show bad frequency metrics).nof_acquisition_channels/nof_transfer_channelsreinitialize the interpreter between scripts)pyadqcompatibility