Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

## unreleased

Version 9.5.0-rc.1

  • Added aggregation rule descriptions to the user guide.

  • Updated SPF healthstate to match the ICD.

    • Now [UNKNOWN, NORMAL, DEGRADED, FAILED]

    • DishManager healthstate is unchanged

  • Added interlockack command

  • Added new FannedOutTangoLongRunningCommand

    • Uses lrcQueue, lrcExecuting, and lrcFinished from SKA devices to update the status of commands.

    • Used for DS & B5DC commands

  • Upgraded ska-mid-dish-simulators to v5.9.2.

    • Updated healthstate to match the ICD. - Now [UNKNOWN, NORMAL, DEGRADED, FAILED]

    • Aligned the spectrumSample attribute implementation with the SPFRx hardware behavior.

    • Added attribute ‘spectrumSample’ to SPFRx simulator

    • Implemented ReTakeAuth command on DSC simulator.

    • Updated TakeAuth command arguments to include immutable user ID on DSC simulator.

    • Updated DSC simulator AxisSelect node to match ICD.

  • Upgraded ska-tango-base to v1.1.1

  • Upgraded ska-tango-util to v1.1.1

  • Upgraded ska-mid-dish-ds-manager to v8.2.3

    • 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.

  • Limited build state fetch to only positive transitions to communication status ESTABLISHED.

  • Allowed DS and B5DC build state information to be driven by change events.

Version 9.4.0

  • See RC releases for details.

Version 9.4.0-rc.3

  • longRunningCommandResult is updated only after the Abort command execution has completed.

Version 9.4.0-rc.2

  • Bump DSManager chart to 8.0.5

Version 9.4.0-rc.1

  • Updated ConfigureBand commands to automatically apply pointing models upon execution

  • Resolved SKB-1267

  • Mitigated SKB-1240, SKB-1239, SKB-1198

  • Added tag user=operator to INFO logs for filtering operator related logs.

  • Addressed the cleanup of allocated resources when Init() is called.

  • Added new b5dcServerConnectionState attribute to reflect the state of connectivity to the B5dc component

  • Added in supplementary verification ping when an API_TimeEvent error is received before setting the devices CommunicationStatus.

  • Added a tango command to force reconnection on dish manager’s subservient devices.

  • Extended the SetStandbyFPModeAction to fan out the SetOperateMode command to the SPF device

  • Upgraded ska-mid-dish-b5dc-proxy chart to v0.1.0

    • Changed the b5dc endpoint variable in the deviceservers and values yaml files from b5dcproxy.fqdns to b5dcproxy.endpoints.

    • Improved reconnection logic to handle protocol timeout after defined threshold.

    • Improved documentation styling.

  • Upgraded ska-mid-dish-ds-manager to v8.0.4

    • Upgraded sculib to v1.1.2 to handle disconnect gracefully.

    • Improved documentation styling.

  • Upgraded ska-mid-dish-simulators to v5.7.0.

    • Improved documentation styling.

Version 9.3.0

  • See RCs for details

Version 9.3.0-rc.5

  • Fixed WMS device monitoring helm flag logic to correctly enable/disable monitoring.

Version 9.3.0-rc.4

  • Updated band B5b condition for configureBand command fanned out to SPFRx to check for Band1 (ADR-102).

  • Added new helm flag to enable/disable monitoring of B5DC device and WMS device.

    • –set dishmanager.b5dcproxy.monitoring=True (defaults to False)

    • –set dishmanager.wms.monitoring=True (defaults to False)

Version 9.3.0-rc.3

  • Removed the workaround to cast a string to an int for the band5 downconversion subband field when passing to SPFRx (updated in SPFRx v2.1)

Version 9.3.0-rc.2

  • Fix error status node name (errTiltTwoIounit to errTiltTwoIoUnit)

  • Upgraded ska-mid-dish-ds-manager to v8.0.3

    • Resolve segmentation fault caused by pushing an event with ATTR_INVALID -> ATTR_VALID transition

    • Fix late-binding closure behaviour for error status attributes fget

  • 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.

  • Downgraded ska-tango-base to v1.3.2 and tango to v10.0.0 to address tango serialisation lock issue.

