Wednesday, December 31, 2008

QUARC: Using An External Graphical User Interface (GUI)

Instead of using the opened Simulink diagram in external mode to interact with a QuaRC model, a Simulink-independent Graphical User Interface (GUI) can be used. Such a GUI runs on the QUARC host machine in place of the Simulink diagram.

The QUARC external interfaces (a.k.a. external APIs) are designed to allow the user to communicate with the generated QUARC real-time code and/or access hardware. In particular the QUARC communications API (available as C/C++ or .NET functions) can be used to establish communication channels, using one of the QUARC-supported protocols (e.g., UDP, TCP/IP, shared memory), between a user-written application, such as a front-end GUI, and a Simulink model(s) (i.e., QUARC real-time code).

In addition, QUARC currently supports two GUI-building environments: MATLAB and Altia. Both provide a powerful way to easily and rapidly develop fully-featured GUIs.

As an example, QuaRC already provides a fully-documented demonstration that includes a Simulink model and a MATLAB GUI created using the MATLB GUI Development Environment, i.e. GUIDE. This created GUI can be used to build, start, and stop the model. In addition it can also perform online parameter tuning and data plotting on the model. This is illustrated below where the sidebar is used to increase or decrease the sine wave frequency, which in turn is monitored and where any change can be seen immediately as the plot is updated in real-time. Online parameter tuning has just been carried out without even having to open the Simulink model! Although familiarity with the MATLAB interpretive environment makes this option attractive, GUIs created this way cannot be deployed independently of MATLAB.


Where standalone GUIs should be deployed on the end-user's system completely independent of MATLAB and Simulink, QUARC provides a flexible interface to Altia, as MATLAB and Simulink are not required when using Altia GUIs. Altia Design is a very powerful tool for creating professional-quality standalone GUIs for industrial applications. Just like the MATLAB GUIs, an Altia-created GUI allows the user to control, change parameters on-the-fly, and monitor signals in a QUARC real-time model. Moreover, the QUARC Plot library for Altia significantly augments the basic plotting components supplied with Altia, by providing scopes that can plot signals versus time. QUARC, of course, fully documents the process of creating and interacting with an Altia GUI, as well as specialized features such as starting and stopping (i.e., controlling) the real-time model, right from the graphical user interface itself! Industrial-application requirements can further be satisfied when this is also combined with QUARC's ability to generate production-optimized code and configurating it to run at boot on any of its supported targets (e.g., Windows, QNX x86, gumstix Verdex).

No comments: