Following are the updates of the week:

Current Status

Integrating base sink to other sinks

The SWIG error for Complex Time Sink is now resolved. Initially, the get_plot_data function signature (gr_complex**, int*, int*) couldn’t work because SWIG couldn’t identify Numpy definition of the same. Hence, to avoid the issue, I changed the signature to (float**, int*, int*) which can be identified by Numpy SWIG. Corresponding Python part of code is also updated. This code is in base_sink_impl branch which will be soon merged into develop branch.

Adding widgets:

I implemented textbox widgets in last week. But because of incorrect procedure of initialisation of bokeh server, the callback was not working. After discussion on Bokeh forum, I updated the initialization procedure of bokeh server which is now updated in main() function of all examples. I have also updated the function in core flowgraph generator template in bokeh_in_gnuradio branch of my GNURadio fork.

The updated main function creates a subprocess that initiates the server, work on Document and Session instance, and terminate the server process when simulation is over.

In addition to Textbox, the Label and Slider was also implemented. The implementation of Range sliders and thorough testing of widgets will be done in this weekend.

Regarding a demo video:

Since, layout is important for widgets placements, I will add a full demo video next week. It will include setting up the layout, widgets and plots using GRC.

Discussion on Layout

I am planning to implement the Layout using the function mentioned here. I will create a wrapper function for the same.

On GRC side, user will have to choose in each plot options inside Config tab to select the row of the plot, and the placement of the plot in a row. All widgets will be combined in the widgetbox. In order to override default Layout which is basically vertical placement of all plots and widgetbox, user will have to set manual layout option inside Generate Options block and also import a block called Bokeh GUI Layout where the total width, height, placement options for Widgetbox, and other various parameters will be defined by the user. Example video will be added in the blog post next week.

To-Do list for next week:

  1. Implement the Layout
  2. Test the widgets and plots