Files
ATM10_CC_Codes/README.md
T

181 lines
8.4 KiB
Markdown

# ATM10 CC Control System
Modulares CC:Tweaked-Steuerungssystem fuer die ATM10-Megabase.
## Create Factory Scheduler V1
`create_factory_scheduler.lua` ist der persistente Nachfolger des Logistiktests.
Der funktionierende `create_factory_test.lua` bleibt als Rueckfallstand erhalten.
```lua
delete create_factory_scheduler.lua
wget https://git.peli-server.de/Dystroyer8/ATM10_CC_Codes/raw/branch/main/create_factory_scheduler.lua create_factory_scheduler.lua
create_factory_scheduler
```
Neue normale Module und Rezepte werden oben in der Tabelle `RECIPES` registriert.
Die Scheduler-Logik muss dafuer nicht veraendert werden. Mehrstufige oder zufaellige
Produktionsketten erhalten einen benannten Planner. V1.2 nutzt einen gemeinsamen
Metall-Planner fuer Asurine -> Zinc und Crimsite -> Iron. Im AUTO-Modus haelt der
erste Keep-Stock-Regler kleine Cogwheels, grosse Cogwheels und Iron Nuggets auf
jeweils 64 Stueck. Mixer-, Casing- und Precision-Rezepte sind ueber blätterbare
Rezeptseiten erreichbar.
Seit V1.3 erzeugt der Scheduler fehlende Zwischenprodukte als persistente
Vorauftraege. Beispielsweise wartet ein Andesite-Casing-Auftrag automatisch auf
fehlendes Andesite Alloy. `presse:1` bis `presse:6` bilden einen gemeinsamen Pool
fuer Gold-, Iron-, Copper-, Brass-, Zinc- und Steel-Plates. Precision Mechanisms
verwenden in ATM10 `alltheores:gold_plate`. Ihre lokalen Deployer-, Chute- und
Vault-Puffer werden durch Factory Gauges versorgt; der globale Keep-Stock fuellt
verbrauchte Cogwheels und Iron Nuggets parallel wieder auf.
V1.3.2 synchronisiert Vorauftrag und Hauptauftrag explizit: Das erzeugte Material
wird erst freigegeben, nachdem der Vorauftrag seine Ankunft registriert hat. So
kann ein nachfolgender Auftrag den neuen Bestand nicht mehr im selben Tick
wegnehmen und dadurch einen falschen Retry oder Fehler ausloesen.
V1.4 bindet die Advanced-Peripherals-ME-Bridge als geschuetzten Fallback ein.
Vorhandener Create-Bestand und Create-eigene Produktionsketten haben weiterhin
Vorrang. Nur externe, im Create-Netz fehlende Rohstoffe werden in exakt der
fehlenden Menge aus dem ME in `sophisticatedstorage:chest_0` exportiert. Diese
erste Stufe startet bewusst noch kein ME-Autocrafting.
## Create-Fabrik: Peripherie erkennen
Das rein lesende Diagnoseprogramm herunterladen und starten:
```lua
delete create_factory_debug.lua
wget https://git.peli-server.de/Dystroyer8/ATM10_CC_Codes/raw/branch/main/create_factory_debug.lua create_factory_debug.lua
create_factory_debug
```
Es erzeugt auf dem CC-Computer die Datei `factory_peripheral_debug.txt`. Darin
stehen alle verbundenen Peripherien, Methoden, Frogport-Adressen sowie abrufbare
Paket-, Inventar- und Stock-Ticker-Daten. Das Programm versendet keine Pakete und
veraendert keine Redstone-Ausgaenge.
### Erster Logistik-Funktionstest
Nach erfolgreicher Erkennung kann der Monitor-Testcontroller installiert werden:
```lua
delete create_factory_test.lua
wget https://git.peli-server.de/Dystroyer8/ATM10_CC_Codes/raw/branch/main/create_factory_test.lua create_factory_test.lua
create_factory_test
```
Der Controller zeigt automatisch alle Items des Stock-Ticker-Netzes auf
durchblaetterbaren Lagerseiten und bietet doppelt zu bestaetigende
Testbestellungen fuer `crushing`, `saw:1` und `saw:2`. Pro Verarbeitungslinie
bleibt nur ein Auftrag aktiv, bis sein Ergebnis im Lager erkannt wurde. Er
steuert noch keine Clutches oder sonstigen Redstone-Ausgaenge.
Als erster generischer Fan-Prozess ist `fan:washing` enthalten. Der Testauftrag
verarbeitet 64 vereinheitlichte Zinc Clumps zu mindestens 576 Zinc Nuggets; das
zufaellige Gunpowder-Nebenprodukt erscheint automatisch in der Lagerliste.
## Zielbild
- zentrale Leitwarte fuer Status, Energie, Alarme und Sektor-Hauptschalter
- lokale Sektorcontroller fuer Create, Mekanism, Greenhouse und spaetere Mods
- Sicherheitslogik bleibt immer im jeweiligen Sektor
- versionierte Installation und Updates ueber Gitea
## Installation auf einem CC-Computer
```lua
wget https://git.peli-server.de/Dystroyer8/ATM10_CC_Codes/raw/branch/main/install.lua install.lua
install
```
Der Installer ist momentan ein Bootstrap. Hardwaretreiber und konkrete Anlagenlogik
werden ergaenzt, sobald die Peripherie- und Methodennamen der gebauten Anlagen feststehen.
## Einfache Create-Boiler-Anzeige
Fuer die erste Kraftwerksanzeige werden ein Monitor sowie pro Boiler ein Block Reader aus
Advanced Peripherals benoetigt. Mindestens ein weiterer Block Reader zeigt auf das Create-
Speedometer oder Stressometer der gemeinsamen Hauptwelle. Alle Reader und der Monitor werden
ueber Wired Modems mit dem Computer verbunden. Installation und Start:
```lua
wget https://git.peli-server.de/Dystroyer8/ATM10_CC_Codes/raw/branch/main/create_boiler_display.lua create_boiler_display.lua
create_boiler_display
```
Das Programm liest Online-Status und Heizmodus jedes Boilers ueber dessen Block Reader.
Drehzahl, Kapazitaet, Verbrauch und Auslastung liest es aus den Netzwerkdaten des Gauge-Readers.
Die Monitoraufloesung wird automatisch erkannt und die groesste passende Textskalierung gewaehlt.
Ein Boiler ohne Wasserversorgung oder angeschlossene Engine wird als IDLE angezeigt, selbst wenn
eine Campfire- oder Blaze-Burner-Waermequelle erkannt wird.
### Clutch-Teststeuerung
Die linke Seite des Computers ist als Redstone-Ausgang fuer die Test-Clutch konfiguriert.
Zwischen Ausgang und Clutch sitzt eine Redstone-Fackel als Fail-safe-Inverter: Ausgang `ON`
bedeutet `PRODUCTION: RUNNING`; Ausgang `OFF`, Programmabbruch oder Computerneustart bedeutet
`PRODUCTION: STOPPED`. Die Verbindung kann direkt oder ueber Create Redstone Links erfolgen.
Der gewuenschte Zustand wird nach jeder Touch-Bedienung in `create_boiler_state.txt` gespeichert.
Beim naechsten Programmstart wird er wiederhergestellt. Fuer automatischen Start nach einem
Computer- oder Weltneustart kann das Startprogramm als `startup.lua` installiert werden:
```lua
wget https://git.peli-server.de/Dystroyer8/ATM10_CC_Codes/raw/branch/main/create_boiler_startup.lua startup.lua
reboot
```
Waehrend der Computer aus ist, bleibt die Hardware durch den Fackel-Inverter abgeschaltet. Erst
nach erfolgreichem Programmstart wird ein zuvor gespeicherter RUNNING-Zustand wieder aktiviert.
Die Boiler werden nicht anhand wechselnder Peripheral-Namen, sondern fest ueber ihre
Controller-Koordinaten `11266/64/10810`, `11260/64/10810` und `11254/64/10810` zugeordnet.
Fehlt ein Reader, bleibt dadurch exakt die betroffene Boiler-Zeile auf `MISSING / NO READER`.
Jeder Block Reader muss direkt auf den Controller-Tank seines Boiler-Multiblocks zeigen.
## Andesite-Alloy-Produktion
Der erste lokale Create-Produktionscontroller ueberwacht einen Zink-Nugget-Vault, einen
Andesite-Alloy-Vault und die per Clutch geschaltete Produktionsanlage. Die beiden Vaults muessen
jeweils direkt ueber einen aktivierten Wired Modem Full Block als Inventory-Peripheral mit dem
Computer verbunden sein. Der Redstone-Ausgang `left` steuert die Clutch ueber einen Fail-safe-Inverter:
Redstone `ON` schaltet die Fackel aus und gibt die Welle frei; bei Redstone `OFF`, Programmabbruch
oder Computer-Ausfall stoppt die Fackel die Welle.
Installation und erster Start:
```lua
wget https://git.peli-server.de/Dystroyer8/ATM10_CC_Codes/raw/branch/main/create_andesite_display.lua create_andesite_display.lua
create_andesite_display
```
Der Controller erkennt die Vaults anhand von `create:zinc_nugget` und
`create:andesite_alloy` und speichert ihre Peripheral-Namen. Die Freigabe wird ebenfalls
gespeichert. Fehlendes Zink, ein voller Ausgang oder fehlende Vault-Daten schalten die
Produktionsanlage ab; nach Behebung wird eine weiterhin freigegebene Anlage automatisch
fortgesetzt. Globale RPM-, Kapazitaets- und Stresswerte gehoeren in den spaeteren Create-
Serverraum, da ein Stressometer immer das gesamte zusammenhaengende kinetische Netzwerk misst.
Fuer den automatischen Start:
```lua
wget https://git.peli-server.de/Dystroyer8/ATM10_CC_Codes/raw/branch/main/create_andesite_startup.lua startup.lua
reboot
```
## Struktur
```text
core/ Laufzeit, Netzwerk, Protokoll, Logging, Updates
drivers/ Adapter fuer Redstone und Mod-Peripherie
roles/ Zentrale und Sektorcontroller
ui/ Monitore, Widgets und Alarmdarstellung
config/ Konfigurationsvorlagen
docs/ Architektur- und Protokolldokumentation
```
## Sicherheitsprinzip
Die Zentrale fordert nur einen Zielzustand an. Lokale Controller fuehren sichere
Start-/Stoppsequenzen aus und bestaetigen den tatsaechlichen Zustand.