Skip to content

Project Files

Mikayla edited this page Dec 15, 2023 · 14 revisions

Project Directory Layout and File Overviews

Last Updated for v1.8.5-beta

cc-mek-scada/                        = ComputerCraft Mekanism SCADA system
├── coordinator/                     = coordinator application
│   ├── 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
│   │   │   ├── processctl.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
│   │   ├── dialog.lua               - functions for terminal dialogs
│   │   ├── pgi.lua                  - protected graphics interface for managing list elements
│   │   └── style.lua                - styling constants for coordinator UI
│   ├── config.lua                   - coordinator configuration file
│   ├── 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                  - main coordinator application
├── 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
│   │   │   ├── hazard_button.lua    - button with hazard pattern around it
│   │   │   ├── multi_button.lua     - multi-choice button
│   │   │   ├── push_button.lua      - push button, single press then releases
│   │   │   ├── radio_2d.lua         - multi-choice matrix layout radio button
│   │   │   ├── radio_button.lua     - multi-choice vertical layout radio button
│   │   │   ├── sidebar.lua          - sidebar vertical tab selector
│   │   │   ├── spinbox_numeric.lua  - fixed-point number spinbox input
│   │   │   ├── switch_button.lua    - switch button, single press toggles state
│   │   │   └── tabbar.lua           - horizontal tab selector
│   │   ├── form/                    = user input form fields
│   │   │   ├── number_field.lua     - numeric form field input
│   │   │   └── text_field.lua       - text form field input
│   │   ├── indicators/              = indicator elements
│   │   │   ├── alight.lua           - alarm light indicator (quad-state)
│   │   │   ├── coremap.lua          - reactor core map
│   │   │   ├── data.lua             - numerical data indicator w/ labels & units
│   │   │   ├── hbar.lua             - horizontal percentage bar
│   │   │   ├── icon.lua             - single character indicator w/ color
│   │   │   ├── led.lua              - tiny rectangle 'LED' indicator (on/off)
│   │   │   ├── ledpair.lua          - tiny rectangle 'LED' indicator (tri-state)
│   │   │   ├── ledrgb.lua           - tiny rectangle 'LED' indicator (n-state)
│   │   │   ├── light.lua            - square light indicator (on/off)
│   │   │   ├── power.lua            - numerical indicator for power (auto-scaled units)
│   │   │   ├── rad.lua              - numerical indicator for radiation (auto-scaled units)
│   │   │   ├── state.lua            - text + color state indicator
│   │   │   ├── trilight.lua         - square light indicator (tri-state)
│   │   │   └── vbar.lua             - vertical percentage bar
│   │   ├── 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
│   │   ├── pipenet.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
├── lockbox/                         = select lua-lockbox files
├── pocket/                          = pocket computer application
│   ├── ui/                          = pocket UI definitions
│   │   ├── components/              = pocket UI componenets
│   │   │   └── conn_waiting.lua     - connection waiting spinners
│   │   ├── pages/                   = pocket tabbed pages
│   │   │   ├── boiler_page.lua      - boiler tab page
│   │   │   ├── home_page.lua        - home tab page
│   │   │   ├── reactor_page.lua     - reactor tab page
│   │   │   ├── turbine_page.lua     - turbine tab page
│   │   │   └── unit_page.lua        - unit overview tab page
│   │   ├── main.lua                 - main UI display
│   │   └── style.lua                - styling constants for pocket UI
│   ├── config.lua                   - pocket configuration file
│   ├── iocontrol.lua                - pocket I/O (PSIL and data)
│   ├── pocket.lua                   - pocket core functions: comms
│   ├── renderer.lua                 - GUI renderer control
│   └── startup.lua                  - main pocket application
├── reactor-plc/                     = reactor PLC application
│   ├── 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 function
│   ├── 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
│   ├── 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 function
│   ├── 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
│   ├── panel/                       = supervisor front panel
│   │   ├── components/              = front panel UI componenets
│   │   │   ├── pdg_entry.lua        - pocket diagnostics list entry
│   │   │   └── rtu_entry.lua        - RTU 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 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 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
│   ├── config.lua                   - supervisor configuration file
│   ├── databus.lua                  - front panel PSIL
│   ├── facility.lua                 - SCADA core facility management
│   ├── renderer.lua                 - GUI renderer control
│   ├── startup.lua                  - main supervisor application
│   ├── supervisor.lua               - supervisor core functions: comms
│   ├── unit.lua                     - SCADA core reactor unit management
│   └── unitlogic.lua                - reactor unit management functions (unit.lua would otherwise exceed 1000 lines)
├── 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")
Clone this wiki locally