slsinfo:
  description: 'SLS beam info'
  deviceClass: SLSInfo
  deviceConfig: {name: slsinfo}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: buffer
  status: {enabled: true}

undulator:
  description: 'Undulator'
  deviceClass: X07MAUndulator
  deviceConfig: {name: undulator, prefix: 'X07MA-ID:'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

aperture:
  description: 'Frontend aperture'
  deviceClass: EpicsSignal
  deviceConfig: {name: aperture, read_pv: 'X07MA-FE-DSAPER'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

mono:
  description: 'PGM Monochromator'
  deviceClass: PGMMonochromator
  deviceConfig: {name: mono, prefix: 'X07MA-'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

otf:
  description: 'PGM on-the-fly scan'
  deviceClass: PGMOtFScan
  deviceConfig: {name: otf}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

valve:
  description: 'Endstation valve'
  deviceClass: VacuumValve
  deviceConfig: {name: valve, prefix: 'X07MA-OP-VG13:'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

exit_slit:
  description: 'Exit slit'
  deviceClass: X07MAExitSlit
  deviceConfig: {name: exit_slit, prefix: 'X07MA-OP-SL1SV1:'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

goldmesh1:
  description: 'Gold mesh 1'
  deviceClass: EpicsMotor
  deviceConfig: {name: goldmesh1, prefix: 'X07MA-OP-IO1:TR1'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

goldmesh2:
  description: 'Gold mesh 2'
  deviceClass: EpicsMotor
  deviceConfig: {name: goldmesh2, prefix: 'X07MA-OP-IO2:TR1'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

# field:
#   description: 'Magnetic field'
#   deviceClass: X07MAMagnet
#   deviceConfig: {name: field, prefix: 'X07MA-PC-MAG:'}
#   acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
#   onFailure: retry
#   status: {enabled: true}

field_x:
  description: 'Magnetic field x'
  deviceClass: X07MAMagnetAxis
  deviceConfig: {name: field_x, axis_id: X, ps_prefix: "X07MA-PC-PS2:", prefix: 'X07MA-PC-MAG:'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

field_z:
  description: 'Magnetic field z'
  deviceClass: X07MAMagnetAxis
  deviceConfig: {name: field_z, axis_id: Z, ps_prefix: "X07MA-PC-PS1:", prefix: 'X07MA-PC-MAG:'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

signals:
  description: 'ADC signals'
  deviceClass: X07MAAnalogSignals
  deviceConfig: {name: signals, prefix: 'X07MA-ES1-AI:'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

sample_hor:
  description: 'Horizontal sample position'
  deviceClass: EpicsMotor
  deviceConfig: {name: sample_hor, prefix: 'X07MA-ES1-MAG:TRZS'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

sample_vert:
  description: 'Horizontal sample position'
  deviceClass: EpicsMotor
  deviceConfig: {name: sample_vert, prefix: 'X07MA-ES1-MAG:TRY1'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

sample_rot:
  description: 'Horizontal sample position'
  deviceClass: EpicsMotor
  deviceConfig: {name: sample_rot, prefix: 'X07MA-ES1-MAG:ROY1'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

harmonic:
  description: 'ID harmonic'
  deviceClass: EpicsSignal
  deviceConfig: {name: harmonic, read_pv: 'X07MA-ID:HARMONIC'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

energy:
  description: 'Energy in eV'
  deviceClass: EpicsSignal
  deviceConfig: {name: energy, read_pv: 'X07MA-PHS-E:GO.A'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

energy_mode:
  description: 'Energy mode. Either PGM = 0 or PGM+ID = 1'
  deviceClass: EpicsSignal
  deviceConfig: {name: energy_mode, read_pv: 'X07MA-PHS-E:OPT'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

keithley_1:
  description: 'Keithley 1 / 428 tey'
  deviceClass: EpicsSignal
  deviceConfig: {name: keithley_1, read_pv: 'X07MA-PC-K428:1:setGain'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

keithley_2:
  description: 'Keithley 2 / 428 i0'
  deviceClass: EpicsSignal
  deviceConfig: {name: keithley_2, read_pv: 'X07MA-PC-K428:2:setGain'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

keithley_3:
  description: 'Keithley 3 / 428 diode'
  deviceClass: EpicsSignal
  deviceConfig: {name: keithley_3, read_pv: 'X07MA-PC-K428:3:setGain'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

# manipulator:
#   description: 'Sample Manipulator'
#   deviceClass: X07MASampleManipulator
#   deviceConfig: {name: manipulator, prefix: 'X07MA-ES1-MAG:'}
#   acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
#   onFailure: retry
#   status: {enabled: true}

temperature:
  description: 'Temperature controller'
  deviceClass: X07MATemperatureController
  deviceConfig: {name: temperature, prefix: 'X07MA-PC-TC:'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

tcontrol:
  description: 'Automatic temperature control'
  deviceClass: X07MAAutoTemperatureControl
  deviceConfig: {name: 'tcontrol', prefix: 'X07MA-ES1-TEMP:'}
  acquisitionConfig: {acquisitionGroup: monitor, readoutPriority: baseline, schedule: sync}
  onFailure: retry
  status: {enabled: true}

sls_info:
  description: 'sls info'
  deviceClass: SLSInfo
  deviceConfig: {name: 'sls_info'}
  acquisitionConfig: {acquisitionGroup: status, readoutPriority: ignored, schedule: sync}
  onFailure: buffer
  status: {enabled: true}

sls_operator:
  description: 'sls operator messages'
  deviceClass: SLSOperatorMessages
  deviceConfig: {name: 'sls_operator'}
  acquisitionConfig: {acquisitionGroup: status, readoutPriority: ignored, schedule: sync}
  onFailure: buffer
  status: {enabled: true}