Following are the updates of the week:

Current Status

Layout implemented

The layouts are implemented. Somethings to note:

Each plots and a widgetbox(group of widgets) will get a parameter called placement from GRC which called set_layout methods of each of those. The placement parameter can have a vector of integers of length 4 of the form (row, col, rowspan, colspan). (row, col) are the starting coordinates of the plot and (rowspan, colspan) corresponds the size of the plot in the grid. The grid size is of maximum possible row x maximum possible column.

Following figure an example of grid, the placements of various elements inside the grid for the given value of parameters.
GridPlot Example

Note: The indexing starts from 0. Also, if only 2 values are provided, the rowspan and colspan will be assumed to be 1.

In background, the Bokeh library can understand the combinations of only Row and Column. Hence, a wrapper function create_layout takes a list of plots + widgetbox having the attribute self.layout and returns the Bokeh Layout instance (Row or Column containing Row or Column or plot). The recursive logic that implements it is available in the file python/bokeh_layout.py

The widgets:

The following widgets are completed and ready to use:

  1. Textbox
  2. Label (basically Textbox without a callback on change)
  3. Slider
  4. Range Slider
  5. Checkbox / Checkbox Button Group – During weekend
  6. Select / Radio Group / Radio Buttons – During weekend

Demo screencast:


The final GRC file from video is available at examples/demo_example.grc.
Example FlowGraph

The final output is also shown below:
Example Result

Note on branches of the repository

  1. base_sink_impl: Has all sinks implemented with base_sink template as base class
  2. develop: Contains everything done till now
  3. develop_PR: Redundant now. Contains first and oldest implementation of Time sinks. Structure of timesinks were evolved later on with development of Frequency sink
  4. master: Contains nothing as of now

In initial part of next week, the branch base_sink_impl will be merged with the develop which will be then merged with master branch of repository. Since, most features are now properly structured, master branch will contain the first version of module.


To-Do list for next week:

  1. Merge various branches as mentioned above
  2. Test the widgets and plots and solve bugs with Layouts
  3. Implement Waterfall plot