def sample(self, sht_datum=None): # temperature... pt1000_datum = self.sample_pt1000() temp = self.sample_temp(sht_datum) # gases... samples = [] no2_sample = None for sensor_index in range(len(self.__sensors)): sensor = self.__sensors[sensor_index] if sensor is None: continue # cross-sensitivity sample... if sensor.has_no2_cross_sensitivity(): no2_sample = AFE.__no2_sample(samples) # sample... sample = sensor.sample(self, temp, sensor_index, no2_sample) samples.append((sensor.gas_name, sample)) return AFEDatum(pt1000_datum, *samples)
def sample(self, sht_datum=None): # temperature... temp = self.sample_temp(sht_datum) # gases... samples = [] # NO2... sample = self.__sensors[0].sample(self, temp, 0, None) samples.append(('NO2', sample)) # H2S... we_v = self.sample_raw_wrk(1, self.__H2S_GAIN_INDEX) sample = D4Datum(we_v) samples.append(('H2S', sample)) # CO... we_v = self.sample_raw_wrk(2, self.__CO_GAIN_INDEX) sample = D4Datum(we_v) samples.append(('CO', sample)) return AFEDatum(None, *samples)
def null_datum(cls): samples = [ ('NO2', A4Datum(None, None)), ('H2S', D4Datum(None)), ('CO', D4Datum(None)), ] return AFEDatum(None, *samples)
def sample_station(self, sn, sht_datum=None): index = sn - 1 pt1000_datum = self.sample_temp() temp = pt1000_datum.temp if sht_datum is None else sht_datum.temp # use SHT temp if available sensor = self.__sensors[index] if sensor is None: return AFEDatum(pt1000_datum) # cross-sensitivity sample... if sensor.has_no2_cross_sensitivity(): no2_index, no2_sensor = self.__no2_sensor() no2_sample = no2_sensor.sample(self, temp, no2_index) else: no2_sample = None # sample... sample = sensor.sample(self, temp, index, no2_sample) return AFEDatum(pt1000_datum, (sensor.gas_name, sample))
def null_datum(self): pt1000_datum = self.sample_temp() samples = [] for sensor_index in range(len(self.__sensors)): sensor = self.__sensors[sensor_index] if sensor is None: continue samples.append((sensor.gas_name, sensor.null_datum())) return AFEDatum(pt1000_datum, *samples)
def sample_station(self, sn, sht_datum=None): # temperature... pt1000_datum = self.sample_pt1000() temp = self.sample_temp(sht_datum) # gas... index = sn - 1 sensor = self.__sensors[index] if sensor is None: return AFEDatum(pt1000_datum) # cross-sensitivity sample... if sensor.has_no2_cross_sensitivity(): no2_index, no2_sensor = self.__no2_sensor() no2_sample = no2_sensor.sample(self, temp, no2_index) else: no2_sample = None # sample... sample = sensor.sample(self, temp, index, no2_sample) return AFEDatum(pt1000_datum, (sensor.gas_name, sample))
def sample(self, sht_datum=None): pt1000_datum = self.sample_temp() temp = pt1000_datum.temp if sht_datum is None else sht_datum.temp # use SHT temp if available samples = [] no2_sample = None for sensor_index in range(len(self.__sensors)): sensor = self.__sensors[sensor_index] if sensor is None: continue # cross-sensitivity sample... if sensor.has_no2_cross_sensitivity(): no2_sample = AFE.__no2_sample(samples) # sample... sample = sensor.sample(self, temp, sensor_index, no2_sample) samples.append((sensor.gas_name, sample)) return AFEDatum(pt1000_datum, *samples)
a4_2 = A4Datum(1.234567, 6.543210) print(a4_2) a4_3 = A4Datum(2.345678, 5.432101) print(a4_3) pid = PIDDatum(0.123456, 23) print(pid) print("-") sn1 = sensors[0].gas_name sn2 = sensors[1].gas_name sn3 = sensors[2].gas_name sn4 = sensors[3].gas_name afe = AFEDatum(pt1, (sn1, a4_1), (sn2, a4_2), (sn3, a4_3), (sn4, pid)) print(afe) print("-") # -------------------------------------------------------------------------------------------------------------------- now = LocalizedDatetime.now() pmx = PMxDatum(now, 11, 22, 33) print(pmx) print("-") # -------------------------------------------------------------------------------------------------------------------- now = LocalizedDatetime.now() print(now)