Version 9.3.0-rc.1

  • Added in ignoreB5dc attribute to ignore B5DC state and quality changes.

  • SPFC b<n>lnapowerstate attributes name fix, attribute naming is aligned to the ICD.

  • Added ska-mid-dcp-lib v0.0.9 to the package dependencies.

  • Addressed tango serialisation lock issue.

    • Increased pod CPU resource limits to 3000m and requests to 2000m.

    • Added in a decorator to log the duration of an attribute write.

    • Upgraded ska-tango-base python package to install main branch with fixes.

  • Added in B5DC component manager.

    • Monitoring and control is enabled only if the B5DC proxy is deployed.

  • Updated chart dependencies

    • Upgraded ska-mid-dish-b5dc-proxy chart to v0.0.3

    • Upgraded ska-mid-dish-simulators chart to v5.6.0

Version 9.2.1

  • Improved handling and reporting of rejected commands when invalid inputs are provided.

  • Updated the ConfigureBand command JSON validation to check for band5_downconversion_subband and sub_band fields.

    • This ensures compatibility with both the two JSON schema versions pending a decision.

Version 9.2.1-rc.1

  • Improved handling and reporting of rejected commands when invalid inputs are provided.

  • Updated the ConfigureBand command JSON validation to check for band5_downconversion_subband instead of sub_band.

Version 9.2.0

  • SPFC LNA powerstate attributes fix, now checks dish mode correctly before allowing write.

  • Added conversion of the ConfigureBand command JSON sub_band value from string to int before fanout to SPFRx.

  • Fixed data type of periodicNoiseDiodePars and pseudoRandomNoiseDiodePars attributes to match SPFRx hardware.

  • Removed restriction of reconfiguring band if already configured to that band.

  • Updated chart dependencies

    • Upgraded ska-mid-dish-ds-manager chart to v7.1.0

    • Upgraded ska-mid-dish-simulators chart to v5.5.3

  • Updated package dependencies

    • Upgraded ska-tango-base to v1.4.0

Version 9.1.1

  • Support numeric and prefixed dish IDs in Helm charts.

Version 9.1.0

  • Updated progress messages to be sent on Status attribute instead of longRunningCommandProgress attribute.

  • Updated PyTango to v10.0.3

  • Updated ska-tango-base to use latest version limited to minor releases (<2.0.0).

  • Removed forked mark on acceptance tests; limited forked tests to tests that use DeviceTestContext.

  • Implemented ConfigureBand command that ingests a JSON string to configure bands on SPFRx.

  • Exposed SPF B<n>LNAPowerState attributes for bands 1 to 5b.

  • Updated chart dependencies

    • Upgraded ska-tango-base chart to v1.0.5

    • Upgraded ska-tango-util chart to v1.0.5

Version 9.0.0

  • Update implementation to match new states & modes ICD rev 6

    • SetMaintenanceMode command and associated Maintenance DishMode updated

    • ConfigureBand<N> command will now transition to OPERATE Dish mode on successful configuration

    • SetOperateMode command deprecated, use ConfigureBand<N> to transition to OPERATE Dish mode

  • Added a configurable timeout for long-running command executions.

    • Defaults to 120 seconds and can be configured via helm value dishmanager.actions.timeout_seconds

Version 8.5.1

  • Fixed CAR image path

  • Upgraded ska-mid-dish-ds-manager chart to v6.5.1

  • Upgraded ska-mid-dish-simulators chart to v5.4.2

Version 8.5.0

  • Baseline release

    • Maintains legacy States and Modes configurations.

    • Applies fixes for issues identified during DVS testing for s-AIV.

Version 8.4.7

  • Added lastcommandinvoked attribute

  • Reduced dish manager logs

  • Add handlers for configureBand<3, 4, 5a, 5b>

    • NOTE: ConfigureBand5b will call ConfigureBand1 until we have a B5DC

