Skip to content

Project Files

Mikayla edited this page Dec 19, 2025 · 26 revisions

Project Directory Layout and File Overviews

Last Updated for v1.10.3-beta

cc-mek-scada/                           = ComputerCraft Mekanism SCADA system
├── coordinator/                        = Coordinator application
│   ├── config/                         = Coordinator configurator sections
│   │   ├── facility.lua                - facility configuration management
│   │   ├── hmi.lua                     - HMI (human machine interface) configuration management
│   │   └── system.lua                  - system configuration management
│   ├── session/                        = Coordinator device sessions
│   │   ├── apisessions.lua             - session manager for API
│   │   └── pocket.lua                  - Pocket API session
│   ├── ui/                             = Coordinator UI definitions
│   │   ├── components/                 = Coordinator UI componenets
│   │   │   ├── boiler.lua              - boiler display for overview
│   │   │   ├── imatrix.lua             - induction matrix display on main screen
│   │   │   ├── pkt_entry.lua           - pocket computer entry on front panel connections list
│   │   │   ├── process_ctl.lua         - process control interface on main screen
│   │   │   ├── reactor.lua             - reactor display for overview
│   │   │   ├── turbine.lua             - turbine display for overview
│   │   │   ├── unit_detail.lua         - unit detail display on unit monitors
│   │   │   ├── unit_flow.lua           - unit display on flow monitor
│   │   │   └── unit_overview.lua       - unit overview on primary monitor
│   │   ├── layout/                     = monitor UI layout files
│   │   │   ├── flow_view.lua           - flow monitor display
│   │   │   ├── front_panel.lua         - Coordinator front panel UI
│   │   │   ├── main_view.lua           - main screen on primary monitor
│   │   │   └── unit_view.lua           - unit screens on unit monitors
│   │   ├── pgi.lua                     - protected graphics interface for managing list elements
│   │   └── style.lua                   - styling constants for Coordinator UI
│   ├── configure.lua                   - Coordinator configurator tool
│   ├── coordinator.lua                 - Coordinator core functions: comms, monitor configuration, dmesg helpers
│   ├── iocontrol.lua                   - I/O data and PSIL for unit & facility statuses and build
│   ├── process.lua                     - process control functions and settings access
│   ├── renderer.lua                    - GUI renderer control
│   ├── sounder.lua                     - speaker sounder tone generation and control
│   ├── startup.lua                     - Coordinator application startup
│   └── threads.lua                     - Coordinator threads, application core
├── graphics/                           = graphics library
│   ├── elements/                       = all graphics elements
│   │   ├── animations/                 = animated elements
│   │   │   └── Waiting.lua             - loading spinning animation
│   │   ├── controls/                   = control elements
│   │   │   ├── App.lua                 - app icon button
│   │   │   ├── Checkbox.lua            - basic checkbox/selectbox
│   │   │   ├── HazardButton.lua        - button with hazard pattern around it
│   │   │   ├── MultiButton.lua         - multi-choice button
│   │   │   ├── NumericSpinbox.lua      - fixed-point number spinbox input
│   │   │   ├── PushButton.lua          - push button, single press then releases
│   │   │   ├── Radio2D.lua             - multi-choice matrix layout radio button
│   │   │   ├── RadioButton.lua         - multi-choice vertical layout radio button
│   │   │   ├── Sidebar.lua             - sidebar vertical tab selector
│   │   │   ├── SwitchButton.lua        - switch button, single press toggles state
│   │   │   └── TabBar.lua              - horizontal tab selector
│   │   ├── form/                       = user input form fields
│   │   │   ├── NumberField.lua         - numeric form field input
│   │   │   └── TextField.lua           - text form field input
│   │   ├── indicators/                 = indicator elements
│   │   │   ├── AlarmLight.lua          - alarm light indicator (quad-state)
│   │   │   ├── CoreMap.lua             - reactor core map
│   │   │   ├── DataIndicator.lua       - numerical data indicator w/ labels & units
│   │   │   ├── HorizontalBar.lua       - horizontal percentage bar
│   │   │   ├── IconIndicator.lua       - single character indicator w/ color
│   │   │   ├── IndicatorLight.lua      - square light indicator (on/off)
│   │   │   ├── LED.lua                 - tiny rectangle 'LED' indicator (on/off)
│   │   │   ├── LEDPair.lua             - tiny rectangle 'LED' indicator (tri-state)
│   │   │   ├── PowerIndicator.lua      - numerical indicator for power (auto-scaled units)
│   │   │   ├── RGBLED.lua              - tiny rectangle 'LED' indicator (n-state)
│   │   │   ├── RadIndicator.lua        - numerical indicator for radiation (auto-scaled units)
│   │   │   ├── SignalBar.lua           - network signal bar indicator
│   │   │   ├── StateIndicator.lua      - text + color state indicator
│   │   │   ├── TriIndicatorLight.lua   - square light indicator (tri-state)
│   │   │   └── VerticalBar.lua         - vertical percentage bar
│   │   ├── AppMultiPane.lua            - multi-pane designed as an app home page
│   │   ├── ColorMap.lua                - color map (for testing, shows all colors in a row)
│   │   ├── DisplayBox.lua              - container element used as the root of the element tree, uses a window object as parent
│   │   ├── Div.lua                     - container element, uses a normal element as its parent
│   │   ├── ListBox.lua                 - scrolling listbox
│   │   ├── MultiPane.lua               - multi-pane, to be used with a tab control to show multiple views in the same place
│   │   ├── PipeNetwork.lua             - pipe network, used on main screen (as an example)
│   │   ├── Rectangle.lua               - container element with an optional boarder, uses a normal element as its parent
│   │   ├── TextBox.lua                 - text box, supports text alignment and wrapping
│   │   └── Tiling.lua                  - alternating tiling pattern element
│   ├── core.lua                        - core graphics utilities
│   ├── element.lua                     - base 'class' of all graphics elements
│   ├── events.lua                      - mouse/keyboard event handling
│   ├── flasher.lua                     - handler for flashing indicators
│   └── themes.lua                      - color theme management/definitions
├── lockbox/                            = select lua-lockbox files
├── pocket/                             = Pocket computer application
│   ├── config/                         = Pocket configurator sections
│   │   └── system.lua                  - system configuration management
│   ├── ui/                             = Pocket UI definitions
│   │   ├── apps/                       = Pocket 'applications'
│   │   │   ├── about.lua               - system about app
│   │   │   ├── alarm.lua               - alarm viewing and testing app
│   │   │   ├── comps.lua               - computer info app
│   │   │   ├── control.lua             - facility control app
│   │   │   ├── facility.lua            - facility management app
│   │   │   ├── guide.lua               - system guide app
│   │   │   ├── loader.lua              - app loader pseudo-app
│   │   │   ├── process.lua             - process management app
│   │   │   ├── radiation.lua           - radiation monitor app
│   │   │   ├── unit.lua                - unit management app
│   │   │   └── waste.lua               - waste management app
│   │   ├── components/                 = Pocket UI componenets
│   │   │   └── conn_waiting.lua        - connection waiting spinners
│   │   ├── pages/                      = Pocket tabbed pages and other objects
│   │   │   ├── dynamic_tank.lua        - dynamic tank page
│   │   │   ├── facility_matrix.lua     - induction matrix page
│   │   │   ├── facility_sps.lua        - sps page
│   │   │   ├── guide_section.lua       - documentation guide section
│   │   │   ├── home_page.lua           - home tab page
│   │   │   ├── unit_boiler.lua         - boiler tab page
│   │   │   ├── unit_reactor.lua        - reactor tab page
│   │   │   └── unit_turbine.lua        - turbine tab page
│   │   ├── docs.lua                    - documentation definitions
│   │   ├── main.lua                    - main UI display
│   │   └── style.lua                   - styling constants for Pocket UI
│   ├── configure.lua                   - Pocket configurator
│   ├── iocontrol.lua                   - Pocket I/O (PSIL and data)
│   ├── iorx.lua                        - Pocket data receiver
│   ├── pocket.lua                      - Pocket core functions: comms
│   ├── process.lua                     - process management coordination
│   ├── renderer.lua                    - GUI renderer control
│   ├── startup.lua                     - Pocket application startup
│   └── threads.lua                     - Pocket threads, application core
├── reactor-plc/                        = Reactor PLC application
│   ├── config/                         = Reactor PLC configurator sections
│   │   ├── check.lua                   - Reactor PLC self-check tool
│   │   └── system.lua                  - system configuration management
│   ├── panel/                          = Reactor PLC front panel
│   │   ├── front_panel.lua             - Reactor PLC front panel UI
│   │   └── style.lua                   - styling constants for PLC UI
│   ├── configure.lua                   - Reactor PLC configurator
│   ├── databus.lua                     - front panel PSIL
│   ├── plc.lua                         - Reactor PLC core functions: RPS and comms
│   ├── renderer.lua                    - GUI renderer control
│   ├── startup.lua                     - Reactor PLC startup application
│   └── threads.lua                     - Reactor PLC runtime "threads" (co-routines, main app)
├── rtu/                                = RTU Gateway application
│   ├── config/                         = RTU Gateway configurator sections
│   │   ├── check.lua                   - RTU Gateway self-check tool
│   │   ├── peripherals.lua             - RTU Gateway peripheral configuration
│   │   ├── redstone.lua                - RTU Gateway redstone configuration
│   │   └── system.lua                  - system configuration management
│   ├── dev/                            = RTU interfaces
│   │   ├── boilerv_rtu.lua             - boiler [valve] RTU interface
│   │   ├── dynamicv_rtu.lua            - dynamic tank [valve] RTU interface
│   │   ├── envd_rtu.lua                - environment detector RTU interface
│   │   ├── imatrix_rtu.lua             - induction matrix RTU interface
│   │   ├── redstone_rtu.lua            - redstone RTU interface
│   │   ├── sna_rtu.lua                 - solar neutron activator RTU interface
│   │   ├── sps_rtu.lua                 - supercritical phase shifter RTU interface
│   │   └── turbinev_rtu.lua            - turbine [valve] RTU interface
│   ├── panel/                          = RTU Gateway front panel
│   │   ├── front_panel.lua             - RTU Gateway front panel UI
│   │   └── style.lua                   - styling constants for RTU Gateway UI
│   ├── configure.lua                   - RTU Gateway configurator
│   ├── databus.lua                     - front panel PSIL
│   ├── modbus.lua                      - MODBUS comms protocol and I/O control handling
│   ├── renderer.lua                    - GUI renderer control
│   ├── rtu.lua                         - RTU Gateway core functions: comms and RTU unit init
│   ├── startup.lua                     - RTU Gateway startup application
│   └── threads.lua                     - RTU Gateway runtime "threads" (co-routines, main app)
├── scada-common/                       = common and system files
│   ├── audio.lua                       - alarm audio signals and control code
│   ├── comms.lua                       - system communications protocol and packet constructors
│   ├── constants.lua                   - system-wide constants, safety thresholds, and conversion factors
│   ├── crash.lua                       - crash message handling
│   ├── log.lua                         - system logging
│   ├── mqueue.lua                      - message queue object
│   ├── network.lua                     - network interface abstraction and cryptography
│   ├── ppm.lua                         - PPM - protected peripheral manager
│   ├── psil.lua                        - PSIL - publisher-subscriber interface layer
│   ├── rsio.lua                        - redstone I/O mappings and helper functions
│   ├── tcd.lua                         - TCD - timer callback dispatcher (call functions after a delay)
│   ├── types.lua                       - common data types and constructors
│   └── util.lua                        - system utility functions (prints, math, strings, clock & watchdog timers, etc)
├── supervisor/                         = Supervisor application
│   ├── config/                         = Supervisor configurator sections
│   │   ├── facility.lua                - facility configuration management
│   │   └── system.lua                  - system configuration management
│   ├── panel/                          = Supervisor front panel
│   │   ├── components/                 = front panel UI componenets
│   │   │   ├── chk_entry.lua           - facility check failure entry
│   │   │   ├── pdg_entry.lua           - Pocket diagnostics list entry
│   │   │   └── rtu_entry.lua           - RTU Gateway list entry
│   │   ├── front_panel.lua             - Supervisor front panel UI
│   │   ├── pgi.lua                     - protected graphics interface for managing list elements
│   │   └── style.lua                   - styling constants for Supervisor UI
│   ├── session/                        = Supervisor device sessions
│   │   ├── rtu/                        = RTU Gateway session individual unit handlers
│   │   │   ├── boilerv.lua             - boiler [valve] unit handler
│   │   │   ├── dynamicv.lua            - dynamic tank [valve] unit handler
│   │   │   ├── envd.lua                - environement detector unit handler
│   │   │   ├── imatrix.lua             - induction matrix unit handler
│   │   │   ├── qtypes.lua              - RTU Gateway queue data types
│   │   │   ├── redstone.lua            - redstone unit handler
│   │   │   ├── sna.lua                 - solar neutron activator unit handler
│   │   │   ├── sps.lua                 - supercritical phase shifter unit handler
│   │   │   ├── turbinev.lua            - turbine [valve] unit handler
│   │   │   ├── txnctrl.lua             - MODBUS transaction control handler
│   │   │   └── unit_session.lua        - RTU Gateway unit session generic base class
│   │   ├── coordinator.lua             - Coordinator session handler
│   │   ├── plc.lua                     - PLC session handler
│   │   ├── pocket.lua                  - Pocket diagnostics session handler
│   │   ├── rsctl.lua                   - Redstone RTU session I/O controller
│   │   ├── rtu.lua                     - RTU Gateway session handler
│   │   ├── svqtypes.lua                - Supervisor session queue types
│   │   └── svsessions.lua              - Supervisor session manager
│   ├── alarm_ctl.lua                   - alarm state updater
│   ├── configure.lua                   - Supervisor configurator
│   ├── databus.lua                     - front panel PSIL
│   ├── facility.lua                    - SCADA core facility management
│   ├── facility_update.lua             - facility update routine
│   ├── renderer.lua                    - GUI renderer control
│   ├── startup.lua                     - main Supervisor application
│   ├── supervisor.lua                  - Supervisor core functions: comms
│   ├── unit.lua                        - SCADA core reactor unit management
│   └── unit_logic.lua                  - reactor unit management functions
├── ccmsi.lua                           - cc-mek-scada installer
├── configure.lua                       - configurator loader program (bootstrap program to open app configurator)
├── initenv.lua                         - application environment initialization (for subdirectories)
└── startup.lua                         - core startup program ("bootloader")

