I am building a gui application in python inorder to conduct a real time plot for each channel of the Mcc118 Daqhat measurement instrument. However, I am facing a serious issue right now. I am applying the continuous scan function a_in_scan_read() which reads batches of the scan buffer for each iteration at a scan rate of 1000. Say for example, in a while loop or a recursive function loop for the first iteration it read 32 samples and in the second it reads 70 and so on. So what I tried was to plot the 32 samples first but there is the after() function of Python GUI cant go beyond 1ms and by the time it finishes when the next batch arrives it reads more than 1000 samples. So then I tried to split things up by scanning in a different function then storing the data in seperate function and execute the plot with a different function triggered manually with the click of a button. However, here the plotting only works when the scanning is complete so if the sample size of request is 100000 i have to wait for 100seconds till the plotting begins. Is there a better way to do a real time plotting say for now just a single channel. There only few ways I can think of . Read just one samples at a time and plot it instantly but I dont know the function to read 1 samples every one milli second / plot the batch fast enough to move on to the next batch / is there a way to perform multi processing or multi threading. Any suggestion would be really helpful.
Question
Sai Mouli
Hello Everyone, Happy New Year to Everybody![:D :D](//content.invisioncic.com/f319528/default_biggrin.png)
I am building a gui application in python inorder to conduct a real time plot for each channel of the Mcc118 Daqhat measurement instrument. However, I am facing a serious issue right now. I am applying the continuous scan function a_in_scan_read() which reads batches of the scan buffer for each iteration at a scan rate of 1000. Say for example, in a while loop or a recursive function loop for the first iteration it read 32 samples and in the second it reads 70 and so on. So what I tried was to plot the 32 samples first but there is the after() function of Python GUI cant go beyond 1ms and by the time it finishes when the next batch arrives it reads more than 1000 samples. So then I tried to split things up by scanning in a different function then storing the data in seperate function and execute the plot with a different function triggered manually with the click of a button. However, here the plotting only works when the scanning is complete so if the sample size of request is 100000 i have to wait for 100seconds till the plotting begins. Is there a better way to do a real time plotting say for now just a single channel. There only few ways I can think of . Read just one samples at a time and plot it instantly but I dont know the function to read 1 samples every one milli second / plot the batch fast enough to move on to the next batch / is there a way to perform multi processing or multi threading. Any suggestion would be really helpful.
Thank You
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now