]> git.llucax.com Git - z.facultad/75.59/weathemulator.git/commitdiff
Agrega sensor calibrado.
authorLeandro Lucarella <luca@llucax.hn.org>
Sun, 2 Oct 2005 04:18:12 +0000 (04:18 +0000)
committerLeandro Lucarella <luca@llucax.hn.org>
Sun, 2 Oct 2005 04:18:12 +0000 (04:18 +0000)
src/sensor.py

index e677b6b3f905f76f54540e65659d7c091db59f69..f073387bc98a1286818f8fa13239dbfc71cbaaa6 100644 (file)
@@ -117,10 +117,43 @@ class SensorDireccionViento(Sensor):
             self, self.valorActual)
 
 
+class SensorCalibrado(Sensor):
+
+    valorBruto = SyncProp("Valor en bruto leido del dispositivo.")
+    valorBajo = SyncProp("Valor bajo de calibrado como tupla (valorBruto, " \
+        "valorCalibrado).")
+    valorAlto = SyncProp("Valor alto de calibrado como tupla (valorBruto, " \
+        "valorCalibrado).")
+
+    def __init__(self, valorBajo, valorAlto, sigma, periodo):
+        self.valorBajo = valorBajo
+        self.valorAlto = valorAlto
+        Sensor.__init__(self, sigma, periodo)
+
+    def getValor(self):
+        "Simula la medición del dispositivo físico."
+        self.valorBruto = self.mu = Sensor.getValor(self)
+        (x1, y1) = self.valorBajo
+        (x2, y2) = self.valorAlto
+        return (y2 - y1) / (x2 - x1) * (self.mu - x1) + y1
+
+    def __repr__(self):
+        return "<%s valorActual=%s valorBruto=%f valorBajo=%s valorAlto=%s>" \
+            % (self.__class__.__name__, self, self.valorBruto, self.valorBajo,
+                self.valorAlto)
+
+
 if __name__ == '__main__':
     DEBUG = True
     sensor = SensorDireccionViento()
     sensor.setDaemon(True)
     sensor.start()
+    SensorCalibrado.initMu = lambda self: 10
+    sensor2 = SensorCalibrado((0.0,0.0), (100.0,100.0), 0.2, 0.5)
+    sensor2.setDaemon(True)
+    sensor2.start()
+    time.sleep(2)
+    sensor2.valorBajo = (0.0, -10.0)
+    sensor2.valorAlto = (100.0, 10.0)
     time.sleep(3)