# package.yml - information on FSW packages (and projects)
#
# Format: YAML (YAML Ain't Markup Language; http://www.yaml.org)
#
# Layout:
#
#   Special:
#
#     -
#       title:    x	# title of special "use" tree
#       shade:    x	# which icons (by package name) to shade
#
#   Package:            # info on packages
# 
#     <package>:        # package name, eg 'CBIO'
#       expansion:   x  # expansion of name, eg 'CallBack I/O'
#       overview:    >
#         ... overview text ...
#
#   Project:            # info on projects
#     ... just like package layout ...
#
# Written by Rich Morin, rdm@slac.stanford.edu

#DDF    - patt:     'e_etc/package'
#DDF      desc:     'packages and projects'
#DDF      exts:     'yml'

# Special "use" tree diagrams

  Special:

    -
      title:    'Configuration'
      shade:    'CCSDS CTDB DAB DEM EXPAT FILE LATC LCB          XLX ZLIB'
    -
      title:    'Housekeeping'
      shade:    'CCSDS CTDB DAB DEM                 LCB LHK'
    -
      title:    'Instrument Physics'
      shade:    'CCSDS CTDB               FILE      LCB     LPA'
    -
      title:    'ISIS'
      no_sp:    'EVUT EXPAT LATC LCI LDF LFS LPA LTC XLX'
      shade:    'dummy'
#     shade:    |
#       CCSDS CTDB DAB DEM ELF EXPAT FILE LATC LCB LHK LRA
#       MEM PBC RAD750 SBC SIB XLX ZLIB

# FSW package codes, used in bin/package_y2h

  Package:

    CBIO:
      expansion:   'CallBack I/O'
      overview:    >
        The CBIO package contains routines that are specific 
        to CallBack I/O.

    CCSDS:
      expansion:   'CCSDS packets'
      status:      2
      overview:    >
        The CCSDS package contains routines that are specific
        to CCSDS packets.

    CLI:
      expansion:   'Command Line Interface'
      no_gg:       'is used by many packages.'
      no_sg:       'per JJ'
      status:      2
      overview:    >
        The CLI package is a general purpose tool that allows a developer
        to define and use a command-line interface.
        CLI provides the facilities to define the command line syntax
        and then use that syntax to validate and process commands
        that are typed at the command line.
        CLI is loosely based on the CLI/CLD facilities in VMS.

    CMX:
      expansion:   'CMT (Code Mgmt. Tool), eXtra'
      no_gg:       'is used by all packages.'
      status:      2
      overview:    >
        The CMX package contains routines that are specific
        to CMX (Code Mgmt. Tool, eXtra).

    CTDB:
      expansion:   'Command and Telemetry Data Bus'
      status:      2
      overview:    >
        The CTDB package contains routines that are specific
        to the Command and Telemetry Data Bus.

    CTS:
      expansion:   'Command and Telemetry Service'
      status:      0
      overview:    >
        The CTS package provides the service layer
        between applications (high level tasks)
        and the Command and Telemetry Database (CTDB) hardware driver.
        Written to the communications standard defined in package ITC,
        it allows application layer tasks to communicate across CPUs
        without understanding the hardware transport mechanism.

    CTST:
      doxygen:     'Doxygen not done; inactive code'
      expansion:   "Curt's Test code"
      no_sg:       'per JJ'
      overview:    >
        The CTST package contains Curt's test code.

    DAB:
      expansion:   'Data Acquisition Board'
      overview:    >
        The DAB package contains routines that are specific
        to the Data Acquisition Board.

