Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
27c80d8
ETC GUI Update (#403)
prkrtg Apr 7, 2026
dba9f55
Issue 363 Slicecam Acquire v2 (PR #402)
astronomerdave Apr 7, 2026
f671b48
first steps making helpers that will aid in sequencer scripting
Mar 30, 2026
2eeb016
adds a sequencial operations wrapper
astronomerdave Mar 31, 2026
3f699b2
adds one more level of abstraction, Operation Blocks, to aid in scrip…
astronomerdave Mar 31, 2026
80e5a18
encapsulates more logic into blocks to aid scripting
astronomerdave Apr 3, 2026
2925c7f
adds signatures for scripting functions
Apr 6, 2026
aaa47b2
implements the functions for script parsing and execution
Apr 6, 2026
39ab927
* updates status publishing in slitd
Apr 7, 2026
e2c366f
string/string_view cleanup
astronomerdave Apr 8, 2026
a04b36e
applies new Operation model to startup and shutdown sequences
astronomerdave Apr 9, 2026
379a6a5
cleans up cancel_flag a bit
astronomerdave Apr 10, 2026
f10060d
adds optional retry function to Operation struct and
astronomerdave Apr 10, 2026
edc934c
* adds some functionality to Sequence::parse_script()
astronomerdave Apr 13, 2026
cbd9013
adds unit test for ThreadPool to Sequencer::Sequence::test
astronomerdave Apr 13, 2026
054930d
adds functionality to sequence_builder
astronomerdave Apr 13, 2026
cf6ae4b
replaces if/else in build_sequence with an operation builder map
astronomerdave Apr 18, 2026
866c324
expand sequencerd DSL ops and validation
astronomerdave Apr 20, 2026
188300b
* starts migrating sequencer off UDP broadcast, replaced with ZMQ
astronomerdave Apr 24, 2026
1750162
fixes typo in slicecam for fine acquisition (#405)
astronomerdave Apr 9, 2026
10c5f28
Integrates new pubsub model taking place in parallel, which replaces
astronomerdave Apr 30, 2026
c6ce5b3
Adds more work done in parallel on the fineacquire-update-sequencer-pub
astronomerdave May 12, 2026
8b22e82
fixes improper CMakeLists.txt files
astronomerdave May 13, 2026
0b6926e
fix: on_error must appear before any operations in a group
astronomerdave May 13, 2026
51ad2d2
* adds set|get commands to powerd
astronomerdave May 13, 2026
f577429
fix to support new powerd set|get commands
astronomerdave May 13, 2026
9174374
* wires CommandClient<State> into all DSL passthrough op_builders
astronomerdave May 14, 2026
5c7b79e
places acam startup in parallel group, while keeping slicecam
astronomerdave May 14, 2026
f68f821
fixes case where a parallel group could still proceed after error
astronomerdave May 14, 2026
9fcb2f1
fixes state on shutdown
astronomerdave May 14, 2026
082e822
.
astronomerdave May 14, 2026
e811ab8
fixes bug preventing wait_for_user_continue on fine acquire failure
astronomerdave May 14, 2026
620a587
incorporates bug fixes from PR409--
astronomerdave May 14, 2026
4aa1b3a
another from PR409--
astronomerdave May 14, 2026
dfa18f6
cleaned up broadcast and log messages
astronomerdave May 15, 2026
673b3d5
noisey commit but mostly vocabularly change--
astronomerdave May 15, 2026
8f0df38
fix: correct seq state on subsystem error
astronomerdave May 15, 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
6 changes: 4 additions & 2 deletions Andor/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ set( ANDOR_DIR ${PROJECT_BASE_DIR}/Andor )

set( CMAKE_CXX_STANDARD 17 )

add_definitions( -Wall -ansi -O0 -Wno-variadic-macros -ggdb )
add_definitions( -Wall -O0 -Wno-variadic-macros -ggdb )
add_definitions(-D_LP64)

include_directories( ${PROJECT_BASE_DIR}/utils )
Expand All @@ -30,12 +30,14 @@ find_library( CFITS_LIB cfitsio NAMES libcfitsio PATHS /usr/local/lib )
find_path( PYTHON_DEV "Python.h" PATHS /usr/include/python3.9 )
find_library( PYTHON_LIB python3.9 NAMES libpython3.9 PATHS /usr/lib64 )
include_directories( ${PYTHON_DEV} )

add_link_options( -L/usr/lib64 -lpython3.9 -lcrypt -lpthread -ldl -lutil -lm -lm )

include_directories( ${PYTHON_DEV} )

add_library( andor STATIC
${ANDOR_DIR}/andor.cpp
${ANDOR_DIR}/andor_emulator.cpp
${PYTHON_DEV}
)

target_link_libraries( andor
Expand Down
2 changes: 1 addition & 1 deletion Andor/andor.h
Original file line number Diff line number Diff line change
Expand Up @@ -517,7 +517,7 @@ namespace Andor {
* @return "emulator" or "sdk" or "null"
*
*/
inline std::string_view get_andor_object() {
inline std::string_view get_andor_object() const {
if ( this->andor == &emulator ) return ANDOR_OBJ_EMULATOR;
else
if ( this->andor == &sdk ) return ANDOR_OBJ_SDK;
Expand Down
6 changes: 3 additions & 3 deletions Andor/andor_emulator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1144,8 +1144,8 @@ namespace Andor {
* @return ERROR | NO_ERROR
*
*/
long SkySim::generate_image( const std::string_view &headerfile,
const std::string_view &outputfile,
long SkySim::generate_image( const std::string headerfile,
const std::string outputfile,
const float exptime,
const bool ismex,
const int simsize ) {
Expand Down Expand Up @@ -1218,7 +1218,7 @@ namespace Andor {
}

#ifdef LOGLEVEL_DEBUG
log_python_arguments(pFunction, pArgs, pKwArgs);
// log_python_arguments(pFunction, pArgs, pKwArgs);
#endif

// Call the Python function here
Expand Down
2 changes: 1 addition & 1 deletion Andor/andor_emulator.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ namespace Andor {

PyObject* pSkySimModule;

long generate_image( const std::string_view &headerfile, const std::string_view &outputfile,
long generate_image( const std::string headerfile, const std::string outputfile,
const float exptime, const bool ismex, const int simsize );

void log_python_arguments(PyObject* pFunction, PyObject* pArgs, PyObject* pKwArgs);
Expand Down
12 changes: 6 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@
# @author David Hale <dhale@caltech.edu>
# ----------------------------------------------------------------------------

add_definitions(-DLOGLEVEL_DEBUG)

cmake_minimum_required( VERSION 3.12 )

project( NGPS )

add_definitions(-DLOGLEVEL_DEBUG)

set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )
set( CMAKE_CXX_EXTENSIONS OFF )

project( NGPS )

set( PROJECT_BASE_DIR $ENV{PWD}/../ )
set( PROJECT_BASE_DIR ${CMAKE_SOURCE_DIR})

set( PROJECT_SRC_DIR ${PROJECT_BASE_DIR}/src )
set( PROJECT_INC_DIR ${PROJECT_BASE_DIR}/include )
set( EXECUTABLE_OUTPUT_PATH ${PROJECT_BASE_DIR}/bin )
set( LIBRARY_OUTPUT_PATH ${PROJECT_BASE_DIR}/lib )
set( CMAKE_C_COMPILER /usr/bin/g++ )
set( CMAKE_C_COMPILER /usr/bin/gcc )
set( CMAKE_CXX_COMPILER /usr/bin/g++ )

find_package( Threads )
Expand Down
10 changes: 0 additions & 10 deletions Config/sequencerd.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -190,16 +190,6 @@ CAL_TARGET=(SCIENCE close open on on on on off off off off off off
#
UPDATE_TIME_REMAINING=10 # block updates to active target with less than this exptime (sec) remaining

# -----------------------------------------------------------------------------
# TELEM_PROVIDER=( <name> <port> )
#
# This is a list of telemetry providers where <name> is the daemon name,
# and <port> is the port on which to send the telemetry request.
# Provide one per line.
#
TELEM_PROVIDER=(slitd @SLITD_NB_PORT@)
TELEM_PROVIDER=(tcsd @TCSD_NB_PORT@)
TELEM_PROVIDER=(camerad @CAMERAD_NB_PORT@)
#
SUBSCRIBE_TO=(slitd "tcp://127.0.0.1:@SLITD_PUB_PORT@")
SUBSCRIBE_TO=(tcsd "tcp://127.0.0.1:@TCSD_PUB_PORT@")
Expand Down
53 changes: 53 additions & 0 deletions Config/slicecamd.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,59 @@ PUSH_GUI_SETTINGS=/home/developer/Software/GuiderGUI/push_settings_slicev.sh
#
PUSH_GUI_IMAGE=/home/developer/Software/GuiderGUI/push_image.sh

# FINE_ACQUIRE_AIMPOINT=( <which> <x> <y> )
# camera and location of aimpoint for fine acquisition
# <which> which camera must be { L R }
# <x> x-coordinate (col)
# <y> y-coordinate (row)
# aimpoint x,y may be fractional
#
FINE_ACQUIRE_AIMPOINT=(L 150.0 115.5)

# FINE_ACQUIRE_BACKGROUND=(<x1> <x2> <y1> <y2>)
# defines the bounds of the region for background coorection
# for fine acquisition centroiding
# <x1> x-coordinate lower left
# <x2> x-coordinate lower right
# <y1> y-coordinate upper left
# <y2> y-coordinate upper right
#
FINE_ACQUIRE_BACKGROUND=(80 165 30 210)

# FINE_ACQUIRE_MIN_SAMPLES=<n>
# Minimum centroid samples <n> before scatter-gated early exit is evaluated.
# Once this many samples are collected and the MAD scatter per axis is below
# the precision threshold, a correction is issued without waiting for MAX_SAMPLES.
#
FINE_ACQUIRE_MIN_SAMPLES=3

# FINE_ACQUIRE_SETTLE_FRAMES=<n>
# <n> frames discarded after each telescope move to allow settling before
# centroid measurements resume.
#
FINE_ACQUIRE_SETTLE_FRAMES=2

# FINE_ACQUIRE_GAIN=<g>
# Proportional gain <g> = {0..1} applied to the commanded offset when the residual
# is at or below FINE_ACQUIRE_GAIN_THRESHOLD arcsec.
#
FINE_ACQUIRE_GAIN=0.7

# FINE_ACQUIRE_GAIN_LARGE=<g>
# Proportional gain <g> applied when the residual exceeds FINE_ACQUIRE_GAIN_THRESHOLD.
# Set to 1.0 for a full-correction step on large offsets to reduce
# the number of correction cycles needed. Set equal to FINE_ACQUIRE_GAIN to
# disable gain scheduling.
#
FINE_ACQUIRE_GAIN_LARGE=1.0

# FINE_ACQUIRE_GAIN_THRESHOLD=<arcsec>
# Offset magnitude (arcsec) above which FINE_ACQUIRE_GAIN_LARGE is used instead
# of FINE_ACQUIRE_GAIN. Set to 0 to disable gain scheduling (GAIN is used for
# all corrections.
#
FINE_ACQUIRE_GAIN_THRESHOLD=2.0

# SkySimulator options:
# SKYSIM_IMAGE_SIZE=<is> where <is> is integer
# Sets the keyword argument "IMAGE_SIZE=<is>"
Expand Down
2 changes: 1 addition & 1 deletion PI/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ set( PI_DIR ${PROJECT_BASE_DIR}/PI )

set( CMAKE_CXX_STANDARD 17 )

add_definitions( -Wall -ansi -O1 -Wno-variadic-macros -ggdb )
add_definitions( -Wall -O1 -Wno-variadic-macros -ggdb )

include_directories( ${PROJECT_BASE_DIR}/utils )
include_directories( ${PROJECT_BASE_DIR}/common )
Expand Down
15 changes: 8 additions & 7 deletions acamd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,15 @@ add_executable(acamd
${ACAMD_DIR}/acam_interface.cpp
${ACAMD_DIR}/acam_fits.cpp
${ACAMD_DIR}/motion_interface.cpp
)
target_include_directories(acamd PRIVATE
${PYTHON_DEV}
${MYSQL_INCLUDES}
)

target_link_libraries(acamd
andor
python3.9
${PYTHON_LIB}
physik_instrumente
network
common
Expand All @@ -73,32 +75,31 @@ target_link_libraries(acamd
database
${ZMQPP_LIB}
${ZMQ_LIB}
${PYTHON_LIB}
${CCFITS_LIB}
${CFITS_LIB}
${CMAKE_THREAD_LIBS_INIT}
${MYSQL_LIB}
)

target_compile_options(acamd PRIVATE -g -Wall -O1 -Wno-variadic-macros -ggdb)
target_compile_options(acamd PRIVATE -g -Wall -O1 -Wno-deprecated-declarations -Wno-variadic-macros -ggdb)

add_executable( newpytest
${ACAMD_DIR}/newpytest.cpp
)
target_include_directories( newpytest PRIVATE
${PYTHON_DEV}
)

target_link_libraries( newpytest
python3.9
${PYTHON_LIB}
)

add_executable( pytest
${ACAMD_DIR}/pytest.cpp
)
target_include_directories( pytest PRIVATE
${PYTHON_DEV}
)

target_link_libraries( pytest
python3.9
${PYTHON_LIB}
)

Expand Down
Loading