Robotics applications often consist of processes on different targets that must work together. Therefore, communication architecture is an important component of robotics applications. The following figure shows an example of a robotics application with many processes that must transfer data locally and over a network.
LabVIEW offers many different features for communicating between processes in applications similar to the previous one. Use the following flowchart to determine an appropriate communication feature for your robotics application. Click a bubble to learn more about the communication concept or feature it describes.
Lossless communication describes network transmission that guarantees the delivery of every data point.
A fixed protocol is a predefined message format that you cannot change. For example, a fixed protocol might require a three-byte header at the beginning of each data point or a two-byte checksum at the end of each data point.
Buffering is the transmission of data to a memory space, or buffer, which stores that data until the recipient reads it. If a buffer becomes full, newer values sometimes overwrite older values in the buffer. Buffering prevents data loss when a process writes data faster than other processes can read it. However, if your processes need only the latest values in a data set rather than most or all of the values, buffering is not always useful. Refer to the National Instruments Web site at ni.com for more information about buffering.
Broadcasting is a model of communication in which processes send data to a network port so that any computers listening on that port can receive that data. Multicasting is a related model in which a process sends data to a group of computers on a network. Unicasting is another related model in which a process sends messages to a single network destination identified by a unique address.