Software Repository

A git repository will be used to handle the various software and data files needed for the WinterTrain. This will include data specific for each train as well as the data defining each specific project. The below sections will as well define the generic names of the files used.

The source code is released as open source.

The repository can be found at GitHub

Overall structure

The repository will have the folder structure as listed below 1).

  • Train - SW and configuration data related to the trains
    • TrainConf - Specific OBU and DMI hardware configuration per train 2)
      • Circus - Specific train called “Circus”
        • Circus.ino
      • Cargo - Specific train called “Cargo”
        • Cargo.ino
    • OBU - SW for the OBU
      • OBU.ino
      • TrainConf.h Link to specific train configuration
    • DMI - SW for the DMI
      • DMI.ino
      • TrainConf.h Link to specific train configuration
    • PC_DMI - SW for PC based DMI
      • PC_DMI.tcl
  • WaySide - SW and configuration data related to TMS, RBC, Interlocking, etc.
    • SiteData - Specific application data per site 4)
      • CBU - Data for the Winter Train at the Boat Rental
      • Model - Site specific data for an example layout
    • RBCIL - RBC and interlocking
      • RBCIL.php
      • RBCILconf.php - Generic configuration data for RBCIL
    • HMI - User interface (HMI) for the RBC and Interlocking functions
      • HMI.tcl
    • MCe - User interface for maintenance information from the system
      • MCe.tcl
    • EC - Element Controller
      • HW_Conf - specific HW configuration, per EC hardware
        • EC01
          • EC01.ino
        • EC02
          • EC02.ino
      • EC - Generic SW for the element controller
        • EC.ino
    • TMS - Train Management System
      • TMSengine.php
    • Network - 3)
      • Abus - Library for the Abus network protocol
        • AbusMaster
          • AbusMaster.cpp
          • AbusMaster.h
          • keywords.txt
        • AbusSlave
          • AbusSlave.cpp
          • AbusSlave.h
          • keywords.txt
  • DMT - Data Management Tool for handling and generating site specific data
    • scheme - Support tools for handling graphical layout
    • symbols - Symbol library for signalling and screen layout
    • DMT.php - Data generating tool
  • TestTool - Test and analysing tools
    • AnalysePT1.php
    • ECtest.php
  • Web - Web interface for the WinterTrain including Time Tables
    • webConfig.php - Configuration data for the web interface
    • index.html
    • showTimeTable.php

1) Included in the repository is as well a .gitignore file excluding editor backup files and logfiles.

2) The train configuration file included in SiteData is specifying which trains are used for the specific project, while the configuration files in TrainConf are specifying the hardware (e.g. I/O pin number) for each OBU hardware.

3) The Library for the RF12 radio stack is not included in the repository, refer to JeeLib.

4) Site specific data are following a generic structure, see below.

Site specific structure

For each site (i.e. project) specific data will be organized as follows:

  • signallingLayout.sch - Graphical representation of track and signalling layout
  • screenLayout.sch - Graphical representation of screen (HMI) layout
  • TrainData.php - Configuraton of all trains in the specific project 2)
  • PT2.php - Track layout, element configuration etc. in a format ready for the RBCIL
  • TimeTables.php - Time tables
  • Log - Folder for log files etc. (ignored by git)

it/wintertrainv4/implementation/git.txt · Last modified: 2019/12/30 10:36 by jabe