# These shutter parameters don't depend on the unit being run.

# ---------- Publisher parameters ----------
# The interval between regular status publication.
publisher/publicationInterval = PT1S
# Data path names for the stroke counters.
publisher/plusXStrokeCounterPath = plusX/strokeCount
publisher/minusXStrokeCounterPath = minusX/strokeCount
# Strokes shorter than this won't be counted (mm).
publisher/minStrokeLength = 375.0
# Strokes taking longer than this won't be counted (s).
publisher/maxStrokeTime = PT2.0S

# ---------- State machine parameters ---------
# How long to wait before re-starting the task that feeds events to the state
# machine after it crashes. A handful of milliseconds.
statemachine/taskRestartDelay = PT0.010S

# How long to wait for the shutter controller to enter its Still or Disabled
# states after a reset.
statemachine/resetSyncTimeout = PT10S


# ---------- Controller parameters ----------

# How long the subsystem should delay the start of the notification task after
# having requested all required notifications. Each notification that's established
# results in an initial message begin sent with the current value of the variable,
# even when you ask for notification only on value change. The delay allows
# these unwanted notices to accumulate in the ADS driver's queue. Then the
# subsystem drains the queue before starting the proper notice reading.
# A few seconds should be more than enough.
controller/noticeReaderStartupDelay = PT2S

# How long to delay before restarting the notice-reading task after it crashes.
# A handful of milliseconds is good enough.
controller/noticeReaderRestartDelay = PT0.010S

# How long to wait for the shutter controller to acknowledge each command sent
# to it.
controller/plcAckTimeout = PT5S

# The smallest exposure time allowed.
controller/minExposureTime = PT1.0S

# The move blade sets at this speed for centering. mm/sec.
controller/centeringSpeed = 20.0

# NO LONGER USED. The maximum speed a blade set should attain during a stroke. mm/sec.
# A blade set will stop increasing speed however when it reaches 1667 mm/sec,
# causing the trajectory to become distorted near the middle.
controller/maxStrokeSpeed = 1667.0

# Safe internal temperature ranges for the motor controller modules. Celsius.
# Map<ShutterSide, List<Double>>
controller/safeCtrlTempRange = [PLUSX:[0.0, 80.0], MINUSX:[0.0, 80.0]]

# Safe temperature ranges for the sites with RTDs. Celsius.
# Map<RTD, List<Double>>
controller/safeRtdTempRange = [PLUSX_MOTOR:[-20.0, 50.0], MINUSX_MOTOR:[-20.0, 50.0], CONTROL_BOX:[0.0, 80.0]]

# ---------- PLC message watchdog parameters ----------
# Raise an alert if we don't see any messages from the PLC for this long.
watchdog/checkInterval = PT10.0S

# --------- Brake power monitor ----------
# The key of the brake voltage value in the KeyValueDataList sent by the target subsystem.
# It's also the name of the alert raised if something goes wrong with the power.
statemachine/brakepower/brakeVoltageKey = PDU_24VD/Shtr_Brakes_V

# Brake power voltage must be at least this to be considered 'on'.
statemachine/brakepower/powerOnThreshold = 23.0
