====== 11 Project Structure ======
This page defines the default project structure used by most of our projects. We have also information on our [[code:common:repository-structure|default repo structure]] and our [[kb:bestpractices:wow:structure|overall software structure]]. Screenshots are included from an example repository for demonstrative purposes.
| {{:code:common:hse-project-structure.png?600|}} |
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/
/Framework/
/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:
==== 'Framework' directory ====
/TEMPLATE_Source/
/Framework/
/Event Manager/
/Sidebar/
/UI Manager/
For Windows Applications: Contains generic, as-is reusable modules. Currently, we use the following modules:
* Event Manager
* Sidebar
* UI Manager
More information on framework modules: [[code:dqmh:hse-application-template:overview|Application Template]]
==== 'Libraries' directory ====
/TEMPLATE_Source/
/Libraries/
/hse-core-libs/
/hse-layout-manager/
/hse-logger/
/hse-networking/
Contains libraries shared by projects.
More information on our libraries: [[code:open-source:hse-libraries|HSE-Libraries]]
==== 'Modules' directory ====
/TEMPLATE_Source/
/Modules/
/ActorModule/
/Dummy/
/Dummy2/
/User Interface/
Contains DQMH modules utilised by the project.
More information on DQMH can be found in our knowledge base: \\
[[kb:labview-frameworks:dqmh|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 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