#   DAQE:
#     expansion:   'DAQ Engine'
#     overview:    >
#       The DAQE () package no longer exists.

    DEM:
      expansion:   'Detector Electronics Module'
      overview:    >
        The DEM package contains routines that are specific
        to the Detector Electronics Module.

    DUTIL:
      expansion:   'Data (Plumbing) Utilities'
      overview:    >
        The DUTIL package contains routines that provide
        a high-level interface to the DAB and DEM packages.

    ELF:
      expansion:   'ELF (binary format) dump library'
      status:      2
      overview:    >
        The ELF package contains routines that are specific
        to the ELF (binary format) dump library.

    EMP:
      expansion:   'Event Monitoring Package'
      overview:    >
        The EMP package currently contains code
        for the ACD software and hardware rate counters.
        However, it will grow as more and more event data is monitored.

    EVUT:
      expansion:   'Event Utility'
      overview:    >
        The EVUT package contains event utility routines.

    EXPAT:
      expansion:   'EXPAT (XML parser)'
      overview:    >
        The EXPAT package contains routines that are specific
        to EXPAT (an XML parser).

    FES:
      expansion:   'LAT front-end simulator'
      overview:    >
        The FES package contains the code
        for running the LAT front-end simulator.

    FILE:
      expansion:   'File System'
      overview:    >
        The FILE package contains routines that are specific
        to the file system.

    FMX:
      expansion:   'File Management, eXtra'
      overview:    >
        The FMX package handles LAT File Management extensions.

    GAEM:
      expansion:   'GLAST/LAT ACD Electronics Module'
      no_sg:       'per JJ'
      overview:    >
        The GAEM package contains routines that are specific
        to the GLAST/LAT ACD Electronics Module.

    GDAB:
      expansion:   'GLAST/LAT (test stand) Data Acquisition Board'
      no_sg:       'per JJ'
      overview:    >
        The GDAB package contains routines that are specific
        to the GLAST/LAT (test stand) Data Acquisition Board.

    GGLT:
      expansion:   'GLAST/LAT (test stand) Global Trigger'
      no_sg:       'per JJ'
      overview:    >
        The GGLT package contains routines that are specific
        to the GLAST/LAT (test stand) Global Trigger.

    GNAT:
      expansion:   'GLAST/LAT Communication I/O Boards'
      no_sg:       'per JJ'
      status:      2
      overview:    >
        The GNAT package contains routines that are specific
        to the GLAST/LAT Communication I/O Boards.

    GRL:
      expansion:   'GNU Readline'
      no_gg:       'is used by many packages.'
      no_sg:       'per JJ'
      status:      2
      overview:    >
        The GRL package contains routines that are specific
        to the GNU Readline library.

#   GTC:
#     expansion:   'GNU Termcap'
#     overview:    >
#       The GTC package no longer exists.

    GTEM:
      expansion:   'GLAST/LAT Tower Electronics Module'
      no_sg:       'per JJ'
      overview:    >
        The GTEM package contains routines that are specific
        to the GLAST/LAT Tower Electronics Module.

    ISIS:
      expansion:   'Instrument to Spacecraft Interface Simulator'
      overview:    >
        The ISIS package contains routines that are specific
        to the Instrument to Spacecraft Interface Simulator.

    ITC:
      expansion:   'Inter-Task Communications'
      no_gg:       'is used by most packages.'
      status:      0
      overview:    >
        The ITC package defines a common communications standard
        to unify communications between tasks
        on either the same or different CPUs.
        It also provides the services to build up tasks
        that are capable
        of communicating according to the standard.

    LATC:
      expansion:   'LAT Configuration'
      overview:    >
        The LATC package contains routines that are specific
        to LAT Configuration.

    LCAT:
      doxygen:     'Doxygen not done for Python'
      expansion:   'LAT Command and Telemetry'
      overview:    >
        The LCAT package contains routines that are specific
        to LCAT, the LAT Command and Telemetry application.

    LCB:
      expansion:   'LAT Communication Board'
      overview:    >
        The LCB package contains routines that are specific
        to the LAT Communication Board.

    LCBD:
      expansion:   'LAT Communication Board Driver'
      overview:    >
        The LCBD package contains the LAT Communication Board driver.

    LCBT:
      expansion:   'LAT Communication Board Test'
      overview:    >
        The LCBT package implements a regressive test environment
        for the LCB LAT communications board.

    LCI:
      expansion:   'LAT Charge Injection (Calibration)'
      status:      0
      overview:    >
        The LCI package provides facilities for subsystems (TKR, CAL, ACD)
        to perform charge injection calibration of their electronics.
        LCI runs within the Instrument Physics task.

    LCM:
      expansion:   'LAT Computer Manager'
      overview:    >
        The LCM package handles the management of a single LAT computer.

    LCP:
      expansion:   'LAT Control Program'
      status:      0
      overview:    >
        The LCP package provides a simple-minded framework
        of LAT-side communications
        that developers can use to build up LAT applications.
        It also serves as a collection point
        to build up the LAT software initialization time-line.

    LCS:
      expansion:   'LCB Service'
      status:      0
      overview:    >
        The LCS package provides the service layer
        between applications (high level tasks) and the LCB hardware driver.
        Written to the communications standard defined in package ITC,
        it allows application layer tasks to communicate across CPUs
        without understanding the hardware transport mechanism.

    LDF:
      expansion:   'LAT Diagnostics Framework'
      status:      0
      overview:    >
        The LDF package is a generalized framework
        in which subsystem diagnostic tests can be implemented.
        LDF runs within the Instrument Physics task.

    LEM:
      expansion:   'LATp Cell Packing/unpacking'
      status:      0
      overview:    >
        The LEM package contains routines for packing and unpacking
        LATp Cells.

    LFS:
      expansion:   'LAT File System'
      status:      0
      overview:    >
        The LFS package provides the "standard" file operations
        (copy, delete, move, list directory, ...),
        plus a few "unusual" operations
        (file upload and file dump via spacecraft).

    LHK:
      expansion:   'LAT Housekeeping'
      status:      0
      overview:    >
        The LHK package provides monitoring facilities
        that are orthogonal and asynchronous to the monitoring
        that is based on the contents of physics events
        being read from the instrument.
        This is much more fundamental monitoring
        (e.g., temperatures, voltages, currents).
        LHK runs its own task.

    LIMP:
      expansion:   'LAT Instrument Manager Placeholder'
      status:      0
      rank:        source
      overview:    >
        The LIMP package is a placeholder
        for the eventual LAT Instrument Manager package.

