Web or Desktop Application
Should your application be a web based solution or a desktop application?
So you have a data interface up and going to your embedded and system and now it is time to build a front-end, what do we use? That all depends on what you are going to do with your system and how you would like to monitor it.
One of the biggest things to consider is likely: What do you consider real-time data? If you need to see the lots of data on the screen update as soon as it changes in the system, a web based UI might not be the best way to go. If you don’t care about instantaneous data and are looking to do a bunch of historical data analytics and parsing through a user friendly interface, there may already be some tools out there to do the job for you. If you need something else, it can be a little blurry on what is best.
If you really need to plot things very quickly and ‘live’ then Qt may be the right tool to use. There are plenty of libraries out there that can give you a very responsive interface and plotting with minimal amount of hassle. There are even quite a few Python plotting libraries that are more than capable as well.
If you are looking to handle large amounts of data from multiple sources a web based approach may be a good route to go, even if you don’t plan on doing an ‘Internet of Things’ type of setup or storing your data in the cloud. Just having a local server setup that can crunch and store data into a database to be streamed, logged, and analyzed as needed can be very useful.
Deploying your application to the customer can get interesting depending on the route you take. The PC application is much more traditional and easier to package, but more and more companies have been going to the cloud with a hosted solution and this can certainly work with the right system in place. But if you just need to get an application to your customer and don’t want to worry about the overhead of managing users and servers, maybe just a PC app is the way to go. There are also ways of distributing hosted solutions that could be feasible, but you don’t see too many out there. Example would be running the server and/or back-end on the customer’s PC essentially decoupling the UI form the processing, this could be useful for other reasons as well.