-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathactive-vent-set-controller.s
67 lines (58 loc) · 1.36 KB
/
active-vent-set-controller.s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# open or close all network active vents depending on
# a vent command setting
# RespondToInternal should be changed if this active
# vent set is considered internal or external.
# intended use would have a memory / ic housing
# mirrored from a controlling network that wants to
# command two sets of multiple active vents.
alias ventCommand d0
alias externalSensor d1
define CLEAR 0
define EXHAUSTEXT 1
define EXHAUSTINT 2
define INTAKEEXT 3
define INTAKEINT 4
define OFFEXT 5
define OFFINT 6
define OFFALL 7
define ACTIVEVENT -1129453144
define RespondToInternal 0
define CLEARCMDSLEEP 0.5
alias doExhaust r8
alias doIntake r9
alias doOff r10
init:
sb ACTIVEVENT Lock 0
select doExhaust RespondToInternal EXHAUSTINT EXHAUSTEXT
select doIntake RespondToInternal INTAKEINT INTAKEEXT
select doOff RespondToInternal OFFINT OFFEXT
main:
yield
l r0 ventCommand Setting
beq r0 doExhaust exhaust
beq r0 doIntake intake
beq r0 doOff off
beq r0 OFFALL off
j main
exhaust:
sb ACTIVEVENT Lock 1
sb ACTIVEVENT Mode 1
sb ACTIVEVENT PressureInternal 40000
sb ACTIVEVENT PressureExternal 0
sb ACTIVEVENT On 1
j clear
intake:
sb ACTIVEVENT Lock 1
sb ACTIVEVENT Mode 0
sb ACTIVEVENT PressureInternal 0
l r0 externalSensor Pressure
sb ACTIVEVENT PressureExternal r0
sb ACTIVEVENT On 1
j clear
off:
sb ACTIVEVENT On 0
sb ACTIVEVENT Lock 0
clear:
sleep CLEARCMDSLEEP
s ventCommand Setting CLEAR
j main