26
Project Files
Mikayla edited this page 2025-12-18 21:54:22 -05:00

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")