Version 8.4.5

  • Changed order of commands to dish structure manager on calling of Abort()

  • Upgraded ska-mid-dish-simulators chart to v5.4.0

  • Upgraded the ska-mid-dish-ds-manager chart to v6.4.1

    • Dropped the archive rate for achievedPointing and currentPointing attributes

    • Trimmed the logs

    • Updated lastcommandupdate attribute format

Version 8.4.4

  • Updated abort logic to not call TrackStop when in Stow.

Version 8.4.3

  • Added ResetTrackTable command to clear entries in the controller track table buffer.

  • Added in attribute lastCommandInvoked to report the last command invoked on the dish manager.

  • Upgraded ska-mid-dish-simulators chart to v5.4.0.

Version 8.4.2

  • Upgraded ska-mid-wms chart to v1.0.1

  • Upgraded ska-mid-dish-simulators chart to v5.0.1

  • Upgraded ska-mid-dish-ds-manger chart to v6.4.0

  • Added in a new attribute, dscCtrlState (DSC Control State), propagated from DSManager.

Version 8.4.1

  • Upgraded ska-mid-dish-ds-manager chart to v6.3.1

    • Fixed ska-mid-dish-ds-manager memory leak with an upgrade of PyTango to v10.0.3

Version 8.4.0

  • Upgraded ska-mid-dish-ds-manager chart to v6.3.0

Version 8.3.0

  • Added dishmanager.wms.station_id helm value to build up wmsDeviceNames property for WMS component manager.

  • Updated ska-mid-dish-ds-manger chart to v6.2.0.

Version 8.2.0

  • Added docker compose deployment for local development.

Version 8.1.0

  • Added new attribute dscCmdAuth that holds who has authority.

  • Upgraded ska-mid-dish-ds-manager chart to v6.1.0.

Version 8.0.0

  • Added functionality to stow dish when watchdog timer is enabled and the timer expires.

    • Added new command ResetWatchdogTimer() to reset the watchdog timer.

    • Added new attribute watchdogtimeout to enable or disable the watchdog timer.

    • Added new attribute lastwatchdogreset to report the last time the watchdog timer was reset.

  • Extended interface to expose monitoring points for mean wind speed and wind gust.

    • Added new attribute autoWindStowEnabled to enable or disable reaction to strong winds.

    • Added new attribute meanWindSpeed to report the average wind speed of the last 10 minutes.

    • Added new attribute windGust to report the max wind speed of the last 3 seconds.

  • Upgraded ska-mid-wms sub chart to v1.0.0

Version 7.5.0

  • Added connection workaround for SPFRx attributes that have invalid quality on startup

  • Partial SetMaintenanceMode implementation. It may not work as expected until SPFRx implements the changes to adminMode

  • 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

  • Updated periodicNoiseDiodePars and pseudoRandomNoiseDiodePars to be DevVarLong64Array - (DevLong64,)

  • Upgraded ska-mid-dish-simulators chart to v4.5.1

  • Upgraded ska-mid-dish-ds-manager chart to v6.0.0

Version 7.4.0

  • Added SetMaintenanceMode implementation logic to dish manager component manager

  • Upgraded ska-mid-dish-simulators chart to v4.4.3

  • Upgraded ska-mid-dish-ds-manager chart to v5.0.0

  • Upgraded ska-tango-util to v0.4.21

  • Upgraded ska-tango-base to v0.4.21

Version 7.3.0

  • Upgraded ska-mid-dish-simulators chart to v4.4.2

    • Removed intermediate READY PointingState to align with PLC and resolve SKB-768

  • Upgraded ska-mid-dish-ds-manager chart to v4.2.1

  • Upgraded ska-tango-util to v0.4.19

  • Upgraded ska-tango-base to v0.4.19

  • Updated build state logic to update buildState on connection of subservient devices

Version 7.2.1

  • Updated Abort to handle dish slew movement

  • Upgraded ska-mid-dish-simulators chart to v4.4.1

  • Updated versionID to report the package version of the dish manager

  • Extended functionality to handle powerState attribute updates

  • Upgraded ska-mid-dish-ds-manager chart to v4.2.0

