Configuration file#

jaeger uses an internal YAML file to store configuration values. The default configuration as of version 0.15.1 is:

---
actor:
  name: jaeger
  host: 0.0.0.0
  port: 19990
  verbose: 30
  status:
    port: 19991
    delay: 5
  tron_host: sdss5-hub
  tron_port: 6093
  models:
    - fliswarm
  ieb_status_delay: 60
  schema: etc/schema.json
  log_dir: /data/logs/actors/jaeger

profiles:
  default: cannet
  cannet:
    interface: cannet
    channels:
      - sdss-cannet1
      - sdss-cannet2
      - sdss-cannet3
      - sdss-cannet4
      - sdss-cannet5
      - sdss-cannet6
    port: 19228
    buses: [1, 2, 3, 4]
    bitrate: 1000000
    timeout: 1
    status_interval: 5
  slcan:
    interface: slcan
    channel: /dev/tty.usbserial-LW3HTDSY
    ttyBaudrate: 1000000
    bitrate: 1000000
  virtual:
    interface: virtual
    channel: test1

fps:
  use_database: true
  allow_unknown: true
  initialise_timeouts: 0.5
  start_pollers: false
  status_poller_delay: 5
  position_poller_delay: 5
  disabled_positioners: [54, 184, 463, 608, 1042, 1136, 1182]
  offline_positioners: null
  disable_collision_detection_positioners: []
  use_sync_line: false
  snapshot_path: /data/logs/jaeger/snapshots/
  configuration_snapshot_path: /data/logs/jaeger/configuration_snapshots/
  use_lock: True

ieb:
  disabled_devices: ['GFA1', 'GFA6']

positioner:
  reduction_ratio: 1024
  motor_steps: 1073741824
  time_step: 0.0005
  motor_speed: 2000
  initialise_datums_timeout: 300
  disable_precise_moves: true
  uid_bits: 6
  trajectory_data_n_points: 3
  firmware_messages_per_positioner: 8
  trajectory_dump_path: /data/logs/jaeger/trajectories/

kaiju:
  speed: 2
  ang_step: 0.1
  collision_buffer: 2.0
  smooth_points: 13
  collision_shrink: 0.08
  path_delay: 1
  epsilon_factor: 2
  lattice_position: [10., 170.]

configuration:
  scale_temperature_coeffs: [2.56190330e-06, -1.70492454e-05, 9.99647534e-01]
  max_scale_age: 7200
  clip_scale: 500
  scale_kludge_factor: 0.99976
  max_cloned_time: 7200
  max_designs_epoch: 8

fvc:
  exposure_time: 5.
  fbi_level: 6.
  target_90_percentile: 30.0
  target_distance: 5
  max_fvc_iterations: 2
  k: 1.0
  max_correction: 15
  ieb_keys:
    TEMPRTD2: rtd2
    TEMPRTD3: rtd3
    TEMPT3: t3
    LED1: led1
    LED2: led2
    LED3: led3
    LED4: led4

files:
  log_dir: /data/logs/jaeger
  ieb_config: etc/ieb.yaml
  fvc_config: etc/fvc.yaml
  chiller_config: etc/chiller.yaml

low_temperature:
  sensor: RTD2
  cold_threshold: 0
  very_cold_threshold: -10
  interval: 60
  rpm_normal: 2000
  rpm_cold: 1000
  holding_torque_normal: [0, 30]
  holding_torque_very_cold: [45, 30]

safe_mode:
  min_beta: 160
  max_beta: 180

debug: false

observatory: ${OBSERVATORY}

database:
  dbname: sdss5db
  host: null
  port: 5433

alerts:
  interval: 60
  gfa:
    warning: 30
    critical: 35
    shutdown: true
  ieb:
    sensor: RTD1
    warning: 35
    critical: 40
    shutdown: true
  robot:
    sensor: RTD8
    warning: 40
    critical: 45
    shutdown: true
  flow:
    sensor: FLOW1
    critical: 0.1
  temperature:
    sensor_temp: T3
    sensor_rh: RH3
    dew_threshold: 3
  chiller:
    sensor_supply: RTD10
    threshold: 1

When jaeger is imported the default configuration is loaded. It then looks for user configuration files in $SDSSCORE_DIR/configuration/$OBSERVATORY/actors/jaeger.yaml and ~/.config/sdss/jaeger.yaml (in that order). If found, the user file is used to update the default configuration. For example, a user file such as

# file: ~/.config/sdss/jaeger.yaml

profiles:
  cannet:
    interface: cannet
    channels: [10.1.10.110]
    port: 19228
    buses: [1, 2, 3, 4]
    bitrate: 1000000

will update the cannet profile while modifying the remaining parameters.

When running jaeger from the CLI, it is possible to pass a user configuration file by calling jaeger --config <CONFIG-FILE> .... If not provided, the configuration file discovery default to the above logic.

To prevent the beta arms to take a value below 160 degrees (the point at which collisions are possible if the folded mode is \(\beta=180\)) on can specify

safe_mode: true

And to define the minimum value of the beta arm

safe_mode:
   min_beta: 170