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:36] 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:
  
 +  * 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
  
-===== Startup VI =====+...and much more!
  
-  * Loads a list of modules +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.
-    * 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+
  
 +==== Framework Modules ====
  
-===== UI Display Management =====+These DQMH modules are designed to be reused, hence they are generic and not part of the project-specific code of an application:
  
-The ''UI Manager'' module is started when the application launches. It shows +  * [[code:open-source:hse-framework:event-manager|Event Manager]] 
 +  * [[code:open-source:hse-framework:ui-manager|UI Manager]] 
 +  * [[code:open-source:hse-framework:navigation|Navigation]]
  
-  * a title bar showing a headline and a logo 
-  * 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 ====+==== Framework VIs ====
  
-The left side of the main area holds a subpanel for the ''Sidebar'' module (navigation). +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:
  
-==== Navigation ====+=== Startup VI ===
  
-  * UI Manager has request ''Display another Module UI'' +The ''/startup.vi'' is used to run the application. It...
-    * 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 UI) implements the ''Request UI Display'' request w/ reply +  * shows splash screen 
-    Parameters:  +  reads the main configuration (containing the list of modules to load
-      * enum ''Display Scenario'' (managed, stand-alone+  loads the UI Manager and the Event Manager modules 
-    Reply Parameters: +  loads a list of project modules (no static linkage) 
-      bool ''Accept?'' +  calls the "configure" requests of all the modules 
-    See example below: +  * displays the front panel of the ''UI Manager'' module 
-{{ 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 VIs ===
  
 +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.
  
 +  * ''/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.1563446162.txt.gz · Last modified: 2019/07/18 10:36 by joerg.hampel