Table of Contents
11 Project Structure
This page defines the default project structure used by most of our projects. We have also information on our default repo structure and our overall software structure. Screenshots are included from an example repository for demonstrative purposes.
Throughout this page, we will use TEMPLATE
as a placeholder for the actual project's name.
Basic Structure
/TEMPLATE/ built LabVIEW application (.exe) /TEMPLATE_Config/ all configuration data /TEMPLATE_Data/ output data (eg measurement) /TEMPLATE_Source/ LabVIEW source code (files)
For libraries and other non-application code, instead of the four folders shown above, there will only be a single directory named /Source/
.
'Config' directory
/TEMPLATE_Config/ /Common common config files /Unit_xyz one set of configuration data /Unit_abc another set of configuration data config.ini defines which unit directory to use (not under SCC) config.ini.default default file (checked into SCC)
Contains all configuration data that's needed by the application.
'Data' directory
/TEMPLATE_Data/ template-application.log
Contains the application's log file. Serves as a container for all sorts of files created by the application, like measurements, reports, etc.
'Source' directory
/TEMPLATE_Source/ /_Examples /_VI Templates /Libraries/ /Modules/ /Project/ TEMPLATE.lvproj TEMPLATE_Main.vi Main VI for Real-Time applications startup.vi Main VI for Windows applications
Contains the following directories and files:
'_Examples' directory
/TEMPLATE_Source/ /_Examples Some Example.vi Another Example.vi
The _Examples
directory is optional and contains example VIs. If the repo or project is built into a VI package, these example VIs are installed into the <LabVIEW>\Examples\
directory, which allows access via the NI Example finder (“Help → Find Examples…” menu item in the LabVIEW IDE).
'_VI Templates' directory
/TEMPLATE_Source/ /_VI Templates <%Project Part1%> Quickstart.vi <%Project Part2%> Quickstart.vi Another Template.vi
The _VI Templates
directory is optional for projects which contain code that is built into a VI package. The template VIs will be placed on the palette and configured to “place VI contents”, making it easier to fill a blank VI with the required source code.
Quickstart VIs are a special variant of template VIs meant to kick-start the development of new code by providing the block diagram for a simple use case of the library in question.
'Framework' directory (deprecated)
/TEMPLATE_Source/ /Framework/
Starting from HSE Application Template v3.0.0 the 'Framework' directory does not exist anymore within the application template.
Generic framework modules are now part of HSE Core - Framework repository and are installed into vi.lib
.
'Libraries' directory (optional)
/TEMPLATE_Source/ /Libraries/
Contains generic reuse libraries that are neither DQMH modules nor project-specific code. The content of this directory varies from project to project.
Starting from HSE Application Template v3.0.0 the 'Libraries' directory does not contain our HSE-Libraries anymore as they are now installed into vi.lib
.
'Modules' directory
/TEMPLATE_Source/ /Modules/ /ActorModule/ /DBModule/ /Dummy/ /ExampleClone/ /StateMachine/
Contains DQMH modules utilised by the project.
More information on DQMH can be found in our knowledge base:
Delacor Queued Message Handler
'Project' directory
/TEMPLATE_Source/ /Project/ /Project.lvlib /PROJECT_ApplicationVersion--constant.vi /PROJECT_InitLogging.vi /PROJECT_Layout-VI.vi /PROJECT_Name--constant.vi /PROJECT_RunTimeMenu.rtm /PROJECT_SplashScreen.vi /PROJECT_StartupSteps.ctl /PROJECT_UserCredentials.vi
Contains all project-specific files that are not part of a DQMH module or a generic reuse library. The content of this directory varies from project to project.
'TEMPLATE.lvproj'
LabVIEW project file, containing the VIs in XML format.
Main VI
Either startup.vi
(Windows applications) or TEMPLATE_Main.vi
(Real-Time applications).
Actual Source Code
The source code for the project shown can be found at
https://code.hampel-soft.com/open-source/dqmh/hse-application-template