Working on BSA I have been through a lot of work to style common controls in WPF and QML to make SDK’s I can use as I generate code. Most of this work was doing the designer part in BSA, but in some cases I also had to create the controls themselves from scratch. Starting on gauges it become more obvious why we have to hand-tailor these controls. Commercial libraries exist, but for WPF it also exist a nice collection of librarary components out with CPOL or MIT licensing. so it’s no reason to pay 1000.- USD for a subscription fee on a library. That said I can’r do the same on QML. But, I have written numerous gauges before and both QML and WPF is easy to work with in this aspect.
This is one example that I found of CodeProject (A WPF Rotary Control – CodeProject) – excellent example for getting ideas and alearning how other have solved issues. I could actually have used some of these, but I am more interesting creating my own gauges from scratch nicking ideas from others. The issue with WPF (and QML) is that you need to be a little bit carefully about how you design things. As I learned with the property editor the GPU will do the work, but loading it to a GPU might surprice you. Another issue is that I am not interested in creating final gauges . I will do that as well – but I am more interested in disecting them and create their components one by one in simple forms so they easily be assembled as a more advanced gauge.
If you look into code you will see that this is more or less how everyone build their gauges layer by layer, so it is not rocket science.
So many parts of BSA have now come together that it’s time to start working on the SDK’s needed to generate code – which will be a bit more visual and fun to blog about. And this work will be done in both WPF and Qt/QML.
- Advanced Real-Time plot
- Circular Gauges
- Linear Gauges
- Fast, Real-Time Table
Those are the four on top of my list.