Commit Graph

19 Commits

Author SHA1 Message Date
21df1bc6cf Incallbacks should not return anything anymore. From inheritance to composition for InDataHandler code. StreamMgr singleton only weak ptr stored, this makes sure destruction from Python is more often done. UlDAQ code back to working.
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-09 10:43:04 +02:00
c87a5cec25 StreamMgr handle now via shared pointers. InDataHandler stores weak pointers. Reset callback in PyInDataHandler could be problematic. Refactored the UlDaq code and moved to a subfolder. 2023-06-07 21:49:07 +02:00
6fc1bd90b1 Moved IndataHandler to its own implementation file. Refactored some code. Fixed race conditions when starting and stopping indatahandlers. It appears that this does not solve the segfault, but is at least mitigates some race conditions when constructors are not ready on an object, and avoiding the call of virtual functions of an object which destructor has already been called. Added some extra assert check that a function is called from the right thread. Put explicit start and stop methods in constructor / destructor of PyInDataHandler. WARNING: this means all .start() and .stop() methods should be removed. THIS IS AN API break!
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-06 16:05:24 +02:00
480b036e02 Merge branch 'develop' into rt_signalviewer 2023-02-19 11:08:43 +01:00
e435dc9ecd Add: ClipHandler
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-27 14:56:46 +01:00
c7045a81e9 Added real time signal viewer 2023-01-05 10:35:47 +01:00
6758655eaa Bugfix in changing measurement channelConfig afterwards. Was not correctly fixed, as to store the enum index corresponding to the quantity 2022-10-20 12:28:46 +02:00
bebd270b44 Bugfix: reset() was called after inCallback() when adding new handler to StreamMgr. Bugfix: start() was doubly called for RtAPS. Once from Python and once from C++ in constructor. Renamed some scoped_lock to Lck. Added some comments 2022-10-16 21:26:06 +02:00
4764a52de8 Improved code for cubes. RtAps is not working. Don't know why. TimeBuffer code has better readability. Bugfix in output from Column to Numpy. GIL release for AvPowerSpectra::compute via Pybind. 2022-10-11 14:50:44 +02:00
e4ab05d36a Removed carma usage. This bugs as it changes the default allocator for armadillo, which does not work properly when native C++ threads do not register themselves as a thread for Python. We implemented the required convertors between Python and Armadillo ourselves. This also fixes the problem of Carma not being officially Python3.10 proof. 2022-10-11 09:43:36 +02:00
fae906884e Textual improvements. Formatting (Neoformat) improvements. Let DataTypeDescriptor be a reference (to a global const std map in Daq class. Improved naming of certain functions. Better DaqData implementation, now we make sure memory alignment is good at all times. Switched functions arguments in DaqData constructor to comply with all other cases of first frame, then channel. Better naming of stream in RtAudio. Better handling of faulty function calling in RtAudio start(). Bugfix in RtAudio, did call right Daq::dtypeDescr() function --> result was that only first channel was copied to all channels. Added extra check in StreamMgr. Removed unnecessary TypedDaqData class. Use a safe queue in threaded in data handler. We can now remove the Boost code for that. 2022-10-10 19:17:38 +02:00
f7a49dc4ff Added real time spectra: RtAps. All seem to work. Bugfix with SiQtys storage. Added extra lock guards for constructor and destructors of InDataHandlers (otherwise race conditions occur). Changed time_constant integer to fs_tau in AvPowerSpectra. 2022-10-06 21:13:21 +02:00
e900a5ddad Updated PPM to give clip indices length same as number of channels. Grouped the real time components to group dsp/rt. 2022-10-04 09:48:32 +02:00
5f1a207104 Added Peak Programme Meter, added functionality to clone SeriesBiquads without copying state. Improved recording callback mechanism. Added reset() function for IndataHandlers, which send a pointer to DAQ instance. 2022-10-04 09:27:27 +02:00
59085b091f Some bugfixes and useful function additions 2022-09-28 09:41:02 +02:00
c75f0dddc5 Split up indatahandler with python callback in part and part that calls the Python function. Threading is now handled using a thread pool. Some bugfixes 2022-08-14 21:00:22 +02:00
1e8b18aabe Added threadpool, biquadbank could be working for equalizer. First steps of SLM and AvPowerSpectra 2022-08-11 14:47:44 +02:00
12cf9586eb DaqConfiguration(s) back in place. Time to couple some stuff to ACME 2022-08-01 17:26:22 +02:00
3160aacc07 Replaced github STL-Threadsafe with boost::lockfree. Added PyIndataHandle to glue Python callbacks to new data. First work on getting recording back to work. 2022-07-29 09:32:26 +02:00