#   LIOX:
#     expansion:   'ancient cruft'
#     overview:    >
#       The LIOX package has been merged into LCB.

    LMC:
      expansion:   'LAT Multiplexed Counters'
      overview:    >
        The LMC package handles the LAT multiplexed counters.

#   LNI:
#     expansion:   'LAT No Idea'
#     overview:    >
#       The LNI package contains routines that Tony Waite
#       has No Idea how to classify.

    LPA:
      expansion:   'LAT Physics Acquisition'
      status:      0
      overview:    >
        The LPA package is the bread and butter function of the instrument.
        This package provides the ability to set up and run the instrument
        as a true physics device.
        LPA runs within the Instrument Physics task
        (and indeed, gave the task its name).

    LRA:
      expansion:   'LAT Register Access'
      status:      0
      overview:    >
        The LRA package provides the most primitive access
        to all registers that configure and control the instrument.
        LRA runs within the Instrument Physics task.

    LSM:
      expansion:   'LAT Spacecraft Messages'
      status:      0
      overview:    >
        The LSM package processes the seven telecommands per second
        that the spacecraft sends the LAT continuously
        to inform the LAT of things like orbital position, time, etc.
        LSM runs in its own task.

    LSW:
      expansion:   'LAT Software Watchdog'
      status:      0
      overview:    >
        The LSW package checks to see that assorted tasks are "alive".

    LTC:
      expansion:   'LAT Thermal Control'
      status:      0
      overview:    >
        The LTC package provides the LAT thermal control mechanism.
        It reads temperatures from within the instrument,
        and on that basis,
        decides how much heat to dump.
        LTC runs as its own task.

    LTX:
      expansion:   'LAT Test eXecutive'
      overview:    >
        The LTX package contains routines that are specific
        to the LAT Test eXecutive.

    MEM:
      expansion:   'memory dump/load'
      overview:    >
        The MEM package contains routines that are specific
        to the Memory Dump/Load facility.

    MSG:
      expansion:   'systematic error-code generator'
      no_gg:       'is used by many packages.'
      status:      2
      overview:    >
        The MSG package contains routines that implement
        a systematic error-code generator.

    MySQL:
      expansion:   'MySQL database'
      overview:    >
        The MySQL package contains routines that are specific
        to the MySQL database.

    NMSG:
      expansion:   'simple network messaging system'
      overview:    >
        The NMSG package provides a simple network messaging system.

    OCS:
      expansion:   'Online Command Server'
      no_sg:       'per JJ'
      rank:        source
      overview:    >
        The OCS package contains routines that are specific
        to the Online Command Server.

    OES:
      expansion:   'Online Event Server'
      no_sg:       'per JJ'
      rank:        source
      overview:    >
        The OES package is a port of I&T evtSvr to flight software.

    PBC:
      expansion:   'Primary Boot Code'
      overview:    >
        The PBC package contains routines that are specific
        to the Primary Boot Code.

    PBI:
      expansion:   'Processor Basic Includes'
      no_gg:       'is used by most packages.'
      status:      2
      overview:    >
        The PBI package contains Processor Basic Include routines.

    PBS:
      expansion:   'Processor Basic Services'
      no_gg:       'is used by most packages.'
      status:      2
      overview:    >
        The PBS package contains Processor Basic Service routines.

    PBX:
      expansion:   'Primary Boot eXtra'
      status:      0
      overview:    >
        PBX is somewhat of a garbage-can package.
        Most importantly,
        it implements the command to initiate secondary boot
        on flight-prepared RAD750 CPUs.
        Secondarily, it provides communications test commands.
        It serves as a model
        for implementing a more complete application-level task.

    PIG:
      expansion:   'Power-on/Initialize GASU'
      status:      0
      overview:    >
        The PIG package is a utility that powers on and
        initializes the GASU.

    RAD750:
      expansion:   'RAD750 CPU board'
      overview:    >
        The RAD750 package contains routines that are specific
        to the RAD750 CPU board.

    SBC:
      expansion:   'Secondary Boot Code'
      overview:    >
        The SBC package contains routines that are specific
        to the Secondary Boot Code.

    SCP:
      expansion:   'Spacecraft Control Program'
      status:      0
      overview:    >
        The SCP package provides a simple-minded framework
        of spacecraft-side communications
        that developers can use to build up communications tests
        for higher-level LAT applications.

    SIB:
      expansion:   'Spacecraft Interface Board'
      overview:    >
        The SIB package contains routines that are specific
        to the Spacecraft Interface Board.

    SIIS:
      expansion:   'Spacecraft Instrument Interface Simulator'
      overview:    >
        The SIIS package contains routines that are specific
        to the Spacecraft Instrument Interface Simulator.

    SRT:
      expansion:   'Software Release Tools'
      overview:    >
        The SRT package contains tools that are specific
        to the process of performing software releases.

    TCL:
      expansion:   'Tcl (Tool Command Language)'
      overview:    >
        The TCL package contains routines that are specific
        to Tcl (Tool Command Language).

    TPG:
      expansion:   'Trigger Pattern Generator'
      no_sg:       'per JJ'
      overview:    >
        The TPG package contains routines that are specific
        to the Trigger Pattern Generator.

    VBI:
      expansion:   'vXworks Basic Includes'
      status:      2
      overview:    >
        The VBI package contains LAT interfaces
        to the VxWorks Operating System.

    VXW:
      expansion:   'VxWorks Operating System'
      no_gg:       'is used by most packages.'
      status:      2
      overview:    >
        The VXW package contains routines that are specific
        to the VxWorks Operating System.

    VXWPC:
      expansion:   'VxWorks Operating System (PC)'
      no_gg:       'is used by most packages.'
      status:      0
      overview:    >
        The VXW package contains routines that are specific
        to the VxWorks Operating System.

    XLX:
      expansion:   'XML <-> LATC translator'
      overview:    >
        The XLX package contains routines that are specific
        to the XML <-> LATC translator.

    XYP:
      expansion:   'access LAT Xyplex ports'
      overview:    >
        The XYP package contains scripts, code and data
        for accessing the LAT Xyplex ports.

    ZLIB:
      expansion:   'Gzip library, wrapper'
      status:      2
      overview:    >
        The ZLIB package contains wrapper routines
        for the Gzip (GNU zip) library.


