Inter-Process Communication Package
Project Head: Reid Simmons
IPC provides high-level support for connecting processes using TCP / IP sockets and sending data between processes. It takes care of opening sockets, registering messages, and sending and receiving messages, including both anonymous publish / subscribe and client / server type messages. The IPC library contains functions to marshall (serialize) and unmarshall (de-serialize) data, handles data transfer between machines with different Endian conventions, invoke user-defined handlers when a message is received, and invoke user-defined callbacks at set intervals. IPC was developed for the NASA New Millennium Program, and has been used in numerous robotic and autonomous systems at CMU, NASA, and elsewhere.