BSA – Top-Level Architecture

This illustrate the 4 main components inside BSA. You obviously have the UI part that visualize things on the screen. This is the main and largest part, but you also have Repository, Code generator and Debugger integration that needs to be in place.

One of the reason’s I wanted to try WPF is the Repository/UI integration. In WPF I can just use standard C#, but in QML I had to use C++ and a complex binding to QML/JavaScript that basically took a lot of development time.

Debugger means that once you have generated the code and build/deployed the executable you can run it and step though logic and set breakpoints etc from BSA itself. BSA will actually be the tool you develop in unless you need to get your hands dirty with smart source code modules.

Repository is basically the project database either in JSON or XML format – I like JSON, but I need to test text etc in JSON. XML might be a safer choise as storage format. The objective of using XML/JSON is that this is basically your source code and as a last resource we need to be able to manually fix this. The UML model inside the repository will be complex as this is a complex tool to make, but I won’t dig to much into those details.

The code generator might be a command line tool that read the repository and generate code.

One part of PLAIN was that we made distributed systems rather than devices, so the code here might be several executables. For now I will repeat the session on focusing on Forms and HMI, but I will return to the more complex parts of BSA later.

Categories: HMI

Leave a Reply