--- /dev/null
+from Components.FanControl import fancontrol
+
+class Sensors:
+ # (type, name, unit, directory)
+ TYPE_TEMPERATURE = 0
+ # (type, name, unit, fanid)
+ TYPE_FAN_RPM = 1
+
+ def __init__(self):
+ # (type, name, unit, sensor_specific_dict/list)
+ self.sensors_list = []
+ self.addSensors()
+
+ def getSensorsCount(self, type = None):
+ if type is None:
+ return len(self.sensors_list)
+ count = 0
+ for sensor in self.sensors_list:
+ if sensor[0] == type:
+ count += 1
+ return count
+
+ # returns a list of sensorids of type "type"
+ def getSensorsList(self, type = None):
+ if type is None:
+ return range(len(self.sensors_list))
+ list = []
+ for sensorid in range(len(self.sensors_list)):
+ if self.sensors_list[sensorid][0] == type:
+ list.append(sensorid)
+ return list
+
+
+ def getSensorType(self, sensorid):
+ return self.sensors_list[sensorid][0]
+
+ def getSensorName(self, sensorid):
+ return self.sensors_list[sensorid][1]
+
+ def getSensorValue(self, sensorid):
+ value = -1
+ sensor = self.sensors_list[sensorid]
+ if sensor[0] == self.TYPE_TEMPERATURE:
+ f = open("%s/value" % sensor[3], "r")
+ value = int(f.readline().strip())
+ f.close()
+ elif sensor[0] == self.TYPE_FAN_RPM:
+ value = fancontrol.getFanSpeed(sensor[3])
+ return value
+
+ def getSensorUnit(self, sensorid):
+ return self.sensors_list[sensorid][2]
+
+ def addSensors(self):
+ import os
+ if os.path.exists("/proc/stb/sensors"):
+ for dirname in os.listdir("/proc/stb/sensors"):
+ if dirname.find("temp", 0, 4) == 0:
+ f = open("/proc/stb/sensors/%s/name" % dirname, "r")
+ name = f.readline().strip()
+ f.close()
+
+ f = open("/proc/stb/sensors/%s/unit" % dirname, "r")
+ unit = f.readline().strip()
+ f.close()
+
+ 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))
+
+sensors = Sensors()
\ No newline at end of file