Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Power Distribution Large LED Control Script v1
- # by SemlerPDX Sept2023
- #As seen in my Power Station Quick Clip video:
- # https://youtu.be/s45vYXD6dSI
- define CableAnalyzer 1036015121
- define Button 491845673
- define MediumLED -53151617
- define LargeLED -1949054743
- sb LargeLED Mode 2
- sb LargeLED Color 6
- alias ThisBut r10
- alias ThisMax r11
- alias ThisLED r12
- alias AvgTotal r13
- alias AvgCount r14
- alias x r15
- define ThisNet HASH("Cable Analyzer MAIN OUT")
- #Clear the stack
- move sp 0
- define STACK 500
- push 0
- brlt sp STACK -1 #can use clr in latest version
- #Initialize Stack to contain Averages
- move sp 0
- move AvgTotal 0
- move AvgCount 0
- start:
- sb MediumLED Color 6 #REQUIRED!
- move ThisLED HASH("LED Total Power Min")
- lbn r0 LargeLED ThisLED Setting Maximum
- beqzal r0 setMinDisplay
- yield
- move ThisLED HASH("LED Total Power Avg")
- add sp sp 1
- pop x
- sub AvgTotal AvgTotal x
- lbn x CableAnalyzer ThisNet PowerActual Maximum
- push x
- add AvgTotal AvgTotal x
- max AvgCount AvgCount sp
- brlt sp STACK 2
- move sp 0
- div x AvgTotal AvgCount
- sbn LargeLED ThisLED Setting x
- jal setDisplaysMinMax
- j start
- setDisplaysMinMax:
- move ThisBut HASH("Button Total Power Max")
- move ThisLED HASH("LED Total Power Max")
- lbn r1 Button ThisBut Setting Maximum
- bgtz r1 resetThisDisplay
- move ThisMax HASH("LED Power Station Max")
- lbn r1 MediumLED ThisMax Setting Maximum
- add r0 0 r1
- move ThisMax HASH("LED Greenhouse Max")
- lbn r1 MediumLED ThisMax Setting Maximum
- add r0 r0 r1
- move ThisMax HASH("LED Workshop Max")
- lbn r1 MediumLED ThisMax Setting Maximum
- add r0 r0 r1
- move ThisMax HASH("LED Mining Max")
- lbn r1 MediumLED ThisMax Setting Maximum
- add r0 r0 r1
- move ThisMax HASH("LED Furnace Max")
- lbn r1 MediumLED ThisMax Setting Maximum
- add r0 r0 r1
- move ThisMax HASH("LED Spaceport Max")
- lbn r1 MediumLED ThisMax Setting Maximum
- add r0 r0 r1
- lbn r1 LargeLED ThisLED Setting Maximum
- bge r1 r0 setDisplaysMin #bypass if max is greater
- #Set new Maximum to Power Consumption Display
- sbn LargeLED ThisLED Setting r0
- setDisplaysMin:
- move ThisBut HASH("Button Total Power Min")
- move ThisLED HASH("LED Total Power Min")
- lbn r1 Button ThisBut Setting Maximum
- bgtz r1 resetThisDisplay
- lbn r0 CableAnalyzer ThisNet PowerActual Maximum
- lbn r1 LargeLED ThisLED Setting Maximum
- select r1 r1 r1 r0
- ble r1 r0 ra #bypass if min is already lesser
- #Set new Minimum to Power Consumption Display
- sbn LargeLED ThisLED Setting r0
- j ra
- resetThisDisplay:
- sbn LargeLED ThisLED Color 1
- sbn LargeLED ThisLED Setting 0
- sleep 2
- j start
- setMinDisplay:
- lbn r0 CableAnalyzer ThisNet PowerActual Maximum
- sbn LargeLED ThisLED Setting r0
- j ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement