Esempio n. 1
0
    def test_find_time(self):
        q = Queue()

        va = scpm.find_time(q, 1002)
        self.assertEqual(va, None)

        for i in range(1, 10):
            q.put(Bunch(time=1000 + i, data=i * 10))

        va = scpm.find_time(q, 1003)
        self.assertEqual(va, Bunch(time=1003, data=30))

        va = scpm.find_time(q, 1002)
        self.assertEqual(va, None)

        va = scpm.find_time(q, 1003)
        self.assertEqual(va, None)

        va = scpm.find_time(q, 1004)
        self.assertEqual(va, None)

        va = scpm.find_time(q, 1009)
        self.assertEqual(va, Bunch(time=1009, data=90))

        va = scpm.find_time(q, 9999)
        self.assertEqual(va, None)
    def test_find_time(self):
        q = Queue()
        
        va = scpm.find_time(q, 1002)
        self.assertEqual(va, None)
        
        for i in range(1,10):
            q.put(Bunch(time=1000 + i, data=i*10))
        
        va = scpm.find_time(q, 1003)
        self.assertEqual(va, Bunch(time=1003, data=30))
           
        va = scpm.find_time(q, 1002)
        self.assertEqual(va, None)
        
        va = scpm.find_time(q, 1003)
        self.assertEqual(va, None)
        
        va = scpm.find_time(q, 1004)
        self.assertEqual(va, None)

        va = scpm.find_time(q, 1009)
        self.assertEqual(va, Bunch(time=1009, data=90))
        
        va = scpm.find_time(q, 9999)
        self.assertEqual(va, None)
Esempio n. 3
0
def main():
    scpm.init_logger()
    sampler = Sampler()
    wu = WattsUp()
    
    try:
        sampler.open()
        sampler.start()
        wu.open()        
        calibration = scpm.load_calibration_file()
        log.info("Comparing SCPM data with WattsUp data..."
                 " press CTRL+C to stop.")
        while True:
            wu_data = wu.get() # blocking
            if wu_data is None:
                log.warn("wu_data is none!")
                continue
            
            time.sleep(config.RECORD_SECONDS)
            # Now get ADC data recorded at wu_data.time
            adc_data = scpm.find_time(sampler.adc_data_queue, wu_data.time)
            if adc_data:
                print("")
                adc_data = scpm.join_frames_and_widen(adc_data)
                split_adc_data = scpm.split_channels(adc_data)
                adc_rms = scpm.calculate_adc_rms(split_adc_data)
                calcd_data = scpm.calculate_calibrated_power(split_adc_data, 
                                                        adc_rms, calibration)
                
                scpm.print_power(calcd_data, wu_data)
            else:
                log.warn("Could not find ADC data for time {}"
                         .format(wu_data.time))

    except KeyboardInterrupt:
        pass
    except Exception:
        log.exception("")
        wu.terminate()
        sampler.terminate()
        raise
    
    wu.terminate()
    sampler.terminate()
Esempio n. 4
0
def main():
    scpm.init_logger()
    sampler = Sampler()
    wu = WattsUp()

    try:
        sampler.open()
        sampler.start()
        wu.open()
        calibration = scpm.load_calibration_file()
        log.info("Comparing SCPM data with WattsUp data..."
                 " press CTRL+C to stop.")
        while True:
            wu_data = wu.get()  # blocking
            if wu_data is None:
                log.warn("wu_data is none!")
                continue

            time.sleep(config.RECORD_SECONDS)
            # Now get ADC data recorded at wu_data.time
            adc_data = scpm.find_time(sampler.adc_data_queue, wu_data.time)
            if adc_data:
                print("")
                adc_data = scpm.join_frames_and_widen(adc_data)
                split_adc_data = scpm.split_channels(adc_data)
                adc_rms = scpm.calculate_adc_rms(split_adc_data)
                calcd_data = scpm.calculate_calibrated_power(
                    split_adc_data, adc_rms, calibration)

                scpm.print_power(calcd_data, wu_data)
            else:
                log.warn("Could not find ADC data for time {}".format(
                    wu_data.time))

    except KeyboardInterrupt:
        pass
    except Exception:
        log.exception("")
        wu.terminate()
        sampler.terminate()
        raise

    wu.terminate()
    sampler.terminate()