06-01-2012 09:46 PM
Hi. I am using an array of 12 scintillation sensors to obtain a tracer position arround a vessel. Using a Labwindows CVI code writen in one computer I can obtain the value of the 12 detectors in 36 ms, that is not fast enough (because the sensors use USB port, is the best sampling time I can achieve). None the less I am able to hook the 3 set of detectors per notebook and read data at 9ms. my question is: Having one master computer and 4 notebooks (each notebook connected to 3 scintillation detectors), how can I send I wifi order to the slave notebooks to obtain data from the sensors using Labwindows CVI? Synchronization is a must.
Thanks
06-04-2012 09:09 PM
WiFi is the physical layer, or at least the lower layer(s) of the inter-computer network.
At the application layer, where you CVI app exists, it seems likely that you wouldn't deal with the WiFi so much as with a TCP connection, or some inter-process communications (IPC) mechanism, e.g. a named pipe.
I have solved a similar problem over a LAN (ethernet, not WiFi) using named pipes. I'm guessing you're running a Windows OS? If so, you can set up named pipes from the control or master PC to each of the client or slave PC's, then when it's time to start, send a message from the master to each of the slave PC's to collect data.
You could have the application on each slave start up and then hang a read on the named pipe and be waiting for the message so as to quickly react.
As far as latency / synchronization, you may have a problem there - getting a relativley fast (9 msec) deterministic, synchronoous response across a LAN (WiFi or not) is going to be problematic I would say.
I've also implemented multi-PC systems where we used a simple DC voltage as a trigger between systems, but I wouldn't bet that it worked within 9 msec.
For distributed, concurrent sensor readings a traditional mechanism is to route an electrical trigger to the sensors, as with a scope trigger, and thereby keep any computing out of the loop.