Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

The ACS directory structure is very straightforward, but it may not be very intuitive to newcomers. There are a couple of concepts that we need to consider:

  • MODROOT_WS and MODROOT_LCU, MODROOT_WS_LCU
  • ACSROOT
  • ACSDATA
  • INTROOT and INTLIST
  • ACSROOT
  • ACSDATA

MODROOT

All three variants of MODROOT represent a very similar scenario. They create a module directory, either for WorkStation (MODROOT_WS), for Local Control Unit (LCU) (MODROOT_LCU) or for both (MODROOT_WS_LCU). Executing each bears a similar structure:

...

  • bin: Here we place the scripts and binaries that get executed. This could be added to PATH environment variable
  • Changelog: A file that could be used to register changes of the module. We make use of JIRA and "git log" for this, but this could be used as an additional place for this information.
  • config: Directory for configurations.
    • config/CDB: Directory for module's CDB configurations. Could be used with ACS_CDB environment variable to configure a CDB for testing the module
      • config/CDB/schemas: The XML Schema (XSD) files are placed in this directory
  • doc: Directory to place documentation
  • idl: Directory for IDL (.idl, .midl) files, XML error definitions, XML Schema binding file, etc.
  • include: Directory for C++ headers, inline and template files
  • lib: Directory for C++ libraries and Java JAR files. Could be used in LD_LIBRARY_PATH (C++ libraries) and in CLASSPATH (Jar files) to make use of the module's libraries and jar files
    • lib/ACSComponents: Directory for Java JAR files associated with components
    • lib/endorsed: Directory for endorsed JAR files (No longer relevant since Java 11 disabled the use  of endorsed JARs)
    • lib/python: Directory for Python code
      • lib/python/site-packages: Python site-packages are placed here. Could be used with PYTHONPATH environment variable to make use of the Python code and cached code (.pyc)
  • LOGS: Directory where logs can be placed
  • man: Man documentation in Unix/Linux style could be placed here. See more at https://linux.die.net/man/ page.
    • man/man<n>: Look at the link above
    • man/manl: Look at the link above
    • man/mann: Look at the link above
  • object: Directory for temporary files such as C++ compiled objects, code-generated source files, etc.
  • rtai: Directory for Real Time Application Interface (RTAI) and other compiled kernel modules to be installed
  • src: Directory for source files
    • src/Makefile: The main file to define the targets to be compiled, installed and deployed by the moduled
  • test: Directory that contains all the necessary files for testing. Source code, Makefile, TAT configuration files, reference files, etc.

ACSROOT


ACSDATA

Code Block
languagebash
getTemplateForDirectory ACSDATA acs.data
Code Block
collapsetrue
acs almamgr:~ 30451 > tree acs.data
acs.data
├── config
├── dumps
├── ENVIRONMENTS
├── logs
└── tmp

5 directories, 0 files

Files and Directory Description

  • config: Configuration files, including CDB, schemas and other files
  • dumps: Core dumps, heap dumps, etc. can be plaed in this directory
  • ENVIRONMENTS: 
  • logs: Runtime logs can be placed in this directory
  • tmp: Runtime temporary data is placed here

INTROOT/INTLIST