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=en&lr=&ie=UTF-8&oe=UTF-8&threadm=3CB758BF.809%40austin.rr.com&rnum=1&prev=/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=en&lr=&ie=UTF-8&oe=UTF-8&threadm=5065000000050000002E110100-1042324653000%40exchange.ni.com&rnum=6&prev=/groups%3Fq%3Dlabview%2B%2522data%2Bsocket%2522%2Btcp%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3D5065000000050000002E110100-1042324653000%2540exchange.ni.com%26rnum%3D6

Using DS through a firewall:
http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/fcf8a1464bd2f6d686256b59007c9a6f?OpenDocument

-Kevin




Reply via email to