# FSW project codes, used in bin/package_y2h

#  Project:
#    DAQ:     'Data Acquisition (flight) software'
#    FES:     'Front-End Simulation software'
#    SYS:     'System software'

  Project:

    APP:
      expansion:   'Applications'
      fillcolor:   yellow1
      overview:    >
        The APP (Applications) project is a collection
        of application-level packages.

    DAQ:
      expansion:   'Data Acquisition Misc.'
      fillcolor:   salmon
      overview:    >
        The DAQ (Data Acquisition Miscellany) project is a catch-all
        for packages not allocated elsewhere.

    DRV:
      expansion:   'Drivers'
      fillcolor:   palegoldenrod
      overview:    >
        The DRV (Drivers) project is a collection of hardware drivers.

    FES:
      expansion:   'Front-end Simulators'
      fillcolor:   orange
      overview:    >
        The FES (Front-end Simulators) project is a collection
        of packages supporting the Front End Simulator.

    ICS:
      expansion:   'Instrument Configuration Services'
      fillcolor:   pink1 
      overview:    >
        The ICS (Instrument Configuration Services) project is a 
        collection of packages supporting instrument configuration.

    OS:
      expansion:   'Operating System'
      fillcolor:   tan
      overview:     >
        The OS (Operating System) project is a collection
        of packages related to the embedded operating system.

    PHY:
      expansion:   'Physics'
      fillcolor:   lavender
      overview:    >
        The PHY (Physics) project is a collection
        of packages providing physics analysis.

    SVC:
      expansion:   'Services'
      fillcolor:   pink1
      overview:    >
        The SVC (Services) project is a collection
        of packages providing services.

    SYS:
      expansion:   'Systemish'
      fillcolor:   yellowgreen
      overview:    >
        The SYS (Systemish) project is a collection
        of host-side support packages.

    TSS:
      expansion:   'Test Stand Support'
      fillcolor:   cyan
      overview:    >
        The TSS (Test Stand Support) project is a collection
        of packages dedicated to supporting test stands.
