Gilbert,
Thanks for your help concerning TCP/IP usage.
I have looked at your software (TCPhostclient)
and have a question for you:
1.) I need to send data at a 1khz rate from the server to the client,
the customer needs to see in realtime, two (pressure xducers) of the
ten channels on graphs, which are viewed on the client. He also
prefers to record the data only on the client, with of course no data
loss.
So, the server is acquiring at 1khz rate, with the client getting &
displaying the data (two channels) as close to that as possible.
Hence, the server acquire rate should control the client display rate,
not neccessarily the record rate. But really all control (but the
acquire rate)lies with the client. Have you tried 1khz or faster with
your software?
I was told yesterday that the "sync Datasocket vi's" will do everything
concerning the data speed, and integrity; but not the opening & closing
of the server vi. What have you heard about these vi's?
Thanks for your reponse!
Note: I'am on two WINNT 4.0, PC's, with service pack 5, connected by a
100MBbaseT LAN. One of the PC's (server) is actually a CompactPCI/PXI,
8156B Controller, 233MHZ, with 160MB.
Thanks again!
-Karl
In article <38F66C61.F66E4258@gmx.net>,
Gilbert Hangartner wrote:
> Thanks to all to answers. Looking at all the suggestions, I seems to
me that
> the following approach is the most stable, extensible and portable
solution
> (closely following Greg's suggestion):
>
> * Using VI-Server to lauch Server-VI (Acquisition) from the Client-VI
> (Display).
> * Using TCP-client-server model to interact between Display and
Acquisition.
>
> I created three communications channels, each using a specific TCP-
port:
> 1. Command channel: commands from the client to the server,
acknowledgement
> from server to the client. No data loss permitted.
> 2. Status channel: The client can check the current status of the
server at
> any time (no queue, we just need the most recent state).
> 3. Data channel: The client requests data, and waits for it if no new
data
> avaible. The server has two parallel main loops: An acquisition loop
which
> does actually the acquisition and sends the data in a queue, and the
TCP
> server loop which takes one data element of the queue and sends it to
the
> client on every request. Additionally, I allowed the client to
reconnect to
> the server when the connection is dropped (e.g. when the client
computer has
> crashed, or was switched of during night, or ...).
>
> All in all, the code got a bit larger than expected, but I can't see
how I
> could really make things easier ... or do I oversee anything
obvious???
>
> This implementation should just be considered as a test model to see
if and
> how this works. There are a lot of details left to improve,
especially error
> handling, initialization and time-outs. Anyway, I would be very glad
to have
> comments and suggestions from you! And if this code might serve as a
starting
> point to someone, great. Contact me, so we can share experience ...
>
> Greetings Gilbert
>
> Since the VI files are getting rather big, I put them to ftp:
>
> Mac-Archive:
ftp://pchsg00.unifr.ch/pub/labview/TCPhostclient.llb.sit
> (212 kB)
> Windows-Archive:
ftp://pchsg00.unifr.ch/pub/labview/TCPhostclient.zip (248
> kB)
>
> Stupid question: How to close a vi using the VI-Server??? I really
can't
> figure it out ... documentation on all that definitively needs some
work ...
>
>
Sent via Deja.com http://www.deja.com/
Before you buy.