User Tools

Site Tools


code:dqmh:hse-application-template:overview

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
code:dqmh:hse-application-template:overview [2019/07/18 10:34] joerg.hampelcode:dqmh:hse-application-template:overview [2024/07/17 10:31] (current) – ↷ Links adapted because of a move operation manuel.sebald
Line 1: Line 1:
-====== 10 Overview ======+====== 01 Overview ======
  
-This application template serves as the basis for HSE Windows LabVIEW applications. The template helps us with+This application template showcases our //UI framework// for applications with graphical user interfacesWe use this template as a container which **loads the project-specific DQMH modules dynamically** from a configuration file.
  
-  * loading DQMH modules dynamically (from a list of names) +{{:code:dqmh:hse-application-template:pasted:20210305-110517.png}} 
-  * a fancy splash screen +===== UI Framework =====
-  * a reusable User Interface module +
-  * dynamically populated Runtime Menu +
-  * an event log+
  
 +The //UI framework// helps us with:
  
-===== DQMH Load Helper VIs =====+  * reusing UI management code 
 +  * project-specific UI layouts 
 +  * displaying a fancy splash screen 
 +  * populating the Runtime Menu dynamically  
 +  * populating a navigation module dynamically  
 +  * generating an event log for debugging
  
-==== Load Module.vi ====+...and much more!
  
-  * combines ''Start Module.vi'' and ''Synchronize Module Events.vi'' +The //UI framework// is built on top of the [[code:open-source:hse-libraries|HSE Libraries]] and consists of a collection of DQMH modules and a few helper VIs.
-  * this wrapper allows use of ''call by reference'' for list of different types of modules because it uses the same connector panel (only error lines as input/output)+
  
-{{ :kb:labview-frameworks:dqmh:ci-tester-load-module.png?nolink |}}+==== Framework Modules ====
  
-==== Obtain Default Broadcast Events.vi ====+These DQMH modules are designed to be reused, hence they are generic and not part of the project-specific code of an application:
  
-  * encapsulates ''Obtain Broadcast Events for Registration.vi''  +  * [[code:open-source:hse-framework:event-manager|Event Manager]] 
-    * any DQMH module can be queried for it's default broadcast events +  * [[code:open-source:hse-framework:ui-manager|UI Manager]] 
-  * returns only the four default Event references each DQMH comes with+  [[code:open-source:hse-framework:navigation|Navigation]]
-    Status updated +
-    * Error reported +
-    * Module Did Stop +
-    * Update Module Execution Status+
  
-{{ :kb:labview-frameworks:dqmh:ci-tester_obtain_default_broadcast_events.png?nolink |}} 
  
-===== Startup VI =====+==== Framework VIs ====
  
-  * Loads a list of modules +In order to dynamically load DQMH modules and to achieve some of the //UI framework// functionality, the following VIs are part of the framework, too:
-    * defined on block diagram +
- * no static linkage +
-  * configures the ''User Interface.vi'' module +
- * show dynamically loaded modules in Run-Time Menu +
- * register for broadcast events of dynamically loaded modules +
-  * displays the front panel of the ''User Interface.vi'' module as primary application GUI+
  
 +=== Startup VI ===
  
-===== UI Display Management =====+The ''/startup.vi'' is used to run the application. It...
  
-The ''UI Manager'' module is started when the application launches. It shows +  * shows a splash screen 
 +  * reads the main configuration (containing the list of modules to load) 
 +  * loads the UI Manager and the Event Manager modules 
 +  * loads a list of project modules (no static linkage) 
 +  * calls the "configure" requests of all the modules 
 +  * displays the front panel of the ''UI Manager'' module 
  
-  * a title bar showing a headline and a logo +=== Project VIs ===
-  * a main area, divided in +
-    * a small navigation area on the left hand side and  +
-    * the main area for showing the actual contents (modules) +
-  * and a footer (a status bar).+
  
-==== Sidebar ==== +These are project-related or project-specific VIs that are supplied by the //UI Framework// but can or have to be modified for each project.
- +
-The left side of the main area holds a subpanel for the ''Sidebar'' module (navigation).  +
- +
-==== Navigation ==== +
- +
-  * UI Manager has request ''Display another Module UI'' +
-    * Can be called as request or via Run-Time Menu +
-    * This request just asks another module to display its UI +
-      * via the ''Request UI Display'' +
- +
-  * Every module (that has a UI) implements the ''Request UI Display'' request wreply +
-    * Parameters:  +
-      * enum ''Display Scenario'' (managed, stand-alone) +
-    * Reply Parameters: +
-      * bool ''Accept?'' +
-    * See example below: +
-{{ code:dqmh:request-ui-display-template.png?nolink |}} +
-  * Every module implements the ''System Message'' broadcast event +
-    * Parameters:  +
-      * string ''Identifier'' +
-      * variant ''Payload'' +
-      * enum ''Source Type'' (module, application, network) +
-      * string ''Source Name'' (needed for cloneables to identify the clone instance)+
  
 +  * ''/Project/Project.lvlib'': Contains the project-specific VIs
 +  * ''/Project/PROJECT_InitLogging.vi'': Starts the hse-logger
 +  * ''/Project/PROJECT_Name--constant.vi'': Name of the project
 +  * ''/Project/PROJECT_RunTimeMenu.rtm'': Run-Time Menu for the application
 +  * ''/Project/PROJECT_SplashScreen.vi'': Splash Screen
 +  * ''/Project/PROJECT_StartupSteps.ctl'': List of steps for the startup.vi to execute
 +  * ''/Project/PROJECT_UserCredentials.vi'': List of users for the built-in login feature
  
 +===== Project-Specific DQMH Modules =====
  
 +In order for DQMH modules to be compatible with our application template, these modules need to implement our [[kb:labview-frameworks:dqmh:hse-flavour|HSE DQMH flavour]]. 
code/dqmh/hse-application-template/overview.1563446099.txt.gz · Last modified: 2019/07/18 10:34 by joerg.hampel