Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- time_t = {time_started = {}, ramp_rate = {}, delay_time = {}, level_after_timeout = {}}
- function Timer_Group(net_f, app_f, group_f, level_f, rrate_f, delay_time_f, level_after_timeout_f)
- if (level_f > -1) then
- SetCBusLevel(net_f, app_f, group_f, level_f, rrate_f)
- end
- local knet, kapp, kgrp
- if ( type(net_f)=='string' ) then
- knet = GetCBusNetworkAddress(net_f)
- else
- knet = net_f
- end
- if ( type(app_f)=='string' ) then
- kapp = GetCBusApplicationAddress(knet, app_f)
- else
- kapp = app_f
- end
- if ( type(group_f)=='string' ) then
- kgrp = GetCBusGroupAddress(knet, kapp, group_f)
- else
- kgrp = group_f
- end
- local key = tostring(knet) ..":" .. tostring(kapp) .. ":" .. tostring(kgrp)
- time_t.time_started[key] = os.time()
- time_t.ramp_rate[key] = rrate_f
- time_t.delay_time[key] = delay_time_f
- time_t.level_after_timeout[key] = level_after_timeout_f
- storage.set('time_t', time_t)
- end
- function Timer_Stop(net_f, app_f, group_f)
- time_t = storage.get('time_t')
- local knet, kapp, kgrp
- if ( type(net_f)=='string' ) then
- knet = GetCBusNetworkAddress(net_f)
- else
- knet = net_f
- end
- if ( type(net_f)=='string' ) then
- kapp = GetCBusApplicationAddress(knet, app_f)
- else
- kapp = app_f
- end
- if ( type(net_f)=='string' ) then
- kgrp = GetCBusGroupAddress(knet, kapp, group_f)
- else
- kgrp = group_f
- end
- local key = tostring(knet) ..":" .. tostring(kapp) .. ":" .. tostring(kgrp)
- if (time_t ~= nil) then
- time_t.time_started[key] = nil
- time_t.ramp_rate[key] = nil
- time_t.delay_time[key] = nil
- time_t.level_after_timeout[key] = nil
- end
- storage.set('time_t', time_t)
- end
- function Timer_Chk()
- local key, time_started
- time_t = storage.get('time_t')
- if (time_t ~= nil) then
- for key,time_started in pairs(time_t.time_started) do
- if os.time() - time_t.time_started[key] >= time_t.delay_time[key] then
- local knet = tonumber(string.match(key, "(%d+):"))
- local kapp = tonumber(string.match(key, ":(%d+):"))
- local kgrp = tonumber(string.match(key, ":(%d+)$"))
- SetCBusLevel(knet, kapp, kgrp, time_t.level_after_timeout[key], time_t.ramp_rate[key])
- time_t.time_started[key] = nil
- time_t.ramp_rate[key] = nil
- time_t.delay_time[key] = nil
- time_t.level_after_timeout[key] = nil
- storage.set('time_t', time_t)
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement