Skip to content

Project Files

Mikayla edited this page Jun 21, 2023 · 14 revisions

Project Directory Layout and File Overviews

cc-mek-scada/
├── coordinator/
│   ├── session/
│   │   ├── apisessions.lua          - session manager for API
│   │   └── pocket.lua               - pocket API session
│   ├── ui/
│   │   ├── components/
│   │   │   ├── boiler.lua           - boiler display for overview
│   │   │   ├── imatrix.lua          - induction matrix display on main screen
│   │   │   ├── 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_overview.lua    - unit overview on primary monitor
│   │   ├── layout/
│   │   │   ├── main_view.lua        - main screen on primary monitor
│   │   │   └── unit_view.lua        - unit screens on unit monitors
│   │   ├── dialog.lua               - functions for terminal dialogs
│   │   └── style.lua                - styling constants for coordinator UI
│   ├── config.lua                   - coordinator configuration file
│   ├── coordinator.lua              - coordinator core functions: comms and monitor configuration
│   ├── 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/
│   ├── elements/
│   │   ├── animations/
│   │   │   └── waiting.lua          - loading spinning animation
│   │   ├── controls/
│   │   │   ├── 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_button.lua     - multi-choice vertical 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
│   │   ├── indicators/
│   │   │   ├── 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/
│   ├── ui/
│   │   ├── components/
│   │   │   └── conn_waiting.lua     - connection waiting spinners
│   │   ├── 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
│   ├── coreio.lua                   - core pocket I/O (PSIL and data)
│   ├── pocket.lua                   - pocket core functions: comms
│   ├── renderer.lua                 - GUI renderer control
│   └── startup.lua                  - main pocket application
├── reactor-plc/
│   ├── panel/
│   │   ├── front_panel.lua          - PLC front panel UI
│   │   └── style.lua                - styling constants for PLC UI
│   ├── config.lua                   - PLC configuration file
│   ├── databus.lua                  - front panel PSIL
│   ├── plc.lua                      - PLC core functions: RPS and comms
│   ├── renderer.lua                 - GUI renderer control
│   ├── startup.lua                  - PLC startup application
│   └── threads.lua                  - PLC runtime "threads" (co-routines, main app)
├── rtu/
│   ├── dev/
│   │   ├── boilerv_rtu.lua          - boiler [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/
│   │   ├── front_panel.lua          - RTU front panel UI
│   │   └── style.lua                - styling constants for RTU UI
│   ├── config.lua                   - RTU configuration file
│   ├── databus.lua                  - front panel PSIL
│   ├── modbus.lua                   - MODBUS comms protocol and I/O control handling
│   ├── renderer.lua                 - GUI renderer control
│   ├── rtu.lua                      - RTU core functions: comms and RTU unit init
│   ├── startup.lua                  - RTU startup application
│   └── threads.lua                  - RTU runtime "threads" (co-routines, main app)
├── scada-common/
│   ├── comms.lua                    - system communications protocol and packet constructors
│   ├── constants.lua                - system-wide constants, safety thresholds, and conversion factors
│   ├── crash.lua                    - crash message handling
│   ├── crypto.lua                   - cryptographic engine
│   ├── log.lua                      - system logging
│   ├── mqueue.lua                   - message queue object
│   ├── 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/
│   ├── panel/
│   │   ├── components/
│   │   │   ├── pdg_entry.lua
│   │   │   └── rtu_entry.lua
│   │   ├── front_panel.lua
│   │   ├── pgi.lua
│   │   └── style.lua
│   ├── session/
│   │   ├── rtu/
│   │   │   ├── boilerv.lua
│   │   │   ├── envd.lua
│   │   │   ├── imatrix.lua
│   │   │   ├── qtypes.lua
│   │   │   ├── redstone.lua
│   │   │   ├── sna.lua
│   │   │   ├── sps.lua
│   │   │   ├── turbinev.lua
│   │   │   ├── txnctrl.lua
│   │   │   └── unit_session.lua
│   │   ├── coordinator.lua
│   │   ├── plc.lua
│   │   ├── pocket.lua
│   │   ├── rsctl.lua
│   │   ├── rtu.lua
│   │   ├── svqtypes.lua
│   │   └── svsessions.lua
│   ├── config.lua
│   ├── databus.lua
│   ├── facility.lua
│   ├── renderer.lua
│   ├── startup.lua
│   ├── supervisor.lua
│   ├── unit.lua
│   └── unitlogic.lua
├── ccmsi.lua
├── initenv.lua
└── startup.lua
Clone this wiki locally