Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
393554e
sequencer target_qc_check ensures nexp >= 1
astronomerdave Jan 30, 2026
52c3792
adds capability of disabling camerad controllers, while leaving
astronomerdave Jan 30, 2026
738cf72
fixes bug: controller[dev] map wasn't being created
astronomerdave Jan 30, 2026
d98d199
bug fix Interface::parse_controller_config
astronomerdave Jan 30, 2026
794cbe8
gets latest camerad.cfg.in from main
astronomerdave Jan 30, 2026
54b589e
fixes bug in Interface::image_size
astronomerdave Jan 30, 2026
6c0175e
additional checks for inactive controllers
astronomerdave Jan 30, 2026
9882fbb
implements configurable activation commands per controller
astronomerdave Jan 30, 2026
c987018
updates camerad.cfg.in
astronomerdave Jan 30, 2026
1f49d53
updates CAL_TARGET configuration table in sequencerd.cfg.in to
astronomerdave Jan 31, 2026
ea20b72
adds minimum to compile with zmq pub-sub
astronomerdave Feb 2, 2026
ddbece5
more to minimum pubsub
astronomerdave Feb 2, 2026
f96c673
bug fix AstroCam::Interface::init_pubsub
astronomerdave Feb 2, 2026
9d1eaf3
camerad now uses ZMQ to properly publish "is exposure ready" and
astronomerdave Feb 2, 2026
780ef7f
restore Config files from main branch
astronomerdave Feb 2, 2026
43f39d8
fixes bug in Sequencer::CalibrationTarget::configure
astronomerdave Feb 3, 2026
63a7ef3
fixes deadlock and sequencer subscribes to camerad
astronomerdave Feb 3, 2026
4f5a991
unify can_expose variable between camerad-sequencerd
astronomerdave Feb 3, 2026
af3ffa5
sequencer sends activate states from CAL_ table to camerad
astronomerdave Feb 3, 2026
77d73f5
Merge remote-tracking branch 'origin/main' into DH/sequencer-calib-work
astronomerdave Feb 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions Config/camerad.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ ASYNCGROUP=239.1.1.234 # or set to NONE if not using ASYNC messaging
DAEMON=no # run as a daemon? {yes,no}
PUBLISHER_PORT="tcp://127.0.0.1:@CAMERAD_PUB_PORT@" # my zeromq pub port

# Message pub/sub
# PUB_ENDPOINT=tcp://127.0.0.1:<PORT>
# SUB_ENDPOINT=tcp://127.0.0.1:<PORT>
#
PUB_ENDPOINT="tcp://127.0.0.1:@MESSAGE_BROKER_SUB_PORT@"
SUB_ENDPOINT="tcp://127.0.0.1:@MESSAGE_BROKER_PUB_PORT@"

# -----------------------------------------------------------------------------
# The following are for simulated ARC controllers
ARCSIM_NUMDEV=0
Expand Down Expand Up @@ -136,6 +143,17 @@ CONSTKEY_EXT=(SPECTPART WHOLE) # fixed only because we're writing single-channe
#
USERKEYS_PERSIST=yes

# ACTIVATE_COMMANDS=(CHAN CMD [, CMD, CMD ...])
# commands sent to activate channel after de-activation
# CHAN is space-delimited from a comma-delimited list of one or more commands
# and must have been first configured by CONTROLER=
# commands that contain a space must be enclosed by double quotes
#
ACTIVATE_COMMANDS=(I PON, ERS 1000 1000, EPG 500, CLR)
ACTIVATE_COMMANDS=(R PON, ERS 1000 1000, EPG 500, CLR)
ACTIVATE_COMMANDS=(G PON, ERS 1000 1000, EPG 500, CLR)
ACTIVATE_COMMANDS=(U PON, CLR)

# -----------------------------------------------------------------------------
# TELEM_PROVIDER=( <name> <port> )
#
Expand Down
31 changes: 17 additions & 14 deletions Config/sequencerd.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -162,26 +162,29 @@ ACQUIRE_MIN_REPEAT=2 # minimum number of sequential successful a
ACQUIRE_TCS_MAX_OFFSET=60 # the maximum allowable offset sent to the TCS, in arcsec

