Extend zeromq PUB filters for TP updates
Multiple options:
- as fast as possible
- every X seconds
Send out "Testpulse Cycle Id" with timestamps (increase to sub second accuracy) and TP index in that cycle.
This avoids client having to poll updates. Only publish updates when the testpulse is running.
Tim:
- [x] Clarify with @campagnola if we need to send out the timeseries as well in addition to the features (resistances etc.) we extracted
- [ ] Think about a way for external users to query a single stored TP
Yes, it would be nice if MIES could optionally return the timeseries data from each test pulse (recording + command).
Use TPMarker as index for single TP.
Testpulse Cycle Id is constant over all TPs from one acquisition run.
Publish zeromq from TP_TSAnalysis thread function
Use TUF-XOP to save last publishing time for 1s 5s and 10s publishing clock. (four different publishers)
Instead of retrieving the timestamp in TP_RecordTP, retrieve it when the TP data is pushed to the thread and also push time stamp. Use this time stamp in the JSON as well as in TP_RecordTP then. (only single timestamp)
Part II TP retrieval:
One function that has a related functionality: TP_GetStoredTPs
- rename TP_GetStoredTPs to TP_GetConsecutiveTPsUptoMarker
- add a function that retrieves single TPs, with arg that allows to choose if DA data is included as well (DA data must be recreated through TP_CreateTestPulseWaveImpl)
- add a function that retrieves multiple TPs from TP Cycle id, with arg that allows to choose if DA data is included as well
- move core TP data getter to static utility functions and also use that in TP_GetConsecutiveTPsUptoMarker
- no optional arguments for API functions