Example #1
0
def main():
    scpm.init_logger()

    sampler = Sampler()
    try:
        sampler.open()
        sampler.start()
        try:
            calibration = scpm.load_calibration_file()
        except:
            calibration = None
        adc_data = sampler.adc_data_queue.get()
    except KeyboardInterrupt:
        sampler.terminate()
    else:
        sampler.terminate()
        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)
        if calibration is not None:
            calcd_data = scpm.calculate_calibrated_power(
                split_adc_data, adc_rms, calibration)
            print("")
            scpm.print_power(calcd_data)
        voltage, current = scpm.convert_adc_to_numpy_float(split_adc_data)
        voltage, current = scpm.shift_phase(voltage, current, calibration)
        scpm.plot(voltage, current, calibration)
        logging.shutdown()
Example #2
0
def main():
    scpm.init_logger()
    
    sampler = Sampler()
    try:
        sampler.open()
        sampler.start()
        try:
            calibration = scpm.load_calibration_file()
        except:
            calibration = None
        adc_data = sampler.adc_data_queue.get()
    except KeyboardInterrupt:
        sampler.terminate()
    else:
        sampler.terminate()
        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)
        if calibration is not None:
            calcd_data = scpm.calculate_calibrated_power(split_adc_data, 
                                                         adc_rms, calibration)
            print("")
            scpm.print_power(calcd_data)
        voltage, current = scpm.convert_adc_to_numpy_float(split_adc_data)
        voltage, current = scpm.shift_phase(voltage, current, calibration)
        scpm.plot(voltage, current, calibration)
        logging.shutdown()
Example #3
0
def main():
    args = setup_argparser()

    scpm.init_logger()

    wavfile = uncompress_and_load(args.input_file)
    samples_per_degree = (wavfile.getframerate() / config.MAINS_HZ) / 360
    calibration = scpm.load_calibration_file(
        filename=args.calibration_file, samples_per_degree=samples_per_degree)
    adc_data = get_adc_data(wavfile)
    adc_data.sample_width = wavfile.getsampwidth()
    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)
    voltage, current = scpm.convert_adc_to_numpy_float(split_adc_data)
    print(len(voltage), len(current))

    if calibration is None:
        print("No calibration data loaded.")
    else:
        calcd_data = scpm.calculate_calibrated_power(split_adc_data, adc_rms,
                                                     calibration)

        print("")
        scpm.print_power(calcd_data)

        if args.correct_phase:
            print("Correcting phase by {} degrees = {} samples.".format(
                calibration.phase_diff, calibration.phase_diff_n_samples))
            voltage, current = scpm.shift_phase(voltage, current, calibration)
        else:
            print("Not correcting phase difference"
                  " (use --correct-phase to correct phase)")

    scpm.plot(voltage, current, calibration)

    wavfile.close()
def main():
    args = setup_argparser()

    scpm.init_logger()
    
    wavfile = uncompress_and_load(args.input_file)
    samples_per_degree = (wavfile.getframerate() / config.MAINS_HZ) / 360
    calibration = scpm.load_calibration_file(filename=args.calibration_file,
                                             samples_per_degree=samples_per_degree)
    adc_data = get_adc_data(wavfile)
    adc_data.sample_width = wavfile.getsampwidth()
    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)
    voltage, current = scpm.convert_adc_to_numpy_float(split_adc_data)    
    print(len(voltage), len(current))

    if calibration is None:
        print("No calibration data loaded.")
    else:
        calcd_data = scpm.calculate_calibrated_power(split_adc_data, 
                                                adc_rms, calibration)
        
        print("")
        scpm.print_power(calcd_data)
    
        if args.correct_phase:
            print("Correcting phase by {} degrees = {} samples."
                  .format(calibration.phase_diff, calibration.phase_diff_n_samples))
            voltage, current = scpm.shift_phase(voltage, current, calibration)
        else:
            print("Not correcting phase difference"
                  " (use --correct-phase to correct phase)")

    scpm.plot(voltage, current, calibration)

    wavfile.close()