def __init__(self, cfg=None): self.cfg = cfg self.last_measure_time = None self.previous_measure_time = None self.wind_trend = None self.pressure_trend = None # Station data self.idx = None self.status = -9999 self.wind_dir = None self.wind_ave = None self.wind_gust = None self.temp_out = None self.hum_out = None self.abs_pressure = None self.rel_pressure = None self.rain = None self.rain_rate = None self.rain_rate_24h = None self.rain_rate_1h = None self.temp_in = None self.hum_in = None self.uv = None self.illuminance = None if (cfg != None): self.rb_wind_dir = TTLib.RingBuffer( cfg.number_of_measure_for_wind_dir_average) self.rb_wind_trend = TTLib.RingBuffer( cfg.number_of_measure_for_wind_trend) #calculated values self.wind_dir_code = None self.wind_chill = None self.temp_apparent = None self.dew_point = None self.cloud_base_altitude = None self.previous_rain = None self.wind_dir_ave = None self.battery = None if (not self.getLastTodayFromDB()): self.ResetStatistic()
def __init__(self, cfg): threading.Thread.__init__(self) sensor.Sensor.__init__(self, cfg) self.cfg = cfg self.bTimerRun = 0 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(self.__PIN_A, GPIO.IN) # wind Speed GPIO.setup(self.__PIN_B1, GPIO.IN) # B1 GPIO.setup(self.__PIN_B2, GPIO.IN) # B2 if (self.cfg.sensor_type.upper() != "NEVIO4"): GPIO.setup(self.__PIN_B3, GPIO.IN) # B3 if (self.cfg.sensor_type.upper() == "NEVIO16"): GPIO.setup(self.__PIN_B0, GPIO.IN) # B0 if (self.cfg.sensor_type.upper() == "NEVIO16S"): GPIO.setup(self.__PIN_B0, GPIO.IN) # B0 if (self.cfg.sensor_type.upper() == "NEVIO16W"): GPIO.setup(self.__PIN_B0, GPIO.IN) # B0 if (self.cfg.sensor_type.upper() == "NEVIO16TT"): GPIO.setup(self.__PIN_B0, GPIO.IN) # B0 self.rb_WindSpeed = TTLib.RingBuffer( self.cfg.number_of_measure_for_wind_average_gust_calculation) self.active = True self.start()
def __init__(self, cfg): threading.Thread.__init__(self) sensor.Sensor.__init__(self, cfg) self.libTX23 = cdll.LoadLibrary('./TX23/libTX23.so') if (self.libTX23.init() != 1): log("Error initializing TX23 library.Try to continue") self.cfg = cfg self.bTimerRun = 0 self.rb_WindSpeed = TTLib.RingBuffer( self.cfg.number_of_measure_for_wind_average_gust_calculation) self.currentiDir = None self.active = True self.start()
def __init__(self, cfg): self.cfg = cfg threading.Thread.__init__(self) sensor.Sensor.__init__(self, cfg) myrevision = getrevision() if (myrevision == "a21041" or myrevision == "a01041"): self.model = 2 else: self.model = 1 self.model = 2 # ALWAYS USE SPI if (self.model == 2): # Open SPI bus log("Initializing SPI un device : /dev/spidev%d.0" % (cfg.mcp3002_spiDev)) self.spi = spidev.SpiDev() self.spi.open(cfg.mcp3002_spiDev, 0) else: log("Initializing libMCP") self.libMCP = cdll.LoadLibrary('./mcp3002/libMCP3002.so') if (self.libMCP.init() != 0): log("Error initializing mcp3002 library.Try to continue") self.bTimerRun = 0 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(self.__PIN_A, GPIO.IN) # wind Speed self.rb_WindSpeed = TTLib.RingBuffer( self.cfg.number_of_measure_for_wind_average_gust_calculation) self.active = True self.start()
def __init__(self, cfg): threading.Thread.__init__(self) sensor.Sensor.__init__(self, cfg) self.libMCP = cdll.LoadLibrary('./mcp3002/libMCP3002.so') if (self.libMCP.init() != 0): log("Error initializing mcp3002 library.Try to continue") self.cfg = cfg self.bTimerRun = 0 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(self.__PIN_A, GPIO.IN) # wind Speed self.rb_WindSpeed = TTLib.RingBuffer( self.cfg.number_of_measure_for_wind_average_gust_calculation) self.map = intervalmap.intervalmap() self.map[0:75] = 5 self.map[75:89] = 3 self.map[89:111] = 4 self.map[111:156] = 7 self.map[156:214] = 6 self.map[214:264] = 9 self.map[264:342] = 8 self.map[342:424] = 1 self.map[424:514] = 2 self.map[514:593] = 11 self.map[593:640] = 10 self.map[640:712] = 15 self.map[712:769] = 0 self.map[769:815] = 13 self.map[815:870] = 14 self.map[870:1024] = 12 self.active = True self.start()
def __init__(self, cfg): self.cfg = cfg self.__PIN_A = cfg.anemometer_pin threading.Thread.__init__(self) sensor.Sensor.__init__(self, cfg) myrevision = getrevision() if (myrevision == "a21041" or myrevision == "a01041"): self.model = 2 else: self.model = 1 self.model = 2 # ALWAYS USE SPI if (self.model == 2): # Open SPI bus log("Initializing SPI un device : /dev/spidev%d.0" % (cfg.mcp3002_spiDev)) self.spi = spidev.SpiDev() self.spi.open(cfg.mcp3002_spiDev, 0) self.spi.max_speed_hz = 1200000 # 1.2 MHz self.spi.mode = 0 else: log("Initializing libMCP") self.libMCP = cdll.LoadLibrary('./mcp3002/libMCP3002.so') if (self.libMCP.init() != 0): log("Error initializing mcp3002 library.Try to continue") self.bTimerRun = 0 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(self.__PIN_A, GPIO.IN, pull_up_down=GPIO.PUD_UP) # wind Speed # bouncetime = 960 / MaxSpeedKmh # MaxSpeedKmh = 960 / bouncetime if (self.windspeed_interrupt_mode == 1): log("Sendor Argentine: Using Interrupt mode ") GPIO.add_event_detect(self.__PIN_A, GPIO.BOTH, callback=self.increaserev, bouncetime=5) else: log("Sendor Argentine: Using pooling mode ") self.rb_WindSpeed = TTLib.RingBuffer( self.cfg.number_of_measure_for_wind_average_gust_calculation) self.map = intervalmap.intervalmap() #PCE-SENSOR-C Cucco per oriantare correttamente i sensori if (self.cfg.sensor_type.upper() == "PCE-SENSOR-C"): self.map[0:75] = 7 self.map[75:89] = 5 self.map[89:111] = 6 self.map[111:156] = 9 self.map[156:214] = 8 self.map[214:264] = 11 self.map[264:342] = 10 self.map[342:424] = 3 self.map[424:514] = 4 self.map[514:593] = 13 self.map[593:640] = 12 self.map[640:712] = 1 self.map[712:769] = 2 self.map[769:815] = 15 self.map[815:870] = 0 self.map[870:1024] = 14 else: self.map[0:75] = 5 self.map[75:89] = 3 self.map[89:111] = 4 self.map[111:156] = 7 self.map[156:214] = 6 self.map[214:264] = 9 self.map[264:342] = 8 self.map[342:424] = 1 self.map[424:514] = 2 self.map[514:593] = 11 self.map[593:640] = 10 self.map[640:712] = 15 self.map[712:785] = 0 self.map[785:815] = 13 self.map[815:870] = 14 self.map[870:1024] = 12 self.active = True self.start()
def __init__(self,cfg ): threading.Thread.__init__(self) sensor.Sensor.__init__(self,cfg ) myrevision = getrevision() if ( myrevision == "a21041" or myrevision == "a01041" ): self.model = 2 else: self.model = 1 #print myrevision if ( self.model == 2 ) : # Open SPI bus log("Initializing SPI") self.spi = spidev.SpiDev() self.spi.open(0,0) else: log("Initializing libMCP") self.libMCP = cdll.LoadLibrary('./mcp3002/libMCP3002.so') if ( self.libMCP.init() != 0 ): log("Error initializing mcp3002 library.Try to continue") self.cfg = cfg self.bTimerRun = 0 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(self.__PIN_A, GPIO.IN) # wind Speed self.rb_WindSpeed = TTLib.RingBuffer(self.cfg.number_of_measure_for_wind_average_gust_calculation) self.map = intervalmap.intervalmap() #PCE-SENSOR-C Cucco per oriantare correttamente i sensori if ( self.cfg.sensor_type.upper() == "PCE-SENSOR-C" ): self.map[0:75] = 7 self.map[75:89] = 5 self.map[89:111] = 6 self.map[111:156] = 9 self.map[156:214] = 8 self.map[214:264] = 11 self.map[264:342] = 10 self.map[342:424] = 3 self.map[424:514] = 4 self.map[514:593] = 13 self.map[593:640] = 12 self.map[640:712] = 1 self.map[712:769] = 2 self.map[769:815] = 15 self.map[815:870] = 0 self.map[870:1024]= 14 else: self.map[0:75] = 5 self.map[75:89] = 3 self.map[89:111] = 4 self.map[111:156] = 7 self.map[156:214] = 6 self.map[214:264] = 9 self.map[264:342] = 8 self.map[342:424] = 1 self.map[424:514] = 2 self.map[514:593] = 11 self.map[593:640] = 10 self.map[640:712] = 15 self.map[712:785] = 0 self.map[785:815] = 13 self.map[815:870] = 14 self.map[870:1024]= 12 self.active = True self.start()