Doc:ChannelSystem
From CSP
Basically, subsystems export named channels onto the bus, and other subsystems connect to them by name. The channels can contain simple values like the current steerpoint (as an integer), or complex interface objects. The latter tend to create tighter binding between subsystems, and so are less flexible for building generic interfaces (like xml generated DED pages).
An example of a simple channel is the current angle of attack. This is exported by the FlightDynamics class under the name bus::FlightDynamics::Alpha (= "FlightDynamics.Alpha"). It is imported by the F16HUD, FLCS, and other subsystems. An example of a complex channel is the FuelManagementSystem subsystem, which exports a reference to itself on the "FuelManagementSystem" channel. By importing this channel, other subsytems have full access to the FuelManagementSystem interface. The downside is that they depend directly on this interface. That's probably okay for the fuel system, which is very general, but for a specialized subsystem it may be better to export an adapter object or a base class interface.
Btw, channels also support push/pull signaling and callbacks, although this facility isn't used extensively at the moment.

