diff options
| author | thedoc <thedoc@atom.(none)> | 2009-12-10 14:52:36 +0100 |
|---|---|---|
| committer | thedoc <thedoc@atom.(none)> | 2009-12-10 14:52:36 +0100 |
| commit | 710b3ea19993c9fc15e38a57101494eb962c606c (patch) | |
| tree | 93c940ef8e9f9e74890fb5a1f082c82d896c7de6 /lib/python | |
| parent | 67858ed10ece500b2cf68dafb39886a0b873ec4c (diff) | |
| download | enigma2-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.py | 2 | ||||
| -rw-r--r-- | lib/python/Components/FanControl.py | 4 | ||||
| -rw-r--r-- | lib/python/Components/Sensors.py | 2 | ||||
| -rw-r--r-- | lib/python/Components/Sources/Sensor.py | 16 | ||||
| -rw-r--r-- | lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py | 96 |
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) |
