Implementa SensorTendencia, SensorTemperatura y SensorPresion.
Con esto se terminan todos los sensores. Para calcular la tendencia se aproxima
una recta por cuadrados mínimos y a la pendiente se le calcula la arcotangente
(dividido pi/2) para dejarlo en el rango (-1, 1) (siendo +/-1 pendiente infinita
positiva o negativa respectivamente y 0 constante).
Módulo para tener propiedades y métodos sincronizadas
Este módulo provee una clase Synchronized que a través de magia de metaclases
crea propiedades sincronizadas utilizando mutex. Los atributos sincronizados se
declaran como atributos de clase como instancias de SyncProp. Por ejemplo:
from sync import *
class SyncObj(Synchronized):
syncattr = SyncProp("Descripción del atributo")
o = SyncObj()
o.syncattr = 1 # está rodeado de un mutex
También se provee un wrapper para métodos que puede usarse como decorator:
class SyncObj(Synchronized):
@synchronized
def syncmethod(self):
# Hace cosas
o = SyncObj()
o.syncmethod() # está rodeado de un mutex