Homepage

  1. User Manual
    1. System Setup Guide
      1. Device Layout
        1. Coordinator Displays
      2. Connecting to Mekanism Machines
      3. Application Installation
        1. Space Requirements
        2. Installation
        3. Updating
        4. Uninstalling
      4. SCADA Network
        1. Network Channels
        2. Network Connectivity
      5. Setup & Configuration
        1. Supervisor Setup
        2. Coordinator Setup
        3. Reactor PLC Setup
        4. RTU Gateway Setup
      6. Initial Startup
    2. Configurator Tools
      1. Supervisor Configurator
      2. Coordinator Configurator
      3. Reactor PLC Configurator
      4. RTU Gateway Configurator
      5. Pocket Configurator
    3. Redstone Waste Setup Guide
    4. TL;DR Quickstart
    5. FAQ and Common Problems
    6. Colorblind Accessibility
    7. Annunciator Panels
    8. Alarms
    9. System Views
      1. Main View Screen
      2. Valve & Flow Screen
      3. Unit View Screens
    10. Operating Procedure
    11. Status Messages
    12. Glossary
  2. Computer Applications
    1. Reactor PLC
      1. Front Panel
      2. Non-Networked Mode
      3. RPS
      4. PLC Emergency Coolant
    2. RTU Gateway
      1. Front Panel
    3. Supervisory Computer
      1. Front Panel
    4. Coordinator Computer
      1. Front Panel
    5. Pocket
      1. Home and Navigation
      2. Connectivity
      3. Main Applications
      4. System Details and Testing
  3. Notable System Components
    1. Co-routine Threading
    2. Project File Layout/Overview
    3. PPM - Protected Peripherals Manager
    4. RSIO - Redstone I/O
    5. Utility Classes
    6. Networking
  4. Notes
    1. Known Issues
    2. Process Closed Loop Controller
    3. Project Files and Layout
    4. Alternative Installation Strategies
  5. Investigations
    1. Startup Rate High
    2. Reactor Temperature Calculation
  6. References & Resources
    1. CC: Tweaked Character Set
    2. Mekanism API Notes
    3. Design & Regulatory References
  7. Legacy
    1. coord.settings File
    2. config.lua Files
      1. Supervisor config.lua
      2. Coordinator config.lua
      3. Reactor PLC config.lua
      4. RTU Gateway config.lua

Clone this wiki locally