ARIA Tools for Networking and Communication between Multiple Programs
From MobileRobots Research and Academic Customer Support
ARIA contains a class called ArSocket. This is modeled on standard operating system sockets (Linux/POSIX and Windows/WinSock/ws2_32), but abstracts the differences and quirks of the two socket implementations a little bit, and adds a few additional minor features.
ArNetServer is a class in ARIA that simplifies the creation of simple client programs or a basic remote command UI via telnet.
ArNetServer received text input from a socket (ArSocket), and splits the text input on newline/carriage return and whitespace characters, and calls callback functions (based on the first word) with the words from that line.
See netServerExample.cpp in the ARIA examples directory for an example.
You can use ArNetServer to easily implement some basic commands as strings of ascii text (like "forward 100", "turn -35", etc.), and connect to that server using telnet or any client program in any language.
ArNetServer will call a callback method (using ArFunctor) for each command (e.g. "forward", "turns") and provide the following words from the line of text as separate string arguments (e.g. "100" or "-35")
The ArNetworking library is the next layer up from that, it's a more complete framework for receiving regular data updates from a server, and sending commands to the, and comes with several already-implemented services for driving the robot, getting different kinds of information back, etc. It uses a packet format similar to the robot's packet format, transmitted over TCP or UDP sockets.
MobileEyes uses ArNetworking to communicate with a server (such as serverDemo, arnlServer, etc.).
ARNL contains several classes that integrate with ArNetworking and provide services and modes for navigation, control, etc.
ArNetworking includes services for easily viewing and changing program configuration parameters via ArConfig.
ArNetworking is a separate library, but it is installed along with ARIA in the ArNetworking subdirectory (/usr/local/Aria/ArNetworking on Linux, C:\Program Files\MobileRobots\Aria\ArNetworking on Windows). It includes a reference manual, example programs, source code, etc.