Showing results for 
Search instead for 
Did you mean: 

Approch to collect data from multiple data Aquisition cards ?

Hello All !

I have several data aquisition cards Aquiring data at the same time (Hardware timed single point mode),

driven by a 20 hz Clock.

All the data needs to be collected and sent immediately over ethernet (UDP) with correlation.

my question is what is the best approch for that :

1. putting data aquistion code for every card in it's own loop , and than in UDP Loop, read data from aquisition loops with local variables?

     in that case how do i know when all data is ready to be collected?

2. putting all data aquistion code for all cards in one loop ?


thanks for your help.




0 Kudos
Message 1 of 2

There is nothing wrong with putting all the data aquisition code in one loop as long as you think the number of data acquisition cards will remain the same.  Is the 20 Hz clock external driving all of them, or is each using an internal clock?


If the number of cards may change, you might want to keep them separate just to make it easier to scale up or down.


If you want to have separate loops for each, you can use the Rendevous functions to confirm each card has acquired a point before reading them with local variables in the UDP loop.


You could also create a queue for each card and enqueue a point as it is received.  You could put all of the dequeues in the UDP loop so that once all of them have dequeued a point, you can process and send them off.  This suggestion will be more reliable if each card is running on its own 20 Hz clock.  Either will work if you are using a single external 20 Hz clock for all cards.

Randall Pursley
0 Kudos
Message 2 of 2