def main():
    args = utils.ExampleArgumentParser().parse_args()
    utils.config_logging(args)

    if args.socket_addr:
        client = SocketClient(args.socket_addr)
    elif args.spi:
        client = SPIClient()
    else:
        port = args.serial_port or utils.autodetect_serial_port()
        client = UARTClient(port)

    config = configs.IQServiceConfig()
    config.sensor = args.sensors
    config.range_interval = [0.2, 0.6]
    config.update_rate = 50

    info = client.start_session(config)

    interrupt_handler = utils.ExampleInterruptHandler()
    print("Press Ctrl-C to end session")

    fc = utils.FreqCounter(num_bits=(4 * 8 * info["data_length"]))

    while not interrupt_handler.got_signal:
        info, data = client.get_next()
        fc.tick()

    print("\nDisconnecting...")
    client.disconnect()
Exemple #2
0
def get_sensor_config():
    config = configs.IQServiceConfig()
    config.range_interval = [0.3, 0.8]
    config.update_rate = 80
    config.gain = 0.5
    config.repetition_mode = configs.IQServiceConfig.RepetitionMode.SENSOR_DRIVEN
    return config
def main():
    args = utils.ExampleArgumentParser().parse_args()
    utils.config_logging(args)

    if args.socket_addr:
        client = SocketClient(args.socket_addr)
    elif args.spi:
        client = SPIClient()
    else:
        port = args.serial_port or utils.autodetect_serial_port()
        client = UARTClient(port)

    client.squeeze = False

    config = configs.IQServiceConfig()
    config.sensor = args.sensors
    config.update_rate = 60

    session_info = client.setup_session(config)
    depths = utils.get_range_depths(config, session_info)

    fig_updater = ExampleFigureUpdater(depths)
    plot_process = PlotProcess(fig_updater)
    plot_process.start()

    client.start_session()

    interrupt_handler = utils.ExampleInterruptHandler()
    print("Press Ctrl-C to end session")

    while not interrupt_handler.got_signal:
        info, data = client.get_next()

        plot_data = {
            "amplitude": np.abs(data),
            "phase": np.angle(data),
        }

        try:
            plot_process.put_data(plot_data)
        except PlotProccessDiedException:
            break

    print("Disconnecting...")
    plot_process.close()
    client.disconnect()
Exemple #4
0
def main():
    args = utils.ExampleArgumentParser().parse_args()
    utils.config_logging(args)

    if args.socket_addr:
        client = SocketClient(args.socket_addr)
    elif args.spi:
        client = SPIClient()
    else:
        port = args.serial_port or utils.autodetect_serial_port()
        client = UARTClient(port)

    client.squeeze = False

    sensor_config = configs.IQServiceConfig()
    sensor_config.sensor = args.sensors
    sensor_config.range_interval = [0.2, 1.0]
    sensor_config.profile = sensor_config.Profile.PROFILE_2
    sensor_config.sampling_mode = sensor_config.SamplingMode.B
    sensor_config.hw_accelerated_average_samples = 20
    sensor_config.downsampling_factor = 2

    session_info = client.setup_session(sensor_config)

    pg_updater = PGUpdater(sensor_config, None, session_info)
    pg_process = PGProcess(pg_updater)
    pg_process.start()

    client.start_session()

    interrupt_handler = utils.ExampleInterruptHandler()
    print("Press Ctrl-C to end session")

    while not interrupt_handler.got_signal:
        data_info, data = client.get_next()

        try:
            pg_process.put_data(data)
        except PGProccessDiedException:
            break

    print("Disconnecting...")
    pg_process.close()
    client.disconnect()
Exemple #5
0
def get_sensor_config():
    config = configs.IQServiceConfig()
    config.range_interval = [0.4, 0.8]
    config.update_rate = 60
    config.gain = 0.6
    return config
Exemple #6
0
 def __init__(self, demo_ctrl, params):
     super().__init__(demo_ctrl, self.detector_name)
     self.config = configs.IQServiceConfig()
     self.update_config(params)
