Package: qcontrol
Version: 0.4.2+svn-r40-3
Severity: normal
Bug 689912 consolidated the upstream ts419p and ts41x configuration scripts,
but the resulting script does not contain the lcd_button script from the
ts419p example script.
I copied the lcd_button script over, and it works fine.
(This is a locally built copy of 0.4.2+svn-r40-3 based on the source in
unstable,
using debhelper 9 from backports)
-- System Information:
Debian Release: 6.0.7
APT prefers stable
APT policy: (500, 'stable')
Architecture: armel (armv5tel)
Kernel: Linux 2.6.32-5-kirkwood
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages qcontrol depends on:
ii libc6 2.11.3-4 Embedded GNU C Library: Shared lib
ii liblua5.1-0 5.1.4-5 Simple, extensible, embeddable pro
ii udev 164-3 /dev/ and hotplug management daemo
qcontrol recommends no packages.
qcontrol suggests no packages.
-- Configuration Files:
/etc/qcontrol/ts41x.lua changed:
--[[
Debian configuration file for qcontrol (LUA syntax)
Supports the QNAP TS-410, TS-410U, TS-419P and TS-419U.
--]]
register("ts41x")
-- Requires CONFIG_KEYBOARD_GPIO enabled in the kernel and
-- the kernel module gpio_keys to be loaded.
register("evdev", "/dev/input/by-path/platform-gpio-keys-event",
408, "restart_button",
133, "media_button")
function power_button( time )
os.execute("poweroff")
end
function restart_button( time )
os.execute("reboot")
end
function media_button( time )
piccmd("usbled", "8hz")
end
function lcd_button( state, down, up )
-- exactly key 1 and 2 pressed switches backlight off
if state == 3 then
piccmd("lcd-backlight", "off")
else
-- any key pressed activates the backlight
if down ~= 0 then
piccmd("lcd-backlight", "on")
end
-- pressing key 1 switches off the usbled the media-key enables...
if down == 1 then
piccmd("usbled", "off")
end
end
end
-- If argument is a function then call it, else return it.
function evalfn(f)
if type(f) == "function" then
return f( )
else
return f
end
end
-- Select a value based on the state of a GPIO pin.
--
-- results == list of result to return for each state
-- value=0 => results[1]
-- value=1 => results[2]
-- value unknown => results[3]
--
-- If result[N] is a function it will be called,
-- otherwise it is simply returned as is.
function gpio_select(number, results)
local path=string.format("/sys/class/gpio/gpio%d/value", number)
local gpio=io.open(path)
if not gpio then
logprint("ts41x: "..path.." does not exist, trying to enable")
g = io.open("/sys/class/gpio/enable")
if not g then
logprint("ts41x: unable to open gpio control file")
return evalfn(results[3])
end
g:write(number)
gpio=io.open(path)
end
if not gpio then
logprint("ts41x: unable to open gpio file")
return evalfn(results[3])
end
local v=gpio:read("*n")
if v == 0 then return evalfn(results[1])
elseif v == 1 then return evalfn(results[2])
else return evalfn(results[3])
end
end
-- MPP45_GPIO, JP1: 0: LCD, 1: serial console
gpio_select(45, {
function () register("a125", "/dev/ttyS0") end,
nil,
nil})
fanfail = 0
function fan_error( )
fanfail = fanfail + 1
if fanfail == 3 then
logprint("ts41x: fan error")
piccmd("statusled", "red2hz")
piccmd("buzzer", "long")
else
if fanfail == 10 then
fanfail = 0
end
end
end
function fan_normal( )
piccmd("statusled", "greenon")
fanfail = 0
end
last_temp_log = nil
last_temp_value = 0
function logtemp( temp )
now = os.time()
-- Log only every 5 minutes or if the temperature has changed by
-- more than 5.
if ( ( not last_temp_log ) or
( os.difftime(now, last_temp_log) >= 300 ) or
( math.abs( temp - last_temp_value ) >= 5 ) ) then
logprint(string.format("ts41x: temperature %d", temp))
last_temp_log = now
last_temp_value = temp
end
end
last_fan_setting = nil
function setfan( speed )
if ( ( not last_fan_setting ) or
( last_fan_setting ~= speed ) ) then
logprint(string.format("ts41x: setting fan to \"%s\"", speed))
end
piccmd("fanspeed", speed)
last_fan_setting = speed
end
function temp( temp )
logtemp(temp)
if temp > 80 then
setfan("full")
elseif temp > 70 then
setfan("high")
elseif temp > 55 then
setfan("medium")
elseif temp > 30 then
setfan("low")
else
setfan("silence")
end
end
-- no debconf information
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]