Skip to content

Synchronous Design

rfdoell edited this page Oct 2, 2018 · 1 revision

For the initial implementation of the comms-rs package, the following design decisions have been made. These are subject to change in later major releases, but have been selected to enable rapid prototyping and demonstration of functionality.

Synchronous Flow

Each node in a comms-rs graph will block on its inputs and return state. This means that each execution of the call method will result in a single "time step" of the signal processing framework.

Synchronous Feedback/Control

In the case of feedback loops, such as would be found in a PLL or gain control system, it assumed that the relevant phase detector or power detector outputs a constant, synchronous, signal at every iteration of the call method. This has several implications:

  • Systems receiving feedback signals must accept constant inputs and make changes accordingly. For example, a Radio node that enables the graph to change its center frequency or input gain must be able to make intelligent decisions about a steady stream of constant or near-constant values (e.g., by not re-tuning or setting gain if the change in value isn't above a threshold)
  • Systems enabling control signals where dynamic control isn't set (e.g., constant gain for a Radio node) need to provide a constant-type node which outputs the same value on every execution of the call method

While creating additional overhead, this design decision sidesteps the question of asynchronous communication throughout most of the flowgraph.

Clone this wiki locally