User Tools

Site Tools


code:common:project-structure

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

code/common/project-structure.txt · Last modified: 2025/01/23 10:50 by joerg.hampel