HSL2.0 - Project structure
Content
1.
Project directory structure
2.
Example
Directory structure of a project for creating HSL 2.0 logic blocks.
A project can contain any number of module definitions.

## 1.Project directory structure

Note
Only the identifiers enclosed in square brackets '[ ]' are variable! The remaining identifiers are fixed and must not be changed!

`[Projekt-Schlüssel]/ config.xml debug/ [id]_[name].py release/ [id]_[name].hsl src/ [id]_[name].py`

- Project key
  The name is determined by the developer. Container for the project.
  At several places in this documentation this directory is referred to as "project directory".
- config.xml
  The name is fixed. XML definition file of the project. Contains the definitions for all blocks in the project.
- src
  The name is fixed. This folder contains the Python files generated by the HSL 2.0 generator (one per defined device). These are processed by the developer.
- release
  The name is fixed. This folder contains the logic blocks generated by the HSL 2.0 generator (one per defined block). These should no longer be changed by hand.
- debug
  The name is fixed. This folder contains the Python files that have been finally modified by the HSL 2.0 generator (one per defined module). These are injected into the module.
- id
  5-digit ID of the logic module.
- name
  Name of the building block. The name should not contain any umlauts (such as 'ö', 'ä', etc.)

## 2.Example

Directory structure of a workspace for creating HSL 2.0 logic blocks:

`workspace_hsl20_4/ generator.pyc create_project.pyc hsl20/ hsl20_4.py hsl20_4_debug.py .... projects/ my project/ config.xml debug/ 18986_my_module_abc.py 18987_my_module_xyz.py release/ 18986_my_module_abc.hsl 18987_my_module_xyz.hsl src/ 18986_my_module_abc.py 18987_my_module_xyz.py`