This application is done manually, but I will re-generate it from BSA later. The picture shown is a classic demo application for a 9 – Valve ValvePack. You control 27 PWM signals and 13 analogue signals in this example with 9 proportional 3-Way Valves. These are quite common in subsea systems used in the oil & gas industry and is basically a small SCADA system. I used ca 700 hours making this in Qt/QML and less than 100 hours to re-make it in C#. Once I can generate it from BSA we probably talk about 2-3 hours of work in comparison.
The demo above lack the required Modbus protocol that probably is another 100 hours since I have made it from scratch – I decided to make my own because I wanted a full protocol created in a specific way to support BSA. I have made the protocol, but need to integrate and test it before this package is operational. Modbus also need to exist as both client and server in both C++ and C# supporting ModbusRTU, ModbusTCP and Modbus over TCP with variants.
I need to point out that the comparison 700 versus 100 hours are not exact or 100% fare, but it is an indication of the difference between using Qt/QML versus C#/WPF. To re-do this from BSA will drive development a bit – so far it has forced me to add a lot of controls I will be integrating into BSA.
The actual BSA application will contain the bulding block – gauges, while the Valve Control is a control we make in BSA and re-use. Doing this is WPF is a bit more work than doing the same in Forms and BSA will be closer to Forms. But, more important is the logic behinc the controls that will be visual diagrams and part of the re-used controls as well. Working with HMI it is easy to forget the invisible magic behind the GUI that account for a lot of hours.
On C#/WPF most of the hours was on creating basic controls. That hours was probably the double in QML – QML is a bit more slow to work with since you lack a functional visual designer. But, it is the integration to the backend that made the huge difference in this case. In C# you deal with C# all the way. In Qt/QML you deal with 4 different languages that interract.
In BSA however you just draft a design consisting of design diagrams and press a button to run the system. It should be very easy and very fast, but I am not there yet…