Version 7.2.0

  • Use TAIoffset as reported by DSManager when validating track table and for testing

  • Upgraded ska-mid-dish-simulators chart to v4.4.0

  • Upgraded ska-mid-dish-ds-manager chart to v4.1.0

Version 7.1.0

  • Upgraded ska-tango-util to v0.4.18

  • Upgraded ska-tango-base to v0.4.18

  • Upgraded ska-mid-dish-ds-manager chart to v4.0.0

  • Block clients from sending commands when the dish state is DISABLED

    • StartCommunication should be called before any other command

Version 7.0.1

  • Address SKB-809:

    • DishLMC warns client when command is issued during lost communication to a component and continues anyway.

    • Device State reports ALARM when communication is lost.

  • Device State reports ON when device is started.

  • Periodic calls to MonitorPing on SPFRx is handled by component manager instead of polled command.

  • Upgraded ska-mid-dish-ds-manager chart to v3.1.2

Version 7.0.0

  • Updated ska-mid-dish-simulators to v4.3.0

  • Provided fix for SKB-751

  • Added a factory class to manage device proxy creation

  • Added some major improvements and refactoring

  • Updated dockerfile to use new base images and improved docker image build

  • Implemented Band0PointingModelParams attribute

  • Updated ska-tango-util to v0.4.15

  • Updated ska-tango-base to v0.4.15

  • Upgraded ska-mid-dish-ds-manager chart to v3.1.0

    • Replaced component manager with a new implementation using sculib

Version 6.0.1

  • Added validation check with appropriate reply for value and units keys for the ApplyPointingModel command.

  • Added trackTableCurrentIndex and trackTableEndIndex attributes that reflect track table indexes

  • Upgraded ska-mid-dish-ds-manager chart to v3.0.1

    • Added attributes to reflect track table indexes

  • Upgraded ska-mid-dish-simulators to v4.2.2

    • Exposed track table buffer indexes

    • Excluded zero-padded track table entries from being copied into internal buffer

Version 6.0.0

  • Added unit and range verification checks to ApplyPointingModel command

  • Added in Read/Write dscPowerLimitKw attribute to be used when SetStandbyFPMode, SetStandbyLPMode and Slew are invoked.

  • Upgraded ska-mid-dish-ds-manager chart to v3.0.0

  • Upgraded ska-mid-dish-simulators to v4.2.1

  • Upgraded to ska-tango-util and ska-tango-base to v0.4.13

  • Updated SPFRx operatingMode from DATA_CAPTURE to OPERATE to match Rev 4 ICD

  • Added in Read/Write dscPowerLimitKw attribute to be used when FP, LP and Slew are invoked.

  • Updated periodicNoiseDiodePars and pseudoRandomNoiseDiodePars to be DevULong

  • Added Abort tango command which cancels any task and restores the dish to FP mode

    • AbortCommmands implements the same handler as Abort

Version 5.0.1

  • Fixed MonitoringPing bug on DishManager

Version 5.0.0

  • Upgraded ska-mid-dish-simulators to v4.1.2

    • Servo loops simulator implemented to represent dish movement

  • Upgraded ska-mid-dish-ds-manger chart to v2.1.1

    • DSC states and modes updated to align with ITF PLC

  • Added in a command called ApplyPointingModel that updates bands using a json input

  • Added Slew command execution preconditions on DishMode and PointingState

    • DishMode required to be in OPERATE and PointingState required to be READY

  • Updated ska-tango-base and ska-tango-util to version 0.4.12

  • Added an atrtribute called last_commanded_pointing_params that reports the last updated pointing parameters.

Version 4.0.0

  • Updated buildState attribute to include version information of dish manager and subservient devices

  • Upgraded ska-mid-dish-simulators chart to v4.0.1

  • Upgraded ska-mid-ds-manager version to v2.0.0

  • Added actStaticOffsetValueXel and actStaticOffsetValueEl attributes

  • Updated band<N>PointingModelParams usage

  • Added lastCommandedMode attribute to record the last mode change request

  • Removed achievedPointingAz and achievedPointingEl

  • Fixed missing events from sub-devices on the event consumer thread

  • Exposed noide diode attributes from SPFRx:

    • noiseDiodeMode, periodicNoiseDiodePars, pseudoRandomNoiseDiodePars

