aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
authorthedoc <thedoc@atom.(none)>2009-12-10 14:52:36 +0100
committerthedoc <thedoc@atom.(none)>2009-12-10 14:52:36 +0100
commit710b3ea19993c9fc15e38a57101494eb962c606c (patch)
tree93c940ef8e9f9e74890fb5a1f082c82d896c7de6 /lib/python
parent67858ed10ece500b2cf68dafb39886a0b873ec4c (diff)
downloadenigma2-710b3ea19993c9fc15e38a57101494eb962c606c.tar.gz
enigma2-710b3ea19993c9fc15e38a57101494eb962c606c.zip
support up to 8 fan/temp sensors
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/Components/Converter/SensorToText.py2
-rw-r--r--lib/python/Components/FanControl.py4
-rw-r--r--lib/python/Components/Sensors.py2
-rw-r--r--lib/python/Components/Sources/Sensor.py16
-rw-r--r--lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py96
5 files changed, 102 insertions, 18 deletions
diff --git a/lib/python/Components/Converter/SensorToText.py b/lib/python/Components/Converter/SensorToText.py
index ab87ee2e..fb156faf 100644
--- a/lib/python/Components/Converter/SensorToText.py
+++ b/lib/python/Components/Converter/SensorToText.py
@@ -5,6 +5,8 @@ class SensorToText(Converter, object):
Converter.__init__(self, arguments)
def getText(self):
+ if self.source.getValue() is None:
+ return ""
return "%d %s" % (self.source.getValue(), self.source.getUnit())
text = property(getText)
diff --git a/lib/python/Components/FanControl.py b/lib/python/Components/FanControl.py
index d7986c25..7a402272 100644
--- a/lib/python/Components/FanControl.py
+++ b/lib/python/Components/FanControl.py
@@ -23,8 +23,8 @@ class FanControl:
default_vlt = self.getVoltage(fanid)
default_pwm = self.getPWM(fanid)
fan = ConfigSubsection()
- fan.vlt = ConfigSlider(default = default_vlt, increment = 10, limits = (0, 255))
- fan.pwm = ConfigSlider(default = default_vlt, increment = 10, limits = (0, 255))
+ fan.vlt = ConfigSlider(default = 16, increment = 5, limits = (0, 255))
+ fan.pwm = ConfigSlider(default = 0, increment = 5, limits = (0, 255))
fan.vlt.addNotifier(boundFunction(setVlt, self, fanid))
fan.pwm.addNotifier(boundFunction(setPWM, self, fanid))
config.fans.append(fan)
diff --git a/lib/python/Components/Sensors.py b/lib/python/Components/Sensors.py
index 7f63455b..8898a030 100644
--- a/lib/python/Components/Sensors.py
+++ b/lib/python/Components/Sensors.py
@@ -67,6 +67,6 @@ class Sensors:
self.sensors_list.append((self.TYPE_TEMPERATURE, name, unit, "/proc/stb/sensors/%s" % dirname))
for fanid in range(fancontrol.getFanCount()):
if fancontrol.hasRPMSensor(fanid):
- self.sensors_list.append((self.TYPE_FAN_RPM, _("fan"), "rpm", fanid))
+ self.sensors_list.append((self.TYPE_FAN_RPM, _("Fan %d") % (fanid + 1), "rpm", fanid))
sensors = Sensors() \ No newline at end of file
diff --git a/lib/python/Components/Sources/Sensor.py b/lib/python/Components/Sources/Sensor.py
index 3f6c8f0f..e927bbf4 100644
--- a/lib/python/Components/Sources/Sensor.py
+++ b/lib/python/Components/Sources/Sensor.py
@@ -5,17 +5,20 @@ from enigma import eTimer
from Source import Source
class SensorSource(Source):
- def __init__(self, update_interval = 500, sensorid = 0):
+ def __init__(self, update_interval = 500, sensorid = None):
self.update_interval = update_interval
self.sensorid = sensorid
Source.__init__(self)
- self.update_timer = eTimer()
- self.update_timer.callback.append(self.updateValue)
- self.update_timer.start(self.update_interval)
+ if sensorid is not None:
+ self.update_timer = eTimer()
+ self.update_timer.callback.append(self.updateValue)
+ self.update_timer.start(self.update_interval)
def getValue(self):
- return sensors.getSensorValue(self.sensorid)
+ if self.sensorid is not None:
+ return sensors.getSensorValue(self.sensorid)
+ return None
def getUnit(self):
return sensors.getSensorUnit(self.sensorid)
@@ -24,4 +27,5 @@ class SensorSource(Source):
self.changed((self.CHANGED_POLL,))
def destroy(self):
- self.update_timer.callback.remove(self.updateValue)
+ if self.sensorid is not None:
+ self.update_timer.callback.remove(self.updateValue)
diff --git a/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py b/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py
index 60af03cb..b5762529 100644
--- a/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py
+++ b/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py
@@ -1,6 +1,7 @@
from Components.ActionMap import ActionMap
from Components.Sensors import sensors
from Components.Sources.Sensor import SensorSource
+from Components.Sources.StaticText import StaticText
from Components.ConfigList import ConfigListScreen
from Components.config import getConfigListEntry
@@ -13,10 +14,70 @@ class TempFanControl(Screen, ConfigListScreen):
skin = """
<screen position="100,100" size="550,400" title="Fan Control" >
<!--widget name="text" position="0,0" size="550,400" font="Regular;15" /-->
- <widget source="SensorTemp" render="Label" position="380,300" zPosition="1" size="150,20" font="Regular;19" halign="right">
+
+ <widget source="SensorTempText0" render="Label" position="10,150" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorTemp0" render="Label" position="100,150" zPosition="1" size="100,20" font="Regular;19" halign="right">
<convert type="SensorToText"></convert>
</widget>
- <widget source="SensorFan" render="Label" position="380,325" zPosition="1" size="150,20" font="Regular;19" halign="right">
+ <widget source="SensorTempText1" render="Label" position="10,170" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorTemp1" render="Label" position="100,170" zPosition="1" size="100,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorTempText2" render="Label" position="10,190" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorTemp2" render="Label" position="100,190" zPosition="1" size="100,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorTempText3" render="Label" position="10,210" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorTemp3" render="Label" position="100,210" zPosition="1" size="100,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorTempText4" render="Label" position="10,230" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorTemp4" render="Label" position="100,230" zPosition="1" size="100,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorTempText5" render="Label" position="10,250" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorTemp5" render="Label" position="100,250" zPosition="1" size="100,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorTempText6" render="Label" position="10,270" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorTemp6" render="Label" position="100,270" zPosition="1" size="100,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorTempText7" render="Label" position="10,290" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorTemp7" render="Label" position="100,290" zPosition="1" size="100,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+
+ <widget source="SensorFanText0" render="Label" position="290,150" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorFan0" render="Label" position="380,150" zPosition="1" size="150,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorFanText1" render="Label" position="290,170" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorFan1" render="Label" position="380,170" zPosition="1" size="150,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorFanText2" render="Label" position="290,190" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorFan2" render="Label" position="380,190" zPosition="1" size="150,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorFanText3" render="Label" position="290,210" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorFan3" render="Label" position="380,210" zPosition="1" size="150,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorFanText4" render="Label" position="290,230" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorFan4" render="Label" position="380,230" zPosition="1" size="150,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorFanText5" render="Label" position="290,250" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorFan5" render="Label" position="380,250" zPosition="1" size="150,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorFanText6" render="Label" position="290,270" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorFan6" render="Label" position="380,270" zPosition="1" size="150,20" font="Regular;19" halign="right">
+ <convert type="SensorToText"></convert>
+ </widget>
+ <widget source="SensorFanText7" render="Label" position="290,290" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
+ <widget source="SensorFan7" render="Label" position="380,290" zPosition="1" size="150,20" font="Regular;19" halign="right">
<convert type="SensorToText"></convert>
</widget>
<widget name="config" position="10,10" size="500,225" scrollbarMode="showOnDemand" />
@@ -25,15 +86,32 @@ class TempFanControl(Screen, ConfigListScreen):
def __init__(self, session, args = None):
Screen.__init__(self, session)
- id = sensors.getSensorsList(sensors.TYPE_TEMPERATURE)[0]
- self["SensorTemp"] = SensorSource(sensorid = id)
- id = sensors.getSensorsList(sensors.TYPE_FAN_RPM)[0]
- self["SensorFan"] = SensorSource(sensorid = id, update_interval = 100)
+ templist = sensors.getSensorsList(sensors.TYPE_TEMPERATURE)
+ tempcount = len(templist)
+ fanlist = sensors.getSensorsList(sensors.TYPE_FAN_RPM)
+ fancount = len(fanlist)
+
+ for count in range(8):
+ if count < tempcount:
+ id = templist[count]
+ self["SensorTempText%d" % count] = StaticText(sensors.getSensorName(id))
+ self["SensorTemp%d" % count] = SensorSource(sensorid = id)
+ else:
+ self["SensorTempText%d" % count] = StaticText("")
+ self["SensorTemp%d" % count] = SensorSource()
+
+ if count < fancount:
+ id = fanlist[count]
+ self["SensorFanText%d" % count] = StaticText(sensors.getSensorName(id))
+ self["SensorFan%d" % count] = SensorSource(sensorid = id)
+ else:
+ self["SensorFanText%d" % count] = StaticText("")
+ self["SensorFan%d" % count] = SensorSource()
self.list = []
- if fancontrol.getFanCount() > 0:
- self.list.append(getConfigListEntry(_("Fan Voltage"), fancontrol.getConfig(0).vlt))
- self.list.append(getConfigListEntry(_("Fan PWM"), fancontrol.getConfig(0).pwm))
+ for count in range(fancontrol.getFanCount()):
+ self.list.append(getConfigListEntry(_("Fan %d Voltage") % (count + 1), fancontrol.getConfig(count).vlt))
+ self.list.append(getConfigListEntry(_("Fan %d PWM") % (count + 1), fancontrol.getConfig(count).pwm))
ConfigListScreen.__init__(self, self.list, session = self.session)
#self["config"].list = self.list
#self["config"].setList(self.list)