3 from Components.config import config, ConfigSubList, ConfigSubsection, ConfigSlider
4 from Tools.BoundFunction import boundFunction
7 # ATM there's only support for one fan
9 if os.path.exists("/proc/stb/fp/fan_vlt") or os.path.exists("/proc/stb/fp/fan_pwm") or os.path.exists("/proc/stb/fp/fan_speed"):
15 def createConfig(self):
16 def setVlt(fancontrol, fanid, configElement):
17 fancontrol.setVoltage(fanid, configElement.value)
18 def setPWM(fancontrol, fanid, configElement):
19 fancontrol.setPWM(fanid, configElement.value)
21 config.fans = ConfigSubList()
22 for fanid in range(self.getFanCount()):
23 default_vlt = self.getVoltage(fanid)
24 default_pwm = self.getPWM(fanid)
25 fan = ConfigSubsection()
26 fan.vlt = ConfigSlider(default = 16, increment = 5, limits = (0, 255))
27 fan.pwm = ConfigSlider(default = 0, increment = 5, limits = (0, 255))
28 fan.vlt.addNotifier(boundFunction(setVlt, self, fanid))
29 fan.pwm.addNotifier(boundFunction(setPWM, self, fanid))
30 config.fans.append(fan)
32 def getConfig(self, fanid):
33 return config.fans[fanid]
35 def getFanCount(self):
38 def hasRPMSensor(self, fanid):
39 return os.path.exists("/proc/stb/fp/fan_speed")
41 def hasFanControl(self, fanid):
42 return os.path.exists("/proc/stb/fp/fan_vlt") or os.path.exists("/proc/stb/fp/fan_pwm")
44 def getFanSpeed(self, fanid):
45 f = open("/proc/stb/fp/fan_speed", "r")
46 value = int(f.readline().strip()[:-4])
50 def getVoltage(self, fanid):
51 f = open("/proc/stb/fp/fan_vlt", "r")
52 value = int(f.readline().strip(), 16)
56 def setVoltage(self, fanid, value):
59 f = open("/proc/stb/fp/fan_vlt", "w")
63 def getPWM(self, fanid):
64 f = open("/proc/stb/fp/fan_pwm", "r")
65 value = int(f.readline().strip(), 16)
69 def setPWM(self, fanid, value):
72 f = open("/proc/stb/fp/fan_pwm", "w")
76 fancontrol = FanControl()