Homepage GitHub

GUI Tool Plotter issues

UAVCAN GUI Tool is a GREAT utility to listen to UAVCAN signals and analyze and debug ESC problems. I notice some problems on a daily basis and would like to highlight them:

GUI Tool version: v0.9.1
Ubuntu 16.04 LTS.
PyUAVCAN version: v1.0.0.dev30
GUI is listening to a Zubax Robotics Babel, USB-CAN adapter (CAN baud rate = 125000)

  1. In GUI Plotter, when the Export function -> CSV from plot data is chosen, the exported CSV’s first row (i.e. header) does not have the names of the signals logged in the plot. For example: If I logged three CAN signals, then the exported CSV has 4 columns “0x, 0y, 0y, 0y”. 0x is the time column. If headers are automatically filled in with signal names, it helps me read the csv in scripts without having to open it and rename the header.

  2. Closely related to issue # 1. Every time I export to CSV, the signal columns keep circulating. Lets go with the same example of 3 signals. Sig1, Sig2, and Sig3 added in that exact order using the “Add new value extractor button”. After exporting the plot to CSV, I would expect the four columns to be time, Sig1, Sig2, Sig3. However if I Stop the plot and Unstop the plot a few times, and do an Extract -> CSV each time, the columns will be like time, Sig3, Sig1, Sig2… next it would be time, Sig2, Sig3, Sig1… clearly there is some kind of a circular buffer or pointer issue going on here…The only reason I know the columns are swapping around is because I know the general appearance and range of each signal.

  3. If the plotter log is a long duration … say 10 minutes and then exported to CSV, some signals could be shifted in time. i.e. Sig1 and Sig2 might have a rising edge within 10ms of each other, but the log might say they had a 2 second difference between them. It is unclear what signal will get time shifted. Even doing a plot reset between every export does not remedy this problem.

Thanks, @sbdrn18.

We are about to start working on a new GUI tool for UAVCAN v1.0, which is going to be a completely different codebase with a web GUI (working in a web browser, local or remotely). The current GUI tool will be maintained minimally until UAVCAN v0 (the current spec draft edition) is phased out, upon which time the support for the current GUI tool will be discontinued. The main reason for this drastic switch is due to legal restrictions introduced by the PyQt library: it contaminates the application itself with GPL.

The problems you’ve described, however, are not directly related to the GUI tool codebase, because these functions are implemented in the pyqtgraph library, which is still maintained but not very actively: https://github.com/pyqtgraph/pyqtgraph. May I ask you to please report these findings in their bug tracker?


@sbdrn18 I’ve been told that you might be interested in posting job ads related to the GUI tool. If that is the case, feel free to do that here: https://forum.uavcan.org/c/general/jobs