Australia
Asked — Edited
Resolved Resolved by DJ Sures!

Udp Client (Lean)

Wrote a Windows program that will send an UDP message once a while from a different PC. I would like to use that message inside the ARC script. Very similar to the iPhone sensor module (UDP Listening). Although I could emulate the UDP string as per the Sensor Stream Server App, I would like to keep this as lean as possible (a couple of bytes is sufficient). Could anyone recommend a way for doing this?


ARC Pro

Upgrade to ARC Pro

Stay at the forefront of robot programming innovation with ARC Pro, ensuring your robot is always equipped with the latest advancements.

#1  

I would write a UDP listener app for the ARC PC and include the EZ-B SDK to convert the message to a variable and pass it into ARC.

You could also cinvert it to tcp and pass it to ARC through the Telnet interface, but I think the sdk variable would be more reliable.

Alan

PRO
Synthiam
#2  

Can you send TCP instead? If so, then simply enable the TCP Server and send EZ-Script commands. Find out more information here: https://synthiam.com/Tutorials/Help.aspx?id=171

UDP is unreliable transport and requires an application level protocol to verify correct data transmission by using parity bits or checksum. With TCP, you can rely on the SYN/ACK handling built into the transport. I would never recommend UDP.

If you're simply sending data that you wish to be used in ARC - then use TCP Server and set the variables. Check the link I provided and that will get you up and running in no time.

#3  

Well, technically it is TCP/IP v TCP/UDP, both are TCP.

UDP is intentionally unreliable, that is what it is made for. It would be silly to write extra code to make UDP reliable.

The reason is that for some forms of streams, (eg video), if a single frame gets dropped no one cares, where as an audio stream, if a frame gets dropped it is very noticeable. In the early days, when a 2400 baud data line cost $3000 per month, things like having separate streams was important. Not so much anymore, and UDP is most often used for multipoint broadcasts (but there are other uses).

But also keep in mind ALL TCP is unreliable by definition. It just got good enough lately no one cares as much as they used to. Every time you load a web page, and formatting is missing, it is because some 'reliable' packet got dropped somewhere. 'Reliable' is a relative term.

Other protocols such as X.25 are 'error free'. No data ever gets dropped, that is part of the spec, but I don't think you can even get X.25 equipment anymore? I have not seen any in 25 years.

This is just all side info to what DJ Sures recommends. I am pretty sure he knows the best way to do what you want.

#4  

I know that X.25 packet switching is alive and well in the day to day signal protocol and voice traffic within the Alcatel Lucent 5ESS cellular network.

Also a few years ago when ISDN was first introduced, X.25 was used to control data setup control between the signaling D channel and bonding control of the 2 B channels. Kinda sad this Circuit switched and Packet switched network was basically an island to itself unless expensive trunking between central offices using X.75 was used. This technology (ISDN) had a quick flash in the pan and is now gathering dust somewhere.

Australia
#5  

Thanks Alan and DJ. Will change to TCP/IP. This seems to be the easiest way for now. Regards, Pascal:)

#6  

I stand corrected. Apparently the definition has changed. it is now TCP and UDP as part of TCP/IP (which makes zero sense to me), but apparently that use of terms has become so popular since I wrote ISO stacks that they have changed it. sigh, getting old sucks.

#7  

I wasn't going to correct you, but yeah, I knew that... ;)

Alan

#8  

which part? tcp or getting old:P