-
-
Notifications
You must be signed in to change notification settings - Fork 21
Project Files
Mikayla edited this page Dec 15, 2023
·
14 revisions
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")
If you need help beyond this wiki, open a support discussion or ask on Discord! If you prefer videos, they can be found on my YouTube channel.
- User Manual
- Computer Applications
- Notable System Components
- Notes
- Investigations
- References & Resources
- Legacy