Version History¶
v0.38.1 (2024-08-16)¶
New Features¶
Add logging to init_guider. (DM-45467)
Bug Fixes¶
Change the exception raised by
MTCS.run_m2_actuator_bump_test
toRuntimeError
and update the corresponding unit test. (DM-41601)In base_camera, fix how roiSpec is constructed in init_guider and fix unit test. (DM-45467)
In ATCalySys, swap RED to BLUE filter for atmonochromator (for white light) and update configuration for ptc-1. (DM-45467)
v0.38.0 (2024-07-30)¶
New Features¶
Bug Fixes¶
v0.37.0 (2024-07-15)¶
New Features¶
In
auxtel/atcs.py
, add new routine to check that ATCS is in the ATPneumatics operational range and update methods to use routine. (DM-44628)Update BaseCalSys.setup_electrometers to setup electrometer mode, range, and integration time from input parameters. (DM-44670)
Update ATCalSys.prepare_for_flat to call setup_electrometer. (DM-44670)
Update atcalsys configuration such that the electrometer exposure time is similar to the camera exposure time and to include the additional electrometer configuration. (DM-44670)
Update MTCS to add a new disable_m2_balance_system method. (DM-44824)
Update MTCS run_m2_actuator_bump_test to wait until the bump test finishes before returning. (DM-44824)
Added PTC curve configurations to ATCalSys.yaml. (DM-45219)
Bug Fixes¶
Update ATCalSys so that the filter scans have the correct wavelength range. (DM-44670)
v0.36.0 (2024-06-01)¶
New Features¶
Move calibration_config.yaml data file to atcalsys.yaml and add information required by the ATCalsys class now. (DM-44454)
Add __init__ file to data directory to make it a discoverable module. (DM-44454)
Add new get_data_path utility method to retrieve path to the data directory. (DM-44454)
In
auxtel/atcalsys
, implement changes to match refactoring of the BaseCalsys class.This is a major rework of the class, implementing some of the high level functionality that allows one to take a set of calibrations. (DM-44454)
In
base_calsys
, refactor of the base class to capture some of the lessons learned while writting the calibration script. (DM-44454)Implement base_tcs start_tracking method. (DM-44611)
Bug Fixes¶
In BaseTCS class, fix call to offsetRADEC. (DM-44454)
Documentation¶
Update towncrier configuration to use jira cloud path for tickets. (DM-44454)
v0.35.0 (2024-05-31)¶
New Features¶
Started atcalsys.py, which builds on top of basecalsys.py Includes all functions needed to build SalScript for creating flat field calibrations on the AuxTel (DM-43627)
API Removal or Deprecation¶
Remove support for handling authorization. This feature was removed from the system with ts-xml 21. (DM-44366)
Other Changes and Additions¶
Update conda recipe to use ts-conda-build=0.4. (DM-44028)
v0.34.0 (2024-04-24)¶
New Features¶
In
atcs.py
add methods to open/close the AuxTel dome dropout door. (DM-41805)Added base_calsys and corresponding documentation. (DM-42865)
In
auxtel/atcs
, update vent elevation to 17 degrees. (DM-43038)In
auxtel/atcs
, update dome_vent_open_shutter_time to 30s so we can run vent anytime during the day. (DM-43038)In
maintel/mtcs.py
, ignore dome elevation in the monitoring loop. The current version of the MTDome is not handling the wind screen/elevation axis so we will ignore it for the time being. (DM-43038)In
base_tcs.py
, update vent azimuth to keep 90 degrees away from the dome azimuth. (DM-43038)
v0.33.0 (2024-02-12)¶
New Features¶
In
base_tcs.py
add aslew_ephem_target
method that allow both telescopes to track a target based on an ephemeris file. (DM-41339)In
maintel/mtcs.py
, updatemove_p2p_radec
to check that the mtcs is in ENABLED state while moving. (DM-41593)In
mtcs.py
, updateMTCS._slew_to
to enable compensation mode in the relevant components before a slew. (DM-42132)In
mtcs.py
add aset_m1m3_controller_settings
method that allows setting m1m3 slew controller settings. (DM-42402)
Bug Fixes¶
Fix some type annotation issue in
RemoteGroup
.Update
ATCS.stop_all
to remove return. (DM-42046)In
base_tcs.py
, updatefind_target_simbad
to capture any exception when executing the remote query and retrow them as aRuntimeError
. (DM-42478)Update MTCS Slew usages to add the compensationMode event for both hexapods. (DM-42690)
Performance Enhancement¶
Update
MTCS
slew control sequence to improve handling setting/unsetting the m1m3 slew flag before/after a slew starts/ends. (DM-42046)
Other Changes and Additions¶
In
auxtel/atcs.py
, update prepare_for_vent to fully open the dome ifpartially_open_dome
is selected.Reformat with black 24.
Update .gitignore with latest ts-pre-commit-config setup. (DM-42690)
v0.32.0 (2023-11-28)¶
New Features¶
Add _overslew_azimuth feature to base_tcs class to slew past the target position and return. Set default to FALSE in base_tcs class and TRUE for atcs. (DM-40913)
Update
MTCS
class to support running M2 bump tests. (DM-41111)Update overslew feature and add log messages. In
mtcs
, add a check in move_p2p that the components are enabled while moving. (DM-41538)
v0.31.1 (2023-10-25)¶
Documentation¶
Integrate towncrier for release notes and change log management. (DM-41258)
Other Changes and Additions¶
Updates to make the package compatible with salobj 8. Changes involves mostly updating how the async mock objects are created. Instead of relying in ts-idl and ts-salobj to generate specs for the remote’s, use the newly introduced method in ts-xml. (DM-40580)
v0.31.0¶
Add
LSSTCam
class to interface with the LSSTCam CSC using theBaseCamera
interface.In
maintel/mtcs.py
, addstop_rotator
method to stop rotator movement.Add support for mtrotator cmd_stop and evt_controllerState in
mock/mtcs_async_mock.py
.In
constants/latiss_constants.py
, update blue300lppm_qn1, holo4_003, and holo4_001 sweet spots.Add new option to
MTCS.move_rotator
to allow the function to return before the rotator is in position.Export enum classes
DOFName
andClosedLoopMode
inenums.py
.
v0.30.5¶
Add
DOFName
enum toenums.py
Update atcs telescope and dome flatfield position following atwhitelight alignment.
Use lsst.ts.xml.tables.m1m1 instead of ts.lsst.criopy for M1M3 FATable.
In
maintel/mtcs.py
, add exception to allow backwards compatability with M1M3 FATable import from ts.lsst.criopy.
v0.30.4¶
In
latiss_constants.py
, add initial sweet spot for holo4_001 grating.
v0.30.3¶
In
maintel/mtcs.py
:Update hard point correction handlers to use
evt_forceControllerState
instead ofevt_forceActuatorState
.Add support for m1m3 setSlewFlag/clearSlewFlag.
Add
forceControllerState
to the list m1m3 events for the slew usage.
v0.30.2¶
Update
pyproject.toml
to remove usage of flake8 and black pytest plugins.Add github linting workflow.
Add support for
ts-pre-commit-config
.
v0.30.1¶
In
maintel/mtcs.py
:Add
detailedState
to list of Slew events for m1m3.Change order of closing booster valves and enabling hardpoint corrections.
Update
_handle_m1m3_hardpoint_correction_command
to also skipsalobj.base.AckTimeoutError
.Add new
wait_m1m3_settle
and call it before closing the booster valve inm1m3_booster_valve
context manager.For now this only waits for a pre-defined time, but in the future we should implement a better way to determine if M1M3 has settled or not.
In
base_tcs.py
, update_handle_in_position
to not ignore timeout error when waiting for a new event in the waiting loop.
v0.30.0¶
In
maintel/mtcs.py
:Add
forceActuatorState
to mtm1m3 Slew usages.Fix lower/raise m1m3 to handle m1m3 in engineering mode.
Update
close_m1m3_booster_valve
to enable force balance system before closing the booster valves.Update
open_m1m3_booster_valve
to enter engineering mode and to disable m1m3 force balance system before opening the booster valves.Update
_handle_raise_m1m3
and_handle_lower_m1m3
to work around command timeout.Add timeout when getting
detailedState
in_execute_m1m3_detailed_state_change
.Add
disable_m1m3_balance_system
.Refactor
enable_m1m3_balance_system
to extract code into two general purpose private methods;_handle_m1m3_hardpoint_correction_command
and_wait_force_balance_system_state
.
v0.29.2¶
In
auxtel/atcs.py
, update the dome and telescope flat field position.
v0.29.1¶
In
maintel/mtcs.py
, update MTCS usages to add booster valve status event to Slew usage.
v0.29.0¶
In
tests/maintel/test_mtcs.py
:Update
test_slew_icrs
to check thatm1m3_booster_valve
is correctly called while slewing.Add unit tests for new move point to point methods.
Add unit tests for
MTCS.m1m3_booster_valve
.
In
mock/mtcs_async_mock.py
, add mocking for the m1m3 booster valve.In
maintel/mtcs.py
:Add methods to move the telescope using point to point movement instead of slewing.
Update
_slew_to
method to usem1m3_booster_valve
when executing a slew command.Add a new async context manager
m1m3_booster_valve
to handle opening/closing the M1M3 booster valve for a particular operation.
v0.28.0¶
In
maintel/mtcs.py
:Update
get_m1m3_bump_test_status
to acceptactuator_id
as an input parameter and return the primary and secondary test status. The secondary test status isNone
if the actuator has no secondary element.Extract the code that parses the M1M3
forceActuatorBumpTestStatus
into a separate method,_extract_bump_test_status_info
.Use
_extract_bump_test_status_info
in_wait_bump_test_ok
to parse the information from the M1M3forceActuatorBumpTestStatus
.Update docstring of
get_m1m3_actuator_index
andget_m1m3_actuator_secondary_index
to document exception raised by the methods and include a “See Also” session.
In
mock/mtcs_async_mock.py
, improve mocking of the m1m3 actuator testing to more closely resemble m1m3 behavior.
v0.27.1¶
In
maintel/mtcs.py
:Add a specific timeout for the hard point test that is long enough to allow it to execute.
Update
run_m1m3_hard_point_test
to wait for_wait_hard_point_test_ok
, catch timeout exceptions and raise a runtime error instead.Update
enter_m1m3_engineering_mode
to ignore timeout error incmd_enterEngineering
.
v0.27.0¶
In
auxtel/atcs.py
, add newoffset_aos_lut
method.In
maintel/mtcs.py
:Add support for running/stopping m1m3 actuator bump test.
Add support for running/stopping m1m3 hard point tests.
Add support for entering/existing m1m3 engineering mode.
Update
MTCS._wait_for_mtm1m3_detailed_state
to accept a set of expected detailed states instead of a single value.Pass timeout to
aget
inMTCS._wait_for_mtm1m3_detailed_state
.Update
MTCS._handle_m1m3_detailed_state
to pass a set with the expected state when callingMTCS._wait_for_mtm1m3_detailed_state
.Fix typos in docstring.
Add method to assert that m1m3 is in one of a set of detailed states.
Add github action to check that version history was updated.
Setup ts_cRIOpy as part of the dependencies for the CI.
Add ts_cRIOpy to the eups dependency table.
Modernize conda recipe and include ts-criopy as a dependency.
v0.26.0¶
In
base_tcs.py
, add newoffset_pa
method.In
auxtel/atcs.py
, minor improvements inoffset_done
method.In
auxtel/atcs.py
, updateopen_dome_shutter
to also work when the dome is partially opened.
v0.25.0¶
In
BaseTCS
, add newoffset_rot
method to allow offsetting the rotator position.
v0.24.3¶
In
tests/auxtel/test_atcs.py
, implement some small improvements in theATCS
test case.Call
atcs.enable_dome_following
in alltest_slew
. This will make sure themonitor_loop
runs and checks the dome position.Add two new slew tests:
Test slew icrs when telescope timeout arriving in position.
Test slew icrs when dome timeout arriving in position.
In
mock/atcs_async_mock.py
, add mocking for the atdome move azimuth command and in position event.In
base_tcs.py
, updateBaseTCS._handle_in_position
debug message to also display the timeout.In
auxtel/atcs.py
, updateATCS.monitor_position
to make log messages more similar to the ones inMTCS
.In
auxtel/atcs.py
, updateATCS.wait_for_inposition
to improve reporting of timeout failures. Instead of appending coroutines to thetasks
list, useasyncio.create_task
and give names to each of the tasks. Then, instead of simply gathering the tasks, which leads to uncomprehensive tracebacks when tasks timeouts, capture any exception and reprocess the error messages re-raising them asRuntimeError
with a more comprehensive message.In
auxtel/atcs
, updateATCS._slew
to use the more robustasyncio.create_task
instead ofensure_future
when scheduling background tasks.
v0.24.2¶
Format souce files with black 23.
Update pre-commit hook versions.
v0.24.1¶
In
constants/latiss_constants.py
, add sweetspot for new grating.Update Jenkinfile to stop using root.
v0.24.0¶
In
BaseTCS
, updateradec_from_azel
to convertAltAz
into aSkyCoord
before converting toICRS
. Directly converting fromAltAz
intoICRS
will be deprecated in the future.In
ATCS
:Add methods to enable/disable ataos corrections.
Add new method
is_dome_homed
to check if the dome is homed or not.Update
shutdown
to usedisable_ataos_corrections
instead of sending the command directly to the component.Update
home_dome
to add newforce
option and to check if dome is homed already.Rename
azimuth_open_dome
->dome_open_az
.Upadate
prepare_for_onsky
to use theenable_ataos_corrections
instead of sending the command directly,Add new method
stop_dome
to stop motion of the atdome.Update
prepare_for_flatfied
home dome.close_dome
change default option toforce=True
.Update
close_dome
to send the command whenforce=True
even if the dome is not reporting as opened.Update
prepare_for_onsky
to disable ataos corrections before opening m1.Update
prepare_for_flatfield
to disable ataos corrections before opening the mirror covers and enable them afterwards.
v0.23.3¶
In
BaseCamera
, update_handle_take_stuttered
to remove call tocmd_clear
.In
BaseCameraAsyncMock
, updateassert_take_calibration
to remove call tocmd_clear
.
v0.23.2¶
In
ScriptQueue
:Make sure
get_script_schema
can handle condition where multipleconfigSchema
, for different scripts, are published while it is executed.Fix text separator when splitting list of scripts in
list_standard_scripts
and ``list_external_scripts`.
v0.23.1¶
Add support for authorization.
v0.23.0¶
In
MTCS
:Fix doctring and logged information about behaviour when hexapod compensation mode is on in
move_camera_hexapod
andmove_m2_hexapod
,Add new methods
offset_m2_hexapod
andoffset_cam_hexapod
that offset the M2 and camera hexapod respectively.This method can be used when performing optical alignment with the MTAlignment component or when performing optical alignment with curvature wavefront sensing to take the intra/extra focal data.
v0.22.1¶
Update
ATCS
unit test to use the newATCSAsyncMock
class.Update
MTCS
unit test to use the newMTCSAsyncMock
class.Add new
MTCSAsyncMock
class that implementsRemoteGroupAsyncMock
forMTCS
.Add new
ATCSAsyncMock
class that implementsRemoteGroupAsyncMock
forATCS
.In
MTCS
:Add compatibility with xml>12.
Update
reset_m1m3_forces
to usemtm1m3.cmd_clearActiveOpticForces
instead of setting the forces to zero.
Update pre-commit config file with latest version of libraries and to add support for
isort
andmypy
andpyproject.toml
to supportisort
.In
RemoteGroupAsyncMock
:In
get_side_effects_for
:Change return type to
Dict[str, Any]
.Stop wrapping side effects in mocks.
Add side effect to handle flushing events.
Add
get_all_checks
method that creates a copy of thecheck
attribute from theremote_group
.Override super class
run
method to setup random DDS partition prefix and set LSST_SITE.In
setup_basic_mocks
, setup data structure to support handling summary state.In
get_spec_from_topics
, addDataType
to topic spec.In
get_component_topics
, add “tel” prefix to telemetry topics.Add
flush_summary_state_for
to create a side effect to mock theflush
method.In
set_summary_state_for
, fixset_summary_state
to append a copy of summary state to thesummary_state_queue
.In
next_summary_state_for
, fixnext_summary_state
to return the value ofsummary_state
instead of popping the value fromsummary_state_queue
.In
set_component_commands_arguments
, fix filtering of which topics are commands.
Ignore files generated by pypi.
v0.22.0¶
Add new type hints to allow type annotation of methods and coroutines that has signature like
func(**kwargs: Any) -> None
.Improve how
RemoteGroupAsyncMock
mocks aRemoteGroup
.Instead of making each
Remote
a free formAsyncMock
, create a spec based on the component interface. This means, trying to assess a member that is not part of the CSC interface raises anAttributeError
exception, which is usefull to catch interface changes, like topics that are renamed and such.It also adds functionality to catch changes in topic payloads. For commands, create methods that check command call payloads and raise exception if a topic attribute is not part of the command definition. For events and telemetry, add a method to create
SimpleNamespace
instances from the topics structure.Add new
BaseCameraAsyncMock
mock class, to facilitate mocking/testing classes derived fromBaseCamera
without the need to use the middleware. This considerably reduces the time needed to setup the classes for testing allowing us to expand the test coverage considerably without too much of a time penalty.Refactor
ATCS
tests to use the newBaseCameraAsyncMock
class.Refactor
ComCam
tests to use the newBaseCameraAsyncMock
class.In
BaseCamera
, add check that stuttered image is supported by the particular interface. This is defined by the set of commands required to drive sturreted images.Add
GenericCamera
class to interface with the generic camera CSC using theBaseCamera
interface.In
ATCS
, change log level of message sent when stopping monitor loop from warning to debug.In
MTCS
, remove workaround for rotator trajectory issues that prevented us from doing more than one slew at a time.Update
.gitignore
to ignore all.log
files.
v0.21.0¶
In
BaseTCS
class:Add new functionality to allow alternative rotator angles to be specified. This features consists of two methods,
BaseTCS.set_rot_angle_alternatives
and a generatorBaseTCS.get_rot_angle_alternatives
. By default the altenative angles are +/- 180 and +/- 90 degrees.BaseTCS.get_rot_angle_alternatives
recieves a desired angle and willyield
a sequence of numbers consisting of the original number first, then a the original number + the alternative. Therefore, by default, if one callsBaseTCS.get_rot_angle_alternatives
, it will yield the sequence 0, 180, -180, 90, -90.It is possible to override the sequence of alternaive angles by calling
BaseTCS.set_rot_angle_alternatives
, passing a new sequence of numbers. It is not necessary to pass the 0 value and duplicated entries are removed.In
slew_icrs
use new rotator angle alternatives to cycle throught different rotator angles when the value requested is outside the rotator limits.
v0.20.1¶
Fix issue with
LATISS.setup_instrument
which would fail if linear stage position was passed asNone
, which is a valid entry.Add unit test for
LATISS.setup_instrument
.
v0.20.0¶
Update build configuration to use
pyproject.toml
.Implement type-checking in the entire package.
v0.19.0¶
Add new high-level class to interact with the
ScriptQueue
, and child classes to interact with ATQueue and MTQueue.
v0.18.2¶
Add support for stuttered image keywords.
In
BaseCamera
:Update
_handle_take_stuttered
method to callset
and thenstart
separately, so it can set thetimeout
parameter.
v0.18.1¶
MTCSMock
: stop calling lsst.ts.salobj.topics.WriteTopic.write with arguments.
v0.18.0¶
In
BaseCamera
:Add support for new images types: ACQ, CWFS, FOCUS.
Refactor
BaseCamera.expose
to use the newCameraExposure
data class and break it down into smaller pieces.Add support for stuttered image. This image type opens the camera shutter, start the exposure manually and then allow users to shift the readout manually. This allow us to produce “stuttered” images with starts shifting in the read direction at each iteration.
Add support for taking snaps in
take_object
.
Add unit tests for stuttered images for ComCam.
Add unit tests for stuttered images for LATISS.
Add support for stuttered images in
ComCamMock
.Add support for stuttered image in
LatissMock
.Add new dataclass CameraExposure to host parameters for exposures.
Add unit test for new image types for ComCam.
Add unit tests for new image types for LATISS.
v0.17.0¶
In
test_atcs
, renametest_monitor
->test_monitor_position_dome_following_enabled
, and make sure dome following is enabled before running test. Addtest_monitor_position_dome_following_disabled
test to check condition when dome following is disabled.Update ComCamMock to correctly take into account
numImages > 1
.In
tests/maintel/test_mtcs.py
: * Add unit test forMTCS.move_rotator
method. * Fix typomtmout
->mtmount
in two method names.In ATCS, update how _slew handles monitor.
In MTCS, add
move_rotator
method to handle moving the rotator and waiting for the movement to complete.In
BaseCamera
, usenumImages
feature from Camera to take multiple images, instead of looping.In
ATCS.monitor_position
, handle condition when dome following is disabled but dome checking is enabled.In
MTCS._slew_to
, juggle rotator position by 0.1 degrees when working around trajectory problem. This will make sure the rotator moves a bit, thus resetting the trajectory.In
ATCS.slew_dome_to
, fix handling ofmonitor_position
by creating a background task.In
ATCS.slew_dome_to
, improve handling dome positioning. The ATDome will overshoot if slew is large enough, the method will send a move command, use_handle_in_position
to determine when the dome is in position and then check that the dome is still in position afterwards. If it is not, it will iterate up to_dome_slew_max_iter
times. The method is also not using the internal dome in position flag, which only checks if the dome is obscuring the telescope or not. This algorithm is only suitable for on sky slewing operation and not for when we are positioning the dome.In
ATCS.slew_dome_to
, use_handle_in_position
to determine when dome is in position.Update
MTCS.wait_for_rotator_inposition
to use_handle_in_position
.
v0.16.1¶
Update to black 22.
v0.16.0¶
Change archiver references to oods ones due to image creation process change (DMTN-143).
v0.15.0¶
Update for ts_salobj v7, which is required. This also requires ts_xml 11.
Rename
settings
tooverrides
.RemoteGroup
: use “” as the default override for all components. Remove theinspect_settings
method and renameexpand_settings
toexpand_overrides
.
v0.14.0¶
Remove usage of deprecated methods from salobj.
In
BaseTCS
: * Fix handle in position event to useflush=True
when dealing with potential race condition. * Change default value ofstop_before_slew
parameter in slew commands fromTrue
toFalse
.In
ATCS
: * Remove secondary check for in position condition.This check was a workaround for a problem we had with the ATMCS
inPosition
event long ago but it was now causing problems.Fix
monitor_position
unit tests.Implement
handle_in_position_event
for ATMCS.Update unit tests for new default value of
stop_before_slew
.Mark
test_find_target
as flaky. This test reaches Simbad remote server, which can be flaky sometimes.Augment atdometrajectory mocks in tests/auxtel/test_atcs.py.
In
slew_dome_to
, wait only for atdome to arrive in position.
In
MTCS
: * Move rotator synchronization to outside “stop_before_slew”. * Update unit tests for new default value ofstop_before_slew
.
v0.13.2¶
Fix unit test failure in
slew_object
due to coordinate convertion issue.
v0.13.1¶
Make MTCS non-concurrent.
In
BaseTcs
add interface to enable/disable concurrent operation.In
RemoteGroup
implement mechanism to prevent concurrent operation.
v0.13.0¶
Update MTCSMock for the latest xml.
Add unit tests for additional keywords in LATISS and ComCam.
In
BaseCamera
: * Implement reason and program keywords on thetake_
methods. * InBaseCamera.next_group_id
replace all occurrences of “-” and “:” by empty strings. * Addreason
andprogram
to the interface ofexpose
* Provide a base implementation forexpose
. * Add new abstract methodparse_sensors
, that receives asensors
string and return a validsensors
string for the particular implementation. * Add new abstract propertycamera
that should return the remote to the camera. * Add newget_key_value_map
method that parses its inputs into a validkeyValueMap
entry for the cameras takeImage command.In
ComCam
: * Remove specialized implementation of theexpose
method. * Add new abstract property,camera
. * Add new abstract methodparse_sensors
* Updatetake_spot
to implement test_type, reason and program keywords.In
LATISS
: * Remove specialized implementation of theexpose
method. * Add new abstract property,camera
. * Add new abstract methodparse_sensors
v0.12.1¶
Update expand
RemoteGroup.inspect_settings
to deal with non-configurable components.
v0.12.0¶
Update the code to use ts_utils.
Modernize the unit tests to use bare asserts.
v0.11.2¶
Update
mock.BaseGroupMock
to be compatible with xml 10.1 and sal 6.In
MTCS
: * Disable ccw_following check on mtcs slew. * Implement work around to rotator trajectory problem that cannot complete 2 subsequent moves.The work around consist of sending a move command to the rotator current position then stopping, thus resetting the trajectory.
v0.11.1¶
Update conda recipe to add new dependencies; pandas and scipy.
Update setup.py to include
pd
files.Unit tests for
BaseTCS
new catalog feature.In
BaseTCS
: * movefind_target
code intofind_target_simbad
. Infind_target
, usefind_target_local_catalog
if catalog is loaded or tryfind_target_simbad
otherwise or if it fails to find a target in the local catalog. * implement method to find target given an az/el position, magnitude range and radius. * implement method to query objects from the local catalog, when a catalog is loaded, or querySimbad
if the catalog is not loaded or the object is not found in the local catalog. * add functionality to manage local catalogs, which includes:list available catalogs.
load a catalog from the list of available catalogs.
check if a catalog was loaded.
clear catalog.
Add
BaseTCS.object_list_get_all
method to retrieve a list of all the object names in the object list.Add utility function to return the path to the catalog module.
Add
catalogs
module to store local object catalogs.Add
hd_catalog_6th_mag.pd
catalog file. This is a cut out of the HD catalog with southern stars brighter than 6th magnitude, used for testing the package. It contains roughly 1500 objects.Setup
gitattributes
to track*.pd
files with git large file storage.In
MTCS
: * replaceaxesInPosition
byelevationInPosition
andazimuthInPosition
on all usages. * fix for xml 10.0.0. EventaxesInPosition
was removed, need to useelevationInPosition
andazimuthInPosition
instead.In
ATCS
: * addATDomeTrajectory.evt_followingMode
toSlew
usage. *assert_m1_coorection_disabled
deal with situation where nocorrectionEnabled
event is seen.Update Jenkinsfile to pull git lfs files before running tests.
v0.11.0¶
In MTCS: * add longer timeout for raising/lowering the system. * implement
reset_m2_hexapod_position
. * implementreset_camera_hexapod_position
. * implementmove_m2_hexapod
. * implementmove_camera_hexapod
. * implementenabled_compensation_mode
anddisable_compensation_mode
. * implementreset_m2_forces
. * implementenable_m2_balance_system
. * implementreset_m1m3_forces
. * omplement enable_m1m3_balance_system. * Implement abort_raise_m1m3. * implement lower_m1m3 method. * add method to handle raising m1m3. * add methods to handle m1m3 detailed state. * ImplementMTCS.raise_m1m3
method. * ImplementMTCS._execute_m1m3_detailed_state_change
, a method that executes a command that change M1M3 detailed state and handle waiting for it to complete.In
test_mtcs
: * implementtest_check_mtm1m3_interface
. * add support for summary state and heartbeat on the mocks. * rename import ofastropy.units
fromu
tounits
. * add support for summary state and heartbeat on the mocks. * add logger toTestMTCS
.Fix
get_software_versions
docstring.Add new
BaseTCS._handle_in_position
method to take care of in position event in a generic way.Unit tests for
get_work_components
.In
RemoteGroupd
addget_sfotware_versions
method to return the last sample ofsoftwareVersions
event for all components or a subset.Fix unit test on get_simulation_mode.
In test_base_group, implement usage of
DryTest
to allow implementation of faster unit tests that don’t require Remotes/Controllers.Use
_aget_topic_samples_for_components
inget_simulation_mode
In
RemoteGroup
: * add new usages:CheckSimulationMode
CheckSoftwareVersions
DryTest
add new utility method
_aget_topic_samples_for_components
to get generic samples.usages
All
add new generic events.add
RemoteGroup.get_work_components
method.add new method
get_simulation_mode
that returns a dictionary with the last sample of the eventsimulationMode
for all components or a subset specified in thecomponents
input parameter.RemoteGroup.set_state
use new methodget_work_components
.add
RemoteGroup.get_work_components
method. This method receives a list of component names, and either raise an exception (if one or more components are not part of the group) or return a list of components. If called withNone
, return the name of all components.
Add new utility method
handle_exeception_in_dict_items
, to handle exception stored in dictionaries items.Add new utility method
handle_exeception_in
, to handle exception stored in dictionaries items.Remove the delay in ComCam image taking.
In ATCS: * Increase timeout in open/close m1 cover. * add focusNameSelected. to startUp usages. * add ataos
correctionEnabled
event to usages. * add atdometrajectory followingMode event as a dependency to usages. * updateprepare_for_onsky
to allow enabling dome following at the end. * MakeATCS
more resilient when the dome following is disabled.
v0.10.3¶
Add
DryTest
toLATISSUsages
. This is useful for unit testing.In open/close m1 cover and vents check that m1 correction is disabled before proceeding.
Add feature to check that ATAOS m1 correction is disabled.
In
BaseTCS.find_target
fix magnitude range to use input parameter instead of hard coded value.
v0.10.2¶
In
ATCS
: * Small fixes to find_target and object_list_get.Fix
ATCS.open_valve_instrument
to callcmd_openInstrumentAirValve
instead ofcmd_m1OpenAirValve
. InATCS.usages
, add mainDoorState event to the list of required events on atdome. InATCS.open_m1_cover
useopen_valve_main
instead ofopen_valves
. Only main valve needs to be open to open the m1 cover. InATCS.prepare_for_onsky
, stop enabling the components and add a check that all components are in enabled state. InATCS.prepare_for_flats
, add a step to verify that all components are in enabled state.In
RemoteGroup
: * Implementassert_all_enabled
method to verify that all components in the group are in enabled state.In
ComCam
: * Implementget_available_instrument_setup
.In
LATISS
: * Implementget_available_instrument_setup
.In
BaseCamera
: * Add new abstract methodget_available_instrument_setup
.
v0.10.1¶
In ATCS update algorithm to open m1 cover.
Add object storing and finding facility to BaseTCS.
In ATCS add functionality to stop the monitor position loop.
v0.10.0¶
Refactor MTCS and ATCS unit tests to use
DryTest
mode (no remotes) and mock the expected behavior withunittest.mock
. This allows the unit tests to run much more quickly and reliable. The old unit tests relying on DDS will be converted to integration tests.Add support in
RemoteGroup
andBaseTCS
to support setting up the class when there is no event loop running.In
ATCS._slew
, pass in the internalcheck
tomonitor_position
.In
MTCS
: * Add support for enabling/disabling CCW following mode. * Add check that ccw following mode is enabled when doing a slew activity.
v0.9.2¶
Fix
absorb
option in offset_azel.Update how
BaseTCS._slew_to
handlecheck
. This fixes an issue where callingprepare_for_onsky
andprepare_for_flatfield
would leave the users check attribute in a different state than that set by the user. This was also causing theprepare_for_onsky
method to not open the dome.Fix checking that ATDomeTrajectory is in DISABLE while moving the dome.
v0.9.1¶
Update emulators to publish data useful for INRIA.
v0.9.0¶
Implement general purpose utility method in
RemoteGroup
to get components heartbeats and check liveliness of the group.Add
enable_dome_following
anddisable_dome_following
intBaseTCS
to use newATDomeTrajectory
setFollowingMode
command. * Implement new enable/disable dome following inATCS
class.Set event specifying that dome is in position.
Implement offset_x/offset_y functionality in slew commands so users can specify an offset from the original slew position.
v0.8.3¶
Update close method in
RemoteGroup
to only close the domain if it was not given by the user.In
ATCS.close_m1_cover
, flushm1CoverState
before sending the command.Update
MTCSUsages.All
to include missing events/telemetry.
v0.8.2¶
v0.8.1¶
Update rotator strategies to use new pointing facility features. It is now possible to keep the rotator at a fixed orientation while tracking a target in az/el.
Expose azimuth wrap strategy to the users.
Add new
DryTest
usage toMTCS
class that allows creating the class without any remote (useful for unit testing).Add Coordinate transformation functionality to
BaseTCS
class to allow transformation or Az/El to Ra/Dec and vice-versa. Add method to compute parallactic angle from ra/dec toBaseTCS
.Rename
utils.parallactic_angle
method toutils.calculate_parallactic_angle
and update docstring.Implement publish heartbeat loop in
BaseGroupMock
.Fix issue closing ATCSMock class. Using
asyncio.wait_for
is also causing some issues at close time. Replace it with a slightly dumber but more reliable procedure inBaseGroupMock
.Add documentation about new coordinate transformation facility.
v0.8.0¶
Changes:
Add new feature to support synchronization between BaseTCS and BaseCamera.
Implement synchronization feature in ATCS.
Implement placeholder for synchronization feature in MTCS.
v0.7.6¶
Changes:
Reformat code using black 20.
Pin version of ts-conda-build to 0.3 in conda recipe.
v0.7.5¶
Changes:
Change default offset to
relative=False
.Deprecate use of
persistent
flag in offset commands.Add new
absorb
flag to offset commands to replacepersistent
.Add unit tests for offset commands.
Replace usage of
asynctest.TestCase
withunittest.IsolatedAsyncioTestCase
.Improve documentation on offset commands.
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 7.1.0
ts_idl >= 2.0.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.7.4¶
Changes:
Add workaround to edge condition while homing the ATDome. Now if the dome is pressing the home switch and we send a home command, it will simply register the dome as homed and won’t send any event to indicate the activity is complete.
Add method to reset all offsets in base_tcs.
Add set_rem_loglevel method in RemoteGroup, that allows users to set the log level for the remotes loggers.
Fix “restore check” feature in prepare for flats.
Fix direction of PhysicalSky rotator strategy.
Update ATCS to support specifying rotator park position and flat field position. When using point_azel to slew the telescope for a safe position, use the current nasmyth position.
Fix setting rotFrame in xml7/8 compatibility mode.
Update ronchi170lpmm sweet spot.
Support differential ra/dec tracking in BaseTCS.
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 7.1.0
ts_idl >= 2.0.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.7.3¶
Changes:
Updated plate scale to correct math error.
Modify latiss_constants.py to include a sweet-spot for the hologram. Also to make the plate-scale consistent.
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 7.1.0
ts_idl >= 2.0.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.7.2¶
Changes:
Update
docs/conf.py
.Update version history.
Implement xml 7/8 compatibility.
Fix
add_point_data
in BaseTCS.Fix timeout in opening/closing the dome.
Enable atspectrograph ATAOS correction in
ATCS.prepare_for_onsky
.
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 7.1.0
ts_idl >= 2.0.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.7.1¶
Changes:
Implement xml 7/8 compatibility.
Fix
add_point_data
in BaseTCS.Fix timeout in opening/closing the dome.
Add enable atspectrograph ATAOS correction in
ATCS.prepare_for_onsky
.
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 7.1.0
ts_idl >= 2.0.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.7.0¶
Changes:
Implement workaround for issue with ATDome not reliably finishing open/close dome commands.
Fix offset_done method in ATCS, to properly wait for offset to be completed.
Improve handling of check.<component> in ATCS.shutdown.
Add boresight xy-axis parity determination in ATCS.
Implement xml 8 backward compatibility for MTMount in MTCS.
Add scripts to run mocks from the command line.
Add general base_tcs._offset method to manage offsets.
Implement persistent offsets.
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 7.1.0
ts_idl >= 2.0.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.6.0¶
Changes:
Implement changes required by xml 7.1: * Removes NewMTMount (replaced by MTMount) * Update MTMount topics names and attributes.
Improve error messages when heartbeat monitor fails.
Improve error messages when slew/track target commands fails.
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 7.1.0
ts_idl >= 2.0.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.5.1¶
Changes:
Stop using topic
application
fromMTRotator
which is marked for deprecation.Remove git commit hooks and implement pre-commit.
Implement Jenkins shared library for conda build.
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 7.0.0
ts_idl >= 2.0.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.5.0¶
Changes:
Implement fixes required for xml 7.
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 7.0.0
ts_idl >= 2.0.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.4.2¶
Changes:
Remove use of features marked for deprecation in salobj 6.
Fix copyright messages that mentioned ts_standardscripts as the source package.
Use ts-conda-build metapackage to build conda packages.
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 6.1.0
ts_idl >= 1.3.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.4.1¶
Changes:
Move
check_tracking
tobase_tcs
.Test
check_tracking
intest_mtcs
.
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 6.1.0
ts_idl >= 1.3.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.4.0¶
Add
UsagesResources
class. The class provides a better interface for developers to encode use case information to control/reduce resources needed for operating with the control classes. Implement newUsagesResources
class on existing classes:ATCS
,LATISS
,ComCam
,MTCS
.In
RemoteGroup
, addcomponents_attr
, which has a list of remotes names and makecomponents
return a list of CSC names. CSC names are the string used to create the Remotes (e.g.,MTMount
orHexapod:1
) whereas remote names are the name of the CSC in lowercase, replacing the colon by and underscore (e.g.,mtmount
orhexapod_1
).
Requirements:
ts_salobj >= 5.6.0
ts_xml >= 6.1.0
ts_idl >= 1.3.0
IDL files for all components, e.g. built with
make_idl_files.py
v0.3.0¶
Some minor changes to
RemoteGroup
to support components that only send out telemetry and events and do not reply to commands. This is to support the MTMount component.Add
BaseGroupMock
class. This class will make writing of mock classes with group of CSCs slightly easier, by taking care of a the basics.Add
BaseTCS
class to support genericTCS
behavior.Add
BaseCamera
class to support genericCamera
behavior.Modify
ATCS
andLATISS
mock classes to use the BaseGroupMock.Initial implementation of
MTCS
with mock class and unit tests. Currently implemented the basics and a couple of slew commands.Some improvements on how resources isolation (using check namespace) is implemented in TCS classes.
Requirements:
ts_salobj >= v5.6.0
ts_xml >= v6.1.0
ts_idl >= 1.2.2
IDL files for all components, e.g. built with
make_idl_files.py
v0.2.2¶
Fix flake8 F541 violations.
Requirements:
ts_salobj >=v5.6.0
ts_xml >=5.1.0
ts_idl >=v1.1.3
IDL files for all components, e.g. built with
make_idl_files.py
v0.2.1¶
Update ATCS
for compatibility with ts_salobj 5.13.
Use the set_start
method of remote commands, where practical.
Fix a bug in RemoteGroup.set_state
: settingsToApply
could be None
in calls to lsst.ts.salobj.set_summary_state
.
Requirements:
ts_salobj >=v5.6.0
ts_xml >=5.1.0
ts_idl >=v1.1.3
IDL files for all components, e.g. built with
make_idl_files.py
v0.2.0¶
Update package for compatibility with ts_xml 5.1.
Requirements:
ts_salobj >=v5.6.0
ts_xml >=5.1.0
ts_idl >=v1.1.3
IDL files for all components, e.g. built with
make_idl_files.py
v0.1.0¶
Classes moved out of ts_standardscripts into the new repository.
Implement new feature, intended_usage
, to allow users to limit the resources
loaded at initialization time (useful for writing SAL Scripts).
Requirements:
ts_salobj >=v5.6.0
ts_idl >=v1.1.3
IDL files for all components, e.g. built with
make_idl_files.py