You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
another thing i see missing is queued acquisition support
basically AcquireData(false) is used in single threaded ATE-type code that sets stuff up, arms a trigger, grabs one waveform, etc
AcquireData(true) is used in glscopeclient when pulling data in a separate background thread> while the UI and DSP is still handling the old waveform
in that model you shouldn't overwrite the channel's current waveform during acquisitions as it can lead to race conditions
The UI thread calls AcquireDataFifo() when it's ready for new waveforms, which pops from m_pendingWaveforms and calls SetData() on each channel as appropriate
In general all scopehal drivers should be multithreading aware, and assume that arbitrary calls may overlap from different threads. So use mutexing around any access to the SCPITransport stream to ensure serialization when necessary
also you should aggressively cache scope settings in any of the Get*() calls because if you make one of those calls from the UI thread during an acquisition, and the cache misses, you have to hit up the hardware
Which means waiting until the current acquisition is over to get the mutex
The text was updated successfully, but these errors were encountered:
From IRC:
The text was updated successfully, but these errors were encountered: