05-02-2013 04:26 PM
I currently have some FPGA code monitoring 768 digital lines (48 I16 integers) every 1 ms and buffering the data up to go to the RT. I have a loop running on my RT that reads data from a target to host FIFO every 5 milliseconds. This corresponds to 240 I16 integers each read. I then send that data off to a processing loop. It seems if I'm not processing, things are ok. Even processing I don't have issues. But when I process the data in my processing loop, and stick it in an object to be sent to my tcp loop and my logging loop, I have huge delays back in my acquisition loop...often on the order of 20-30 ms. Does an object really have that much overhead that it will effect a parallel loop this much? I will say when I wasn't using an object, I will still seeing these large jumps. The processed array is 3840 elements...that hardly seems like enough to cause this much jitter...but what do I know. This is a big problem because now I am behind on my acquisition and get buffer overflows, causing me to lose data.
Thoughts?
05-02-2013 04:41 PM
Looks like it is the object. I just used a standard queue to send the data out and didn't see nearly the jitter I was...time to refactor my messaging I guess.. Still looking for suggestions if anyone has them.