12-10-2013 04:28 PM
Hi,
I have a few troubleshooting steps that may help. First is to check the version of the CVI RTE on each computer via the .dll, this can be done through the instructions in the second part of this link.
Also you may want to test if the Buffered CNV example works properly on this computer.
I wanted to ask about your motivation for using a CNVSubscriber with PostDeferredCallback vs. a CNVBufferedSubscriber. Are you using this method based on a particular preference or requirement? Is there any reason you would prefer this to run in the main UI thread?
12-10-2013 05:17 PM
Another suggestion you can try is to track the number of times the CNV function is called and how many times the post deferred callback is processed. This way we can see if there is build up of PostDeferred Callbacks needing processing causing the queue to fill. Also, ProcessSystemEvents isn't called from the UI thread where the PostDeferred Callbacks are located, then there will be no change. Since the Callback exists in the NVC thread, calling ProcessSystemEvents in the Callback will not clear the PostDeferred Callbacks.
12-11-2013 06:58 AM
Hi Evan
I will try the CNVBufferedSubcriber function in a async timer to remove it from the Main UI.
How do you monitoring "Another suggestion you can try is to track the number of times the CNV function is called and how many times the post deferred callback is processed. This way we can see if there is build up of PostDeferred Callbacks needing processing causing the queue to fill"
do you do this with the NI I/O?
12-13-2013 07:42 AM
The simplest way would be to use the Execution Profiler as long as you have CVI Full Development System or Higher. The Call Tree View allows you to see the count for function calls. If you do not have the FDS, then you would need to code a count that is executed at the same time as the CNV Function.
12-17-2013 11:27 AM
Hi Evan
This is what I did,
a) I changed the reader for the buffered writer to an async reader in a acyn timer reading at 10ms, since the writer was writing at 25ms, to readout all of the buffer and did a check for new data in the loop. (this seems to have helped most of all).
I am unable to test on same the computer that had the problem due to other testing that came up.
I had to switch computers and install cvi on another computer. When I ran the program on the newly installed cvi it seems to work with no problem.
B) I also updated the labview run time engine.
for now the program seems to be running fine
general question if this data is being transmitted on one CVI programs numerical value on the UIR at 25ms as in our case. Is it better to link (bind) the numerical value UIR on the other CVI program using datasocket? If so a little explanation or a white paper link would help
Many Thanks
12-19-2013 04:46 AM
It depends on the application, however for your application DataSocket may be better as it is targeted for live data transfer.
http://digital.ni.com/public.nsf/allkb/B75E63D35FA1442986256723000141AA