stationeers_ic10/heating_cooling.ic10

94 lines
1.8 KiB
Plaintext
Raw Normal View History

alias gas_sensor d0
2021-11-10 16:29:01 +00:00
# d1= Logic Switch, Dial variant (Max=30)
alias thermostat d1
# d2 = Logic Memory, must be more than 0
alias temp_variance d2
# d3 = Console, LED Display variant, optional
alias temp_disp d3
alias curr_temp r0
alias target_temp r1
alias variance r2
alias min_temp r3
alias max_temp r4
alias cooling_active r5
alias heating_active r6
2021-11-15 13:32:10 +00:00
define WALL_HEATERS 24258244
define WALL_COOLERS -739292323
define LIQUID_WALL_COOLERS -1369060582
define TEMP_CONVERT 273.15
move cooling_active 0
move heating_active 0
start:
yield
# establish min- and max-temps to registry
l variance temp_variance Setting
l min_temp thermostat Setting
sub min_temp min_temp variance
l max_temp thermostat Setting
add max_temp max_temp variance
l target_temp thermostat Setting
2021-11-15 13:32:10 +00:00
# get current temperature
jal temp_read
2021-11-10 16:29:01 +00:00
# update display
brdns temp_disp 2
jal display
# compare current temp to max/min temp and
# initiate cooling or heating if needed
bgt curr_temp max_temp cooling
blt curr_temp min_temp heating
2021-11-15 13:32:10 +00:00
sb WALL_COOLERS On cooling_active
sb LIQUID_WALL_COOLERS On cooling_active
sb WALL_HEATERS On heating_active
j start
temp_read:
l curr_temp gas_sensor Temperature
2021-11-15 13:32:10 +00:00
sub curr_temp curr_temp TEMP_CONVERT
j ra
2021-11-10 16:29:01 +00:00
display:
s temp_disp Setting curr_temp
j ra
2021-11-10 16:29:01 +00:00
cooling:
2021-11-10 17:52:25 +00:00
yield
jal temp_read
# test if coolers need to be on or not
sgt cooling_active curr_temp target_temp
2021-11-10 16:29:01 +00:00
brdns temp_disp 2
jal display
# send state to coolers
2021-11-15 13:32:10 +00:00
sb WALL_COOLERS On cooling_active
sb LIQUID_WALL_COOLERS On cooling_active
2021-11-10 16:29:01 +00:00
bgtz cooling_active cooling
j start
heating:
2021-11-10 17:52:25 +00:00
yield
jal temp_read
# test if heaters need to be on or not
slt heating_active curr_temp target_temp
2021-11-10 16:29:01 +00:00
brdns temp_disp 2
jal display
# send state to heaters
2021-11-15 13:32:10 +00:00
sb WALL_HEATERS On heating_active
2021-11-10 16:29:01 +00:00
bgtz heating_active heating
j start