Exemple #7
0
def main():
    args = utils.ExampleArgumentParser(num_sens=1).parse_args()
    utils.config_logging(args)

    if args.socket_addr:
        client = SocketClient(args.socket_addr)
    elif args.spi:
        client = SPIClient()
    else:
        port = args.serial_port or utils.autodetect_serial_port()
        client = UARTClient(port)

    config = configs.IQServiceConfig()
    config.sensor = args.sensors
    config.update_rate = 10

    session_info = client.setup_session(config)
    depths = utils.get_range_depths(config, session_info)

    amplitude_y_max = 1000

    fig, (amplitude_ax, phase_ax) = plt.subplots(2)
    fig.set_size_inches(8, 6)
    fig.canvas.set_window_title("Acconeer matplotlib example")

    for ax in [amplitude_ax, phase_ax]:
        ax.set_xlabel("Depth (m)")
        ax.set_xlim(config.range_interval)
        ax.grid(True)

    amplitude_ax.set_ylabel("Amplitude")
    amplitude_ax.set_ylim(0, 1.1 * amplitude_y_max)
    phase_ax.set_ylabel("Phase")
    utils.mpl_setup_yaxis_for_phase(phase_ax)

    amplitude_line = amplitude_ax.plot(depths, np.zeros_like(depths))[0]
    phase_line = phase_ax.plot(depths, np.zeros_like(depths))[0]

    fig.tight_layout()
    plt.ion()
    plt.show()

    interrupt_handler = utils.ExampleInterruptHandler()
    print("Press Ctrl-C to end session")

    client.start_session()

    while not interrupt_handler.got_signal:
        info, data = client.get_next()

        amplitude = np.abs(data)
        phase = np.angle(data)

        max_amplitude = np.max(amplitude)
        if max_amplitude > amplitude_y_max:
            amplitude_y_max = max_amplitude
            amplitude_ax.set_ylim(0, 1.1 * max_amplitude)

        amplitude_line.set_ydata(amplitude)
        phase_line.set_ydata(phase)

        if not plt.fignum_exists(1):  # Simple way to check if plot is closed
            break

        fig.canvas.flush_events()

    print("Disconnecting...")
    plt.close()
    client.disconnect()
def get_sensor_config():
    config = configs.IQServiceConfig()
    config.range_interval = [0.2, 0.8]
    config.update_rate = 30
    return config
def main():
    parser = utils.ExampleArgumentParser()
    parser.add_argument("-t", "--temp", type=str, required=True)
    parser.add_argument("-l", "--label", type=str,
                        required=False)  # Sätt till true sedan
    parser.add_argument("-o", "--output-file", type=str, required=True)
    parser.add_argument("-lim", "--limit-frames", type=int)
    #parser.add_argument("-a", "--angel", type=str, required=False)
    #parser.add_argument("-d", "--distance", type=str, required=True)
    args = parser.parse_args()
    utils.config_logging(args)

    try:
        float(args.temp)
    except:
        print("Temp value not a float. Make sure you use . instead of , !")
        sys.exit(1)

    valid_arguments = ["snow", "wet", "ice", "dry", "metal"]
    if args.label.lower() not in valid_arguments:
        print("Not a valid label. Only", *valid_arguments,
              sep=", "), print("are accepted labels!")
        sys.exit(1)

    if os.path.exists(args.output_file):
        print("File '{}' already exists, won't overwrite".format(
            args.output_file))
        sys.exit(1)

    _, ext = os.path.splitext(args.output_file)
    if ext.lower() not in [".h5", ".npz"]:
        print("Unknown format '{}'".format(ext))
        sys.exit(1)

    if args.limit_frames is not None and args.limit_frames < 1:
        print("Frame limit must be at least 1")
        sys.exit(1)

    if args.socket_addr:
        client = SocketClient(args.socket_addr)
    elif args.spi:
        client = SPIClient()
    else:
        port = args.serial_port or utils.autodetect_serial_port()
        client = UARTClient(port)

    config = configs.IQServiceConfig()
    config.sensor = args.sensors
    config.update_rate = 650  #Ändra samplingsfrekvens här
    config.range_interval = [0.06, 0.5]  #Avståndsintervall i meter
    config.profile = config.Profile.PROFILE_1
    config.repetition_mode = config.RepetitionMode.SENSOR_DRIVEN

    session_info = client.setup_session(config)

    recorder = recording.Recorder(sensor_config=config,
                                  session_info=session_info,
                                  temp=args.temp,
                                  label=args.label.lower())
    #angel=args.angel,
    #distance=args.distance
    client.start_session()

    interrupt_handler = utils.ExampleInterruptHandler()
    print("Press Ctrl-C to end session")

    i = 0
    while not interrupt_handler.got_signal:
        data_info, data = client.get_next()
        recorder.sample(data_info, data)

        i += 1

        if args.limit_frames:
            print("Sampled {:>4}/{}".format(i, args.limit_frames),
                  end="\r",
                  flush=True)

            if i >= args.limit_frames:
                break
        else:
            print("Sampled {:>4}".format(i), end="\r", flush=True)

    client.disconnect()

    record = recorder.close()
    recording.save(args.output_file, record)
    print("Saved to '{}'".format(args.output_file))