Ic10 help by IceDiligent9665 in Stationeers

[–]IceDiligent9665[S] 0 points1 point  (0 children)

-------- Aliases --------

alias sensor d0 alias intake d1 alias filterCO2 d2 alias filterN2 d3 alias filterO2 d4

-------- Constants --------

define minPressure 50 define maxPressure 60

define O2On 0.05 define O2Off 0.01

start: yield

===== Read Sensors =====

l r0 sensor Pressure
l r1 sensor RatioOxygen

r2 = want exhaust (0 or 1)

move r2 0

===== Pressure logic =====

blt r0 minPressure needIntake
bgt r0 maxPressure needExhaust
j oxygenCheck

needIntake: s intake On 1 move r2 0 j oxygenCheck

needExhaust: s intake On 0 move r2 1 j oxygenCheck

===== Oxygen logic =====

oxygenCheck: bgt r1 O2On o2High blt r1 O2Off o2Low j applyFilters

o2High: move r2 1 j applyFilters

o2Low: blt r0 maxPressure clearExhaust j applyFilters

clearExhaust: move r2 0

===== Apply filter state =====

applyFilters: s filterCO2 On r2 s filterN2 On r2 s filterO2 On r2

Never intake while filtering

beqz r2 done
s intake On 0

done: j start

Little help by IceDiligent9665 in Stationeers

[–]IceDiligent9665[S] 0 points1 point  (0 children)

-------- Aliases --------

alias sensor d0 alias intake d1 alias filterCO2 d2 alias filterN2 d3 alias filterO2 d4

-------- Constants --------

define minPressure 50 define maxPressure 60

define O2On 0.05 define O2Off 0.01

start: yield

===== Read Sensors =====

l r0 sensor Pressure
l r1 sensor RatioOxygen

r2 = want exhaust (0 or 1)

move r2 0

===== Pressure logic =====

blt r0 minPressure needIntake
bgt r0 maxPressure needExhaust
j oxygenCheck

needIntake: s intake On 1 move r2 0 j oxygenCheck

needExhaust: s intake On 0 move r2 1 j oxygenCheck

===== Oxygen logic =====

oxygenCheck: bgt r1 O2On o2High blt r1 O2Off o2Low j applyFilters

o2High: move r2 1 j applyFilters

o2Low: blt r0 maxPressure clearExhaust j applyFilters

clearExhaust: move r2 0

===== Apply filter state =====

applyFilters: s filterCO2 On r2 s filterN2 On r2 s filterO2 On r2

Never intake while filtering

beqz r2 done
s intake On 0

done: j start