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