Following are the updates of the week:
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.
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
The following widgets are completed and ready to use:
- Label (basically Textbox without a callback on change)
- Range Slider
- Checkbox / Checkbox Button Group – During weekend
- Select / Radio Group / Radio Buttons – During weekend
The final GRC file from video is available at
The final output is also shown below:
Note on branches of the repository
base_sink_impl: Has all sinks implemented with
base_sinktemplate as base class
develop: Contains everything done till now
develop_PR: Redundant now. Contains first and oldest implementation of Time sinks. Structure of timesinks were evolved later on with development of Frequency sink
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:
- Merge various branches as mentioned above
- Test the widgets and plots and solve bugs with Layouts
- Implement Waterfall plot