-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstate.lua
More file actions
64 lines (50 loc) · 1.84 KB
/
Copy pathstate.lua
File metadata and controls
64 lines (50 loc) · 1.84 KB
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
local state = {}
local DEFAULT_MODE = 'NORMAL'
local DEFAULT_HYSTERESIS = 0.5
local ERROR_SETPOINT = -1
local NO_MEASUREMENT = 0
local getState = function()
local freshState = {}
local files = file.list()
if not files['state'] then
print('Creating new config file...')
if file.open('state', 'w+') then
file.writeline(DEFAULT_MODE)
file.writeline(DEFAULT_HYSTERESIS)
file.writeline(ERROR_SETPOINT)
file.writeline(NO_MEASUREMENT)
file.writeline(NO_MEASUREMENT)
file.close()
end
end
if file.open('state') then
freshState.mode = file.readline():gsub("%s+", "")
freshState.hysteresis = tonumber(file.readline())
freshState.setpoint = tonumber(file.readline())
freshState.outputTemperature = tonumber(file.readline())
freshState.inputTemperature = tonumber(file.readline())
file.close()
end
return freshState
end
local setState = function(newState)
local previousState = getState()
newState.mode = newState.mode or previousState.mode
newState.hysteresis = newState.hysteresis or previousState.hysteresis
newState.setpoint = newState.setpoint or previousState.setpoint
newState.outputTemperature = newState.outputTemperature or
previousState.outputTemperature
newState.inputTemperature = newState.inputTemperature or
previousState.inputTemperature
if file.open('state', 'w+') then
file.writeline(newState.mode)
file.writeline(newState.hysteresis)
file.writeline(newState.setpoint)
file.writeline(newState.outputTemperature)
file.writeline(newState.inputTemperature)
file.close()
end
end
state.getState = getState
state.setState = setState
return state