Change Log
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
Unreleased
Version 8.2.4
Fixed change events for dynamic attributes that have no defined abs change tolerances.
Version 8.2.3
Bump simulators version to 5.9.2
Version 8.2.2
Bump sculib version to 1.2.2
Version 8.2.1
Upgraded ska-mid-dish-simulators to v5.9.1 - Reduce opc-ua logging
Version 8.2.0
Upgraded ska-mid-dish-simulators to v5.9.0 - Updated healthstate to match the ICD.
Now [UNKNOWN, NORMAL, DEGRADED, FAILED]
Aligned the spectrumSample attribute implementation with the SPFRx hardware behavior.
Updated .make submodule
Version 8.1.0
Implemented the ability to retake authority from DSC implicitly through commands that require authority.
Added a new command, RetakeAuthority, which can be used to retake authority from the DSC explicitly.
Upgraded ska-mid-dish-simulators to v5.8.1
v5.8.0 Implemented TakeAuth and ReTakeAuth changes in DSC simulator.
v5.8.1 Added attribute ‘spectrumSample’ to SPFRx simulator
Upgraded ska-tango-base to v1.1.1
Upgraded ska-tango-util to v1.1.1
Version 8.0.5
Resolved SKB-1267
Version 8.0.4
Upgraded pytango to 10.1.4
Upgraded numpy to 2.0.0+
Upgraded sculib to 1.1.2
Upgraded ska-mid-dish-simulators to v5.7.0
Upgraded ska-tango-base to v1.0.8
Upgraded ska-tango-util to v1.0.8
Implemented destructor to clean up allocated resources when Init() is called.
Improved tango interface documentation styling
Version 8.0.3
Re-release of 8.0.2 because of issue with pushing the 8.0.2 image to Harbor
Version 8.0.2
Resolve segmentation fault caused by pushing an event with ATTR_INVALID -> ATTR_VALID transition
Fix late-binding closure behaviour for error status attributes fget
Downgraded ska-tango-base to v1.3.2
Upgraded ska-mid-dish-simulators to v5.6.2.
Fixed simulator to align the dscstate with the PLC regarding activating/deactiving state.
Reduced the servo position frequency updates by a factor of 4.
Version 8.0.1
Fix error status node name (errTiltTwoIounit to errTiltTwoIoUnit)
Version 8.0.0
DSManager no longer waits for the horn to complete on commands triggered by attribute writes
Change the ErrorStatus attribute definitions so that they are not part of the dynamic attributes
Version 7.1.0
Fix validation handling for invalid slew inputs and ensure task callback is rejected correctly.
Upgraded ska-mid-dish-simulators to v5.5.3.
Set Tango attributes quality to ATTR_INVALID for None values.
Fix issue with dynamic attributes not updating correctly for False values.
Bump ska-tango-base and ska-tango-util to v1.0.5.
Version 7.0.4
Updated ska-tango-base and ska-tango-utils Helm chart versions to v1.0.3
Upgraded ska-mid-dish-simulators to v5.5.2
Support numeric and prefixed dish IDs in Helm charts.
Version 7.0.3
Upgraded ska-mid-dish-steering-control to version 1.1.1 with fix for catching errors when disconnecting from lost server
Version 7.0.2
Removed enforced LP transition after Move2Band in DS Manager
Version 7.0.1
Minor fix to SetStandbyMode command handler ensuring progressive dishMode transition from OPERATE dishMode
Version 7.0.0
Updated implementation to match new states & modes ICD rev 6
SetStandbyLPMode and SetStandbyFPMode commands removed and replaced with SetStandbyMode
STANDBY_LP and STANDBY_FP operatingmode values removed and replaced with STANDBY
ESTOP operatingmode renamed to LOCKED
SetMaintenanceMode command removed
Stow now runs in thread as to not timeout the Tango command if authority is taken and the device needs to wait for the safety horn
Version 6.5.1
Fixed CAR image path
Upgraded ska-mid-dish-simulators to v5.4.2
Version 6.5.0
Now applying absolute event _and_ archive limits
“Azimuth.MotorOne.mActVelocity”: 0.1,
“Azimuth.MotorTwo.mActVelocity”: 0.1,
“Elevation.MotorOne.mActVelocity”: 0.1,
“Elevation.MotorTwo.mActVelocity”: 0.1,
“Elevation.Status.p_Act”: 0.001,
“Elevation.Status.p_Enc”: 0.001,
“Elevation.Status.p_Set”: 0.001,
“Elevation.Status.p_Shape”: 0.001,
“Azimuth.Status.p_Act”: 0.001,
“Azimuth.Status.p_Enc”: 0.001,
“Azimuth.Status.p_Set”: 0.001,
“Azimuth.Status.p_Shape”: 0.001,
“Pointing.Status.TotalPointCorr_Az”: 0.5,
“Pointing.Status.TotalPointCorr_El”: 0.5,
Explicitly ignoring unneeded and busy nodes
“Azimuth.Status.p_Dev”,
“Azimuth.Status.p_PointCorr”,
“Elevation.Status.p_Dev”,
“Elevation.Status.p_PointCorr”,
Updates logic to handle case when node “CommandArbiter.Status.DscCmdAuthority” is None
Version 6.4.2
Added in attribute lastCommandInvoked to report the last command invoked on DSManager.
Upgraded sculib to 1.0.1
Catching all errors in _call_opc_ua_method now.
Added TakeAuthority command to acquire command authority on the DSC.
Added ResetAxesCommand to reset errors on the DSC.
Upgraded ska-mid-dish-simulators to version 5.4.1.
Version 6.4.1
Dropped the archive rate for achievedPointing and currentPointing attributes
Trimmed the logs
Updated lastcommandupdate attribute format
Version 6.4.0
Upgraded ska-mid-dish-simulators to version 5.2.0
Restructured acceptance test folders and fixture scoping to solve takeAuth/releaseAuth test issues.
Upgraded ska-mid-dish-steering-control to version 0.11.1
Fix: Improved DSManager disconnect/cleanup logic to ensure reconnection after bad shutdowns.
Removed deprecated progress keyword argument from task callbacks - now found in Tango attr, status.
Added in new a callback, command_progress_callback, to report progress of long running commands.
Fixed resolution of load mode enum between controller implementations
Version 6.3.1
Upgraded to PyTango 10.0.3 to solve memory leak issue.
Version 6.3.0
Now only pushing pointing related Tango events every 200ms - Publishing period still undefined in the TM to Dish ICD
Added in a new attribute, dscCtrlState (DSC Control State), an aggregation of dscCmdAuth and dscState.
Version 6.2.0
Added/exposed new Tango command, ReleaseAuth, which can be used to release the command authority.
Expanded tracking tests
Added/exposed new Tango attributes, staticOnInput, tiltOnInput, and ambTOnInput, which can be used to set the input params to PmCorrOnOff
Version 6.1.0
Added/exposed read-only attributes, dscCmdAuth, currentMode, ApplicationState.
Added/exposed a Read/Write attribute band6PointingModelParams.
Updated ApplicationState Enums.
Changed the test reset mode from Low Power to Full Power
Version 6.0.0
Add new Tango command, ExecuteOPCUACommand, which can be used to execute any OPC-UA command on the device.
Add new Tango commands: InterlockAck and Unstow
Add test_track_pattern acceptance test to run tracking test with track table input from csv files
Add manual job (k8s-test-runner-track-patterns) to gitlab pipeline to run test_track_pattern acceptance test
Aligned and added missing indexer position mappings with dish structure controller
Version 5.0.0
Moved source location of cache file to writable directory
Added a new tango attribute lastcommandupdate to track the last command invoked
Version 4.3.1
Upgraded ska-mid-dish-simulators to version 4.4.3
Version 4.3.0
Upgraded ska-mid-dish-steering-control to version 0.9.1 to address PLC connection timeouts
Updated ska-tango-base and ska-tango-utils Helm chart versions to 0.4.20
Added a new tango attribute lastcommandupdate to track the last command invoked
Version 4.2.1
Updated simulator to 4.4.2 to resolve SKB-768
Version 4.2.0
Added acceptance tests to test overlapping movement command interactions
Updated versionId to match the release version
Version 4.1.0
Exposes a new Tango command, GetCurrentTAIOffset, to expose the TAI offset as seen by the DSManager on the tango layer
Version 4.0.0
Upgraded ska-mid-dish-steering-control to version 0.7.1
Updated ska-tango-base Python dependency to version 1.3.1
Updated ska-tango-base and ska-tango-utils Helm chart versions to 0.4.18
Removed ExposeDynamicAttributes command
Added DSNodeTreesToMonitor Tango property to control which OPCUA nodes will be searched to have their attributes added dynamically
Updated DevState to OK at init and then to RUNNING only when an event has been received for each monitored opcua node
Version 3.1.2
Fixed memory leak.
Added in a check before Stow(False),Move2Band and Slew2AbsAzEl commands are executed to ensure that the DSC’s PowerState is FULL_POWER.
HealthState reports OK on Startup.
Bump ska-mid-dish-steering-control to v0.5.1 and remove OPCUAControl subclass
Version 3.1.1
Cleaned up log message
Version 3.1.0
Added Band0PointingModelParams
Bump ska-tango-util to v0.4.14
Bump ska-tango-base to v0.4.14
Bumped simulators version to 4.2.3
Updated dockerfile to use new base images and improved docker image build
Add SubscriptionManager and OPCUAControl (sculib) modules
Swapped the OPCUAComponentManager with the SCUlib OPCUAComponentManager
Removed redundant code (Due to the inclusion of sculib)
Version 3.0.1
Added trackTableCurrentIndex and trackTableEndIndex attributes that reflect track table indexes
Version 3.0.0
Bump ska-tango-util to v0.4.13
Bump ska-tango-base to v0.4.13
Bumped simulators version to 4.2.1
Version 2.2.0
Added in Read/Write dscPowerLimitKw attribute to be used when FP, LP and Slew are invoked.
Bumped simulators version to 4.2.0
Version 2.1.2
Updated error message string to contain the error from OPCUA
Version 2.1.1
Bumped simulators chart version to 4.1.2
Version 2.1.0
Updated ska-mid-dish-simulators to v4.1.0 that uses servo loops for dish movement.
Added SetPowerMode tango command.
DSC states updated to align with PLC in ITF.
Changed TrackLoadTable to a FastCommand.
Version 2.0.1
Added B5a and B5b pointing model param attributes
Pointing update interval was reverted to 50ms due to reduced overhead from recent log changes.
Application and System nodes cached - reduce time.
Updated the ApplicationState helper function to default to nodeID since the ITF PLC has an issue with the BrowseName.
Casted pointing model values in update_pointing_model_params.
Makes us of TiltOnType enum value as specified in ICD.
Version 2.0.0
Changed OPCUA method call exception handling to handle all UA related exceptions
Updated to align with dish structure controller ICD v0.0.10
Migrated remaining OPCUA method calls to use updated argument signature which requires session id
HealthState mapping triggered by CurrentMode and Application State nodes
Removed achievedPointingAz and achievedPointingEl attributes.
Added currentPointing attribute.
Updated the logic to use a subset of currentPointing for the achievedPointing attribute.
Version 1.5.0
Moved dynamic attribute creation to Tango command
Added connectionState attribute
Moved act_staticOffset_value_Xel and act_staticOffset_value_El from dynamic attributes to static
Reworked the STOW command to bypass the LRC queue
Updated to align with dish structure controller ICD v0.0.7
Implemented session ID management
Resolved SKB-443
Changed DS Manager healthState to report OK when init is complete
Changed DS Manager State to report RUNNING when init is complete
Version 1.4.1
Added per command logging
Updated to use SKA epoch for TAI timestamps
Version 1.4.0
Updated ska-tango-base to v1.0.0
Updated PyTango to v9.5.0
Version 1.3.1
Update TAI conversion in source timestamp conversion and track start time
Version 1.3.0
Update docs to demonstrate running devices as nodb
Added attributes azimuthSpeed and elevationSpeed used in slew command
Removed explicity call to activate and deactivate axes on STANDBY_LP and STANDBY_FP
Added TrackProgramMode attribute to be used for selecting TABLE or POLYNOMIAL tracking
Refactored DS manager OPC-UA subscriptions callback
Reduced OPC-UA subscriptions from over 20 to 3
Grouped subscriptions into 3: Pointing, Static and Dynamic
Updated ska-tango-util to 0.4.11
Updated ska-tango-base to 0.4.10
Updated ska-mid-dish-simulators to 2.0.2
Added tango attributes achievedTargetLock and configureTargetLock
Version 1.2.7
Implemented device monitor - Solution to SKB-293
Updated Simulators to 1.6.6
Version 1.2.6
Change ds-manager device name to conform to ADR-9
Bumped up dish simulators version to 1.6.5
Set DSC start_time parameter for Track command to 1 second in the future from when Track is called
Expose achievedPointingAz and achievedPointingEl attributes
Expose trackInterpolationMode attribute and add it to the TrackStart method call
Version 1.2.5
Expose DSC variables from OPC-UA server as dynamic attributes on DS Manager
Version 1.2.4
Rename tango attribute (DSSimFqdn to DSCFqdn)
Expose helm attribute for list of dscFqdns for each dish id device
Updated TrackStop command on DSManager
Update simulator version 1.6.3
Update tango-base version 0.4.8
Update tango-util version 0.4.10
Version 1.2.3
Use client certificates for CETC54 OPC-UA namespace
Enable and push archive events for attributes
Fix device naming for dish IDs 100 and more
Update to simulators version v1.6.2
Version 1.2.2
Use ska-ser-sphinx-theme for documentation
Explicitly convert dish IDs to strings in template
Version 1.2.1
Resolve bug in device init method
Remove write to OPC-UA nodes on desiredPointing write
Version 1.2.0
Update TrackLoadTable to accept DevFloat SPECTRUM
Version 1.1.2
Update to simulators version v1.4.3
Version 1.1.1
Update to simulators version v1.4.2 which includes band2PointingModelParams changes
Updated ska-tango-base in charts to be disabled by default
Version 1.1.0
Exposing the desiredPointing
Exposing the band2PointingModelParams from DS
Version 1.0.0
Exposing the pointing coordinates on DS Manager from DS
Version 0.0.2
Updated helm chart to make the OPC-UA server name configurable
Version 0.0.1
Added DSManager tango device
Added OPC-UA Component Manager
Implemented interface between DSManager and the component manager
Implemented interface between the component manager and the OPC-UA server
Use ska-mid-dish-simulators v1.3.0 which includes the OPC-UA server simulator