Version 3.0.1

  • Updated the Stow Command to execute immediately when triggered and to abort all queued LRC tasks afterwards

  • Upgraded ska-mid-dish-simulators chart to v3.1.0

  • Upgraded ska-mid-dish-ds-manager chart to v1.5.0

    • WARNING: writes to band[X]PointingModelParams fails due to data type mismatch in current OPCUA nodeset file

Version 3.0.0

  • Updated component manager to check “command_allowed” on dequeue

  • Overrode creation of lrc attributes to increase max_dim_x of longRunningCommandInProgress

  • Updated package dependencies

    • Updated PyTango to v9.5.0

    • Updated ska-tango-base to v1.0.0

Version 2.7.0

  • Implement dedicated thread for tango_device_cm event_handler

  • Added more exhaustive per command logging

  • Updated to use SKA epoch for TAI timestamps

Version 2.6.1

  • Updated dish simulators version to v2.0.4

  • Updated ds-manager version to v1.3.1

Version 2.6.0

  • Removed lmc tests and its manual job trigger

  • Disabled default deployment of DSManager to use helm flag

  • Added ignoreSpf and ignoreSpfrx attributes to conform to ADR-93

  • Updated command map and transition state rules for when ignoring spf/spfrx to conform to ADR-93

  • Removed azimuth and elevation speed arguments from Slew command

  • Added quality state callback to publish change event on subservient device attribute quality changes

  • Resolved a bug raised on setting the kValue on the SPFRx

  • Added configureTargetLock implementation

  • Updated implementation of pointing model parameters for bands 1, 3 and 4

  • Added testing of aborting of long running commands

Version 2.5.0

  • Enabled change and archive events on all Dish Manager attributes

  • Removed placeholder implementation for Scan command

  • Extended the device server interface: added EndScan command

  • Exposed desiredPointingAz and desiredPointingEl attributes

  • Removed desiredPointing attribute

Version 2.4.0

  • Updated docs to demonstrate running devices as nodb

  • Added MonitoringPing command to the device server API

  • Implemented a workaround to fix segfault errors in python-test job

  • Updated dish simulators version to v1.6.6

  • Updated ds-manager version to v1.2.7

  • Applies bug fix which causes intermittent failures in the test run

Version 2.3.6

  • Updated dish manager tango device name to conform to ADR-9

  • Updated dish simulators version to v1.6.5

  • Updated ds-manager version to v1.2.6

  • Updated ska-tango-base to v0.4.9

  • Added track table time conversion and input validation

Version 2.3.5

  • Include ResultCode in updates sent to longRunningCommandResult

  • Upgraded ska-mid-dish-simulators chart to v1.6.4

  • Upgraded ska-mid-dish-ds-manager chart to v1.2.5

Version 2.3.4

  • Update ds-manager to version v1.2.4

  • Update ska-tango-util to version v0.4.10

  • Update ska-tango-base to version v0.4.8

  • Update simulators to version v1.6.3

Version 2.3.3

  • Fix dish naming when dish IDs 100 or more

  • Update simulators to version v1.6.2

  • Update ds-manager to version v1.2.3

  • Push archive events for attributes

Version 2.3.2

  • Use ska-ser-sphinx-theme for documentation

  • Expand docs to include user guide with example usage

  • Implement placeholder long running command for scan command

  • Explicitly convert dish IDs to strings in template

Version 2.3.1

  • Fixed a bug where bandinfocus was not used correctly to calculate the bands

  • Upgraded ska-mid-dish-ds-manager chart to v1.2.1

Version 2.3.0

  • Upgraded ska-mid-dish-simulators chart to v1.6.0

  • Upgraded ska-mid-dish-ds-manager chart to v1.2.0

  • Upgraded ska tango utils chart to v0.4.7

  • Not deploying ska-tango-base(Database DS) by default anymore

  • Extended device server interface

    • Implemented Slew, TrackLoadStaticOff, SetKValue commands

    • Implemented band2PointingModelParams, kValue, programTracktable attributes

