Re: Datasocket, Linux, and C

2004-03-22 Thread Kevin Valentine
George Gatling (Contractor) [EMAIL PROTECTED] said:
I have a datasocket server (WinXP) that is currently handling six 
labview applications (also WinXP) quite happily.  I want to add one 
more app, written in C and running on linux, that will publish to the 
datasocket server.  Being a simple labview programmer I don't know 
much about the ins and outs of include files and all that stuff.  
Beside me is a C programmer that doesn't know diddle about Labview.  
heh, what fun.  Can someone bridge our knowledge gap and explain what 
we need to get a C app on linux talking to my datasocket server?
I'm on the WALUG mailing list.  Last month we had a DS discussion.
Perhaps some of the URLs that came up could be of some use to you.  We 
were mostly interested in what DS actually was: TCP or UDP.  Turns out 
it's unbuffered TCP. (Sorry about the long URLs, you may have to paste 
them back together)

Greg explains what DS is:
http://groups.google.com/groups?hl=enlr=ie=UTF-8oe=UTF-8threadm=3CB758BF.809%40austin.rr.comrnum=1prev=/groups%3Fq%3Dlabview%2B%2522data%2Bsocket%2522%2Budp%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3D3CB758BF.809%2540austin.rr.com%26rnum%3D1
Discussion of DS benefits and application:
http://groups.google.com/groups?hl=enlr=ie=UTF-8oe=UTF-8threadm=50650005002E110100-1042324653000%40exchange.ni.comrnum=6prev=/groups%3Fq%3Dlabview%2B%2522data%2Bsocket%2522%2Btcp%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3D50650005002E110100-1042324653000%2540exchange.ni.com%26rnum%3D6
Using DS through a firewall:
http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/fcf8a1464bd2f6d686256b59007c9a6f?OpenDocument
-Kevin




Re: Datasocket, Linux, and C

2004-02-09 Thread George Gatling (Contractor)
These URLs are interesting reading... there is some confusion I think about 
datasocket buffering...  I think (not sure though) there were some 
significant changes in DS between LV5/6 and LV7 and maybe these changes 
contribute to the confusion.

I am running two DS apps now... one is simple and in a lab.  All the 
computers involved are even on the same switch and no buffering is even 
wanted... most recent value is all we want.

But the other app is more interesting.  It is based in Alaska.  I have 
antennas and spectrum analyzers spread over about 500 miles.  Each site 
uses a laptop to talk to the analyzer and functions as a data source.  The 
laptops connections to the Internet are all flavors... dial-up accounts, 
cable modems, lans, and dsl.

From a central location I have a controlling computer which subscribes to 
all the laptops data and publishes new settings for the analyzers.  I 
needed to catch all (or as many as possible) of the data from the 
laptops.  Using a queue on the laptop (to decouple data socket and DAQ) I 
can resent any data that didn't go the first time (ie datasocket 
error).  Then on the control side I uses datasockets buffered read.

With this I lose very few data packets.  My first pass at this project I 
wrote my own TCP client/server and experienced much higher loss 
rates.  TCP, after all, is not error free.  The DS based system is new (I 
am in Alaska now in fact) but should run pretty continuously over the next 
months... years..  so soon I will know exactly how robust DS is.  :)

Therefore I think much of the angst about buffering is probably 
misdirected.  BUT, I do think datasocket is missing some useful 
functionality and since I am all warmed up...

1.  are there any subscribers connected to the data I am publishing?
2.  are there any writers connected to the data I am writing?
3.  what URLs currently exist on the server?
4.  statistics on data transferred to and from the server by url. (just for 
fun)

the first three must exist because the datasocket server can display all of 
this information on its diagnostics panel.  When can we users get at it 
without resorting to crazy dll calls?

If anyone here is interested in datasocket, let me know.  I am happy to 
share my error handling and buffering code, which seems to work pretty 
well, for me at least.

George


Greg explains what DS is:
http://groups.google.com/groups?hl=enlr=ie=UTF-8oe=UTF-8threadm=3CB758BF.809%40austin.rr.comrnum=1prev=/groups%3Fq%3Dlabview%2B%2522data%2Bsocket%2522%2Budp%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3D3CB758BF.809%2540austin.rr.com%26rnum%3D1
Discussion of DS benefits and application:
http://groups.google.com/groups?hl=enlr=ie=UTF-8oe=UTF-8threadm=50650005002E110100-1042324653000%40exchange.ni.comrnum=6prev=/groups%3Fq%3Dlabview%2B%2522data%2Bsocket%2522%2Btcp%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3D50650005002E110100-1042324653000%2540exchange.ni.com%26rnum%3D6
Using DS through a firewall:
http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/fcf8a1464bd2f6d686256b59007c9a6f?OpenDocument
-Kevin