The stream system is the backbone of the IDE. It takes data from a single producer, such as the network spy decoder, and copies it to any number of registered consumers, such as the visualization tools.
Data from the network spy is classified by source address, destination address and packet type. Thus there could be a sonar data stream being forwarded from the player server to the robot program. The sonar visualization tool registers as a consumer of this stream, and so will be sent a copy of all the packets posted to this stream.
Streams are intended to be conceptual rather than physical divisions of data, and so they are not created or managed separately. If a packet is transmitted which does not fit in to any existing stream, a new stream is automatically created. It is also possible for consumers to register for streams that do not yet exist. This allows developers to set up visualizations before they start debugging their program. It is also possible to register for stream using wildcards for selection criteria.
It is important to note that a developer could easily create their own type of stream and pass data through it to the debug tools. The developer needs simply to register as a consumer of a sonar stream, process the data, and post the average values to a new type of stream.
No comments:
Post a Comment