Version 2.2.9

  • Upgrade ska-mid-dish-simulators chart to v1.3.1

  • Upgrade ska tango utils chart to v0.4.6

Version 2.2.8

  • Fix bug in component manager for dishMode computation

Version 2.2.7

  • Revert ska-tango-util upgrade in 2.2.6

  • Upgrade ska-mid-dish-simulators chart to v1.2.2

Version 2.2.6

  • Upgraded ska-tango-util to v0.4.6

  • Upgraded dsconfig docker image to v1.5.11

  • Upgraded ska-mid-dish-simulators chart to v1.2.1

  • Added .readthedocs.yaml for docs build

  • Fleshed out TrackStop command implementation

  • Updated helm chart to make the sub device names configurable

Version 2.2.5

  • Manual job to run lmc test prior to dish manager release

  • Bug fixes

    • Refactored capability state updates in _component_state_changed

    • Updated tango_device_cm to use .lower() on monitored attribute names when updating component states

Version 2.2.4

  • Updated helm chart to make the spfrx device name configurable

  • Installing ska-tango-base from a release

Version 2.2.3

  • Bump the simulators dependency chart up to 1.2.0

Version 2.2.2

  • Updated DishManager command fanout to SPFRx to support removal of CaptureData command

  • Bug fixes and improvements

  • Use ska-mid-dish-simulators v0.2.0 with simulator log forwarding towards TLS

Version 2.1.2

  • Updated DishManager configureBand interface: configureBandx(timestamp) > configureBandx(boolean)

  • Use ska-mid-dish-simulators v0.1.0 with updates to SPFRx device SetStandbyMode cmd

Version 2.1.1

  • Use ska-mid-dish-simulators v0.0.8 with SPFRx interface change

  • Update fanout for SPFRx to remove CaptureData and references to it

Version 2.1.0

  • Conform to ADR-32 Dish ID format e.g. mid_d0001/elt/master -> ska001/elt/master

Version 2.0.1

  • Increment python package version to match helm chart version

  • Increment simulator chart to 0.0.6

  • Added synchronise boolean parameter to SPFRx configureBand function call

  • Increment ska-tango-util chart to 0.4.2

Version 2.0.0

  • Updated Python to 3.8

  • Updated PyTango to 3.6.6

  • Added DS, SPF, SPFRx connection state attributes

Version 1.8.1

  • Use version 0.0.4 simulators

  • Updated DishModeModel to trigger CONFIG when commanded from STOW

  • Updated DishManager API docs reference

Version 1.8.0

  • Use version 0.0.3 simulators

Version 1.7.0

  • Added GetComponentStates command

Version 1.6.0

  • Updated to latest ska-mid-dish-simulators chart

  • Updated capabilitystates accordingly

Version 1.5.0

  • Updated helm to only deploy the DS device when specifically asked for and not by default

Version 1.4.0

  • Updated DS device to not be asyncio based

Version 1.3.0

  • Removed SPF and SPFRx devices from codebase and helm charts

  • Helm chart does not install SPF and SPFRx by default (enable with –set “ska-mid-dish-simulators.enabled=true”)

Version 1.2.0

  • Synced DishManager’s achievedPointing reading with the DSManager’s reading (same attribute name)

  • Added functionality to indicate that dish is capturing data

  • Pinned poetry to version 1.1.13

Version 1.1.0

  • Added CapabilityState attributes

  • Added configuredBand checks when calling SetOperateMode

Version 1.0.0

  • Implementation details for commands fleshed out

  • DishMode model updated with rules engine

  • Documentation added

Version 0.0.1

  • The first release of the DishManager rewrites DishLMC DishMaster in python:

    • Device interface conforms to spec

    • Commands implemented as LRC with no functionality

    • Subservient devices managed by component manager

    • DishMode model to handle commands requests on DishManager