2021. december 22., szerda

Measurement Control - Direction

Things are changing.

When I restarted my instrument control projects, I had a clear path ahead of me. Then I realized a few things, have to rethink the whole project, my view on it.

I found this project: https://github.com/xyphro/UsbGpib

This is exactly, what I need. I'm 90% sure now, that the firmware I developed for my own board is needless (issues can surface, when I try to adopt it to my hardware and software ecosystem, but it is highly unlikely).

My control software has an additional layer above the VISA. I was thinking to eliminate it, but figured out that I have some instruments on hand what uses HID, or proprietary USB based protocol, what I can't put under the VISA umbrella.

I have a big dilemma regarding the future development. I mean the desktop application of the measurement control.

The situation:

In the software development today is everything about the mobile, web and cloud. It is clear, the word is going to this direction. Even myself as a DevOps professional working on cloud based web projects for several years now.


Always this disturbing "but".

But the instrument control in my hand is a bit different. What I see and feel, the instrument control, visualization applications are mainly not built around web technologies. Those are still desktop apps. I don't want to change this. It is more convenient to use this applications, easier to communicate directly with the hardware, etc.

I started to develop it in C# on .NET Framework with Visual Studio using WinForms. This platform where I have the most experience. If I keep my lazy attitude on it, I can keep it this way and just forget my dilemma. Actually I develop it to myself, so I not really need to care about it.

But something is itching in my mind. The technology above is getting outdated. I also use those projects for learning. So the question is: Which direction?

The other driving factor is Linux. Should I create a multiplatform app? For myself, not necessary. If others want also to use it, that is a requirement.

So the options I see now:

  • Keep this, continue the development and just forget it?
  • Move to the .NET 6, WPF, MVVM to have a never platform? This means no Linux support, the only thing I can hope, that somebody create a usable version of the MAUI on Linux.
  • Move to .NET 6, and use some 3rd party UI (Avalonia or UNO Platform, QT, whatever)?
  • Just forget the complete C# and .NET ecosystem and move somewhere else?
    • Python has PyVISA for instrument control. I not really like Python, and still need to find a UI
    • Java has desktop frameworks, but what to do with the instruments?
    • Node.js has Electron, but the VISA support libraries questionable.
    • Any other direction didn't pop to my mind?

I try to collect (at least partially) the requirements:

  • Native desktop application
  • Hardware communication (Serial, USB-HID, IVI stack like Keysight IO Library Suite, USB-TMC, etc.)
  • GUI elements - Dialogs, Data Grids, Text controls, and most importantly charts
  • Pugin architecture (the pugins for the instruments, communication platforms should be handled separately, need to be expandable)
  • Network handling
  • File system handling

Maybe there are more requirements. These ones I can see now.

So, If you have thoughts on this, please share with me! 

Nincsenek megjegyzések:

Megjegyzés küldése