Overview

The application named “CAN Reader” was created in Python 3.x using Qt framework.
The PyQt5 module was used as an API between Qt and Python.
A block representation of the system function is shown below.
Arrows leading from one block to another indicate direct interaction of these blocks.
While the arrows leading from the block to the edge of the area marked with a dashed line indicates call of the given subroutine.

It is a multi-threaded program that contains 2 permanent threads “Main” and “GUI”.
The “Communication” and “Data processing” threads are created situationally on the basis of an action derived by the user and subsequently by receiving data from the formula.
Functionality Overview

Application is separated into 4 parts:
  1. Main program ensures communication between the individual subroutines, and is also responsible for logging of incoming data.

  2. GUI subroutine is in charge of the user interface. That is, displaying the basic GUI, dealing with user requirements and update display based on provided data.

  3. Communication subroutine ensures communication with the formula based on the user-specified criteria.

  4. Data processing provides filtering, processing and sorting of incoming data.

GUI Overview

CAN Reader Overview

The application consists following 11 parts:
  1. Dashboard.

  2. Graph tab.

  3. Error tab.

  4. CAN messages settings.

  5. Choice of communication type.

  6. Communication settings.

  7. Establishing / interrupting communication.

  8. Display the current connection status.

  9. Display of the last received CAN message.

  10. Possibilities of working with files.

  11. Display of documentation or “about application” window.