{
  "radar": {
    "model": "librevna",
    "serial": "",
    "driver_mode": "mock",
    "mock_signal_hz": 5000000.0,
    "multi_device": {
      "slave_serials": [],
      "force_external_reference": false,
      "recovery_attempts": 3
    },
    "sweep": {
      "start_hz": 1000000.0,
      "stop_hz": 6000000000.0,
      "points": 201,
      "if_bandwidth_hz": 50000.0,
      "stimulus_power_dbm": -10.0
    }
  },
  "switches": {
    "port1": {
      "name": "port1",
      "driver_mode": "mock",
      "driver": "h7992",
      "radar_port": 1,
      "positions": 2,
      "default_position": 0,
      "gpio_chip": "/dev/gpiochip0",
      "pin_a": 17,
      "pin_b": 27,
      "invert_logic": false
    },
    "port2": {
      "name": "port2",
      "driver_mode": "mock",
      "driver": "h7992",
      "radar_port": 2,
      "positions": 4,
      "default_position": 0,
      "gpio_chip": "/dev/gpiochip0",
      "pin_a": 22,
      "pin_b": 23,
      "invert_logic": false
    }
  },
  "run": {
    "settling_ms": 0,
    "idle_sleep_ms": 2,
    "continuous": true,
    "processing_live_config_path": "python_app/runtime/processing_live.json",
    "locator_server": {
      "device_id": 3,
      "protocol_version": 1,
      "host": "0.0.0.0",
      "port": 8888,
      "max_payload_bytes": 65536,
      "client_queue_size": 32,
      "logger_name": "locator_runtime"
    },
    "combos": [
      {
        "input": 0,
        "output": 0
      },
      {
        "input": 1,
        "output": 0
      },
      {
        "input": 2,
        "output": 0
      },
      {
        "input": 3,
        "output": 0
      },
      {
        "input": 0,
        "output": 1
      },
      {
        "input": 1,
        "output": 1
      },
      {
        "input": 2,
        "output": 1
      },
      {
        "input": 3,
        "output": 1
      }
    ]
  },
  "preprocess": {
    "s21": {
      "calibration": {
        "set_name": "smoke_cal",
        "bundle_path": ""
      },
      "reference": {
        "set_name": "smoke_ref",
        "bundle_path": ""
      }
    },
    "s11": {
      "calibration": {
        "open": {
          "set_name": "",
          "bundle_path": ""
        },
        "short": {
          "set_name": "",
          "bundle_path": ""
        },
        "load": {
          "set_name": "",
          "bundle_path": ""
        }
      },
      "reference": {
        "set_name": "",
        "bundle_path": ""
      }
    },
    "notch": {
      "enabled": true,
      "bands_hz": [],
      "taper_width_hz": 40000000.0,
      "taper_type": "cosine"
    }
  },
  "gpr": {
    "relative_permittivity": 1.0,
    "tx_geometry": [
      {
        "output_pos": 0,
        "x_m": 0.905
      },
      {
        "output_pos": 1,
        "x_m": -0.905
      }
    ],
    "rx_geometry": [
      {
        "input_pos": 0,
        "x_m": -0.18
      },
      {
        "input_pos": 1,
        "x_m": 0.485
      },
      {
        "input_pos": 2,
        "x_m": -0.49
      },
      {
        "input_pos": 3,
        "x_m": 0.185
      }
    ]
  },
  "rings": {
    "raw": {
      "name": "/radar_raw_simulator",
      "capacity": 50,
      "slot_size_bytes": 2097152
    },
    "raw_tap": {
      "name": "/radar_raw_tap_simulator",
      "capacity": 50,
      "slot_size_bytes": 2097152
    },
    "preprocessed": {
      "name": "/radar_preprocessed_simulator",
      "capacity": 50,
      "slot_size_bytes": 2097152
    },
    "preprocessed_tap": {
      "name": "/radar_preprocessed_tap_simulator",
      "capacity": 50,
      "slot_size_bytes": 2097152
    },
    "results": {
      "name": "/radar_results_simulator",
      "capacity": 50,
      "slot_size_bytes": 2097152
    }
  },
  "gui": {
    "version": 1,
    "switches": {
      "combo_mode": "text",
      "combos_text": "0:0,1:0,2:0,3:0,0:1,1:1,2:1,3:1",
      "single_input": "0",
      "single_output": "0"
    },
    "processing": {
      "selected_mode": "gpr",
      "pass_through": {
        "show_magnitude": true,
        "show_phase": false,
        "fixed_y_enabled": false,
        "y_min_db": -100.0,
        "y_max_db": 0.0
      },
      "bscan": {
        "axis": "abs",
        "cut_m": 0.0,
        "max_depth_m": 3.0,
        "gain": 1.0,
        "start_freq_mhz": 100.0,
        "stop_freq_mhz": 6000.0,
        "subtract_mean_ascan": false
      },
      "gpr": {
        "input_positions": "0,1,2,3",
        "output_positions": "0,1",
        "min_depth_m": 2.0,
        "max_depth_m": 14.0,
        "range_comp_power": 0.28,
        "angle_comp_power": 0.1,
        "start_freq_mhz": 3000.0,
        "stop_freq_mhz": 6000.0,
        "background_subtract_enabled": true,
        "background_mean_count": 10,
        "remove_sidelobe_objects_enabled": false,
        "render_mode": "heatmap",
        "min_visible_score": 0.0,
        "visible_x_min_m": -2.0,
        "visible_x_max_m": 2.0,
        "visible_z_min_m": 0.0,
        "visible_z_max_m": 14.0
      },
      "legacy_gpr": {
        "mode": "point",
        "input_positions": "0,1,2,3",
        "output_positions": "0,1",
        "min_depth_m": 2.0,
        "max_depth_m": 14.0,
        "comp_power": 0.2,
        "start_freq_mhz": 3000.0,
        "stop_freq_mhz": 6000.0,
        "speed_m_s": 0.0,
        "look_angle_deg": 0.0,
        "snr_thresh": 4.5,
        "snr_comp_max": 25.0,
        "background_subtract_enabled": true,
        "background_mean_count": 10,
        "render_mode": "heatmap",
        "min_visible_pair_count": 1,
        "visible_x_min_m": -2.0,
        "visible_x_max_m": 2.0,
        "visible_z_min_m": 0.0,
        "visible_z_max_m": 14.0
      }
    },
    "data_actions": {
      "save_count": 10,
      "save_path": "python_app/data/snapshots",
      "save_name": "snapshot_simulator"
    },
    "preprocess_dialog": {
      "set_name": "smoke_cal",
      "radar_config_dir": "",
      "use_all_radar_configs": false
    }
  }
}