# Calibration Settings
# CAL_TARGET=(name caldoor calcover lampthar lampfear lampbluc lampredc lolamp hilamp mod1 mod2 ... mod6)
# CAL_TARGET=(name caldoor calcover U G R I lampthar lampfear lampbluc lampredc lolamp hilamp mod1 mod2 ... mod6)
#
# where name must be "DEFAULT" or start with "CAL_"
# caldoor = open | close
# calcover = open | close
# lamp* = on | off
# mod* = on | off
# for a total of 15 required parameters
# U,G,R,I = on | off # indicates which channels to enable/disable
# lamp* = on | off # lamp power
# mod* = on | off # lamp modulator
# for a total of 19 required parameters
# name=SCIENCE defines science target operation
#
# name door cover thar fear bluc redc llmp hlmp mod1 mod2 mod3 mod4 mod5 mod6
CAL_TARGET=(CAL_THAR open close on off off off off off off off off off off on )
CAL_TARGET=(CAL_FEAR open close off on off off off off on off off off off off)
CAL_TARGET=(CAL_REDCONT open close off off off on off off off off off on off off)
CAL_TARGET=(CAL_BLUCONT open close off off on off off off off off off off on off)
CAL_TARGET=(CAL_ETALON open close off off off on off off off off on off off off)
CAL_TARGET=(CAL_DOME close open off off off off off on off off off off off off)
CAL_TARGET=(CAL_BIAS close close off off off off off off off off off off off off)
CAL_TARGET=(CAL_DARK close close off off off off off off off off off off off off)
CAL_TARGET=(SCIENCE close open off off off off off off off off off off off off)
# name door cover U G R I thar fear bluc redc llmp hlmp mod1 mod2 mod3 mod4 mod5 mod6
CAL_TARGET=(CAL_THAR open close on on on on on on on on off off off off off off off on )
CAL_TARGET=(CAL_FEAR open close on on on on on on on on off off on off off off off off)
CAL_TARGET=(CAL_THAR_UG open close on on off off on on on on off off off off off off off on )
CAL_TARGET=(CAL_FEAR_UG open close on on off off on on on on off off on off off off off off)
CAL_TARGET=(CAL_CONTR open close on on on on on on on on off off off off off on off off)
CAL_TARGET=(CAL_CONTB open close on on on on on on on on off off off off off off on off)
CAL_TARGET=(CAL_DOME close open on on on on off off off off off on off off off off off off)
CAL_TARGET=(CAL_DOME_UG close open on on off off off off off off off on off off off off off off)
CAL_TARGET=(CAL_BIAS close close on on on on off off off off off off off off off off off off)
CAL_TARGET=(CAL_DARK close close on on on on off off off off off off off off off off off off)
CAL_TARGET=(SCIENCE close open on on on on off off off off off off off off off off off off)

# miscellaneous
#
Expand Down
2 changes: 1 addition & 1 deletion DSP
Submodule DSP updated 0 files
7 changes: 7 additions & 0 deletions camerad/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,11 @@ target_include_directories(${INTERFACE_TARGET} PUBLIC ${INTERFACE_INCLUDES})
find_library(CCFITS_LIB CCfits NAMES libCCfits PATHS /usr/local/lib)
find_library(CFITS_LIB cfitsio NAMES libcfitsio PATHS /usr/local/lib)

# ZeroMQ
#
find_library( ZMQPP_LIB zmqpp NAMES libzmqpp PATHS /usr/local/lib )
find_library( ZMQ_LIB zmq NAMES libzmq PATHS /usr/local/lib )

find_package(Threads)

add_library(camera STATIC
Expand All @@ -124,6 +129,8 @@ target_link_libraries(camerad
${CMAKE_THREAD_LIBS_INIT}
${CCFITS_LIB}
${CFITS_LIB}
${ZMQPP_LIB}
${ZMQ_LIB}
)

# ----------------------------------------------------------------------------
Expand Down
Loading