feat(canon): add a sim-only session config for offline work
CI for csaxs_bec / test (push) Successful in 4m28s

Working on the camera away from the beamline meant loading a full cSAXS
session and then ignoring everything in it. This config is a complete
session containing nothing but the simulated camera, so no beamline motor
or detector is defined at all and none can be addressed by accident.

The real ptz_cam is deliberately absent: it lives at an X12SA address that
is not routable off the beamline network, so including it would only
produce connection errors at every startup. canon_crn300.yaml remains the
config for a beamline host.

stream_start is "connect" rather than "stage" -- with readoutPriority
on_request the device is excluded from staging, so "stage" would never
fire.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KLnmUurqcNd1FiDY5M2uZr
This commit is contained in:
menzelandClaude Opus 5 committed 2026-08-31 17:10:57 +02:00
1 parent 7c1363c855
commit cc3458aa77
1 file changed
+34
@@ -0,0 +1,34 @@
# Canon CR-N300 -- laptop / offline development session.
#
# A complete BEC session containing nothing but the simulated camera, for working on
# the device off the beamline. Load it with:
#
# bec.config.update_session_with_file(
# "<checkout>/csaxs_bec/device_configs/canon_laptop_sim.yaml")
#
# This REPLACES the active session, which is the point: no beamline motors or
# detectors are defined, so nothing here can address hardware even by accident.
#
# The real camera is deliberately absent. It lives at an X12SA address that is not
# routable from a laptop, and including it would only produce connection errors on
# every startup. Use canon_crn300.yaml on a beamline host for the real device.
ptz_cam_sim:
description: Canon CR-N300 PTZ camera (simulation, no hardware required)
deviceClass: csaxs_bec.devices.canon.canon_ptz.CanonPTZCamera
deviceConfig:
simulation: true
gradual_motion: true # finite-speed travel, so move statuses are exercised
buffer_maxlen: 32
acquisition_mode: "jpeg_poll"
poll_rate: 5.0 # faster than the real 2 Hz default; keeps the sim lively
stream_start: "connect" # NOT "stage" -- see readoutPriority below
deviceTags:
- camera
- ptz
- simulation
enabled: true
onFailure: buffer
readOnly: false
readoutPriority: on_request
softwareTrigger: false