Skip to content
Snippets Groups Projects
Commit f1b24b7a authored by Samuel Twum's avatar Samuel Twum
Browse files

Merge branch 'sar-273-add-lrc-attributes' into 'main'

SAR-273 SKABaseDevice API update for Long Running Commands

See merge request ska-telescope/ska-tango-base!61
parents 916488b9 920a8f18
Branches
No related tags found
No related merge requests found
......@@ -138,6 +138,24 @@
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="AbortCommands" description="Abort the currently executing LRC and remove all enqueued LRCs" execMethod="abort_commands" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:LongStringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="CheckLongRunningCommandStatus" description="Check the status of a long running command by ID" execMethod="check_long_running_command_status" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="The command ID">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="The resultcode for this command and the code for the state">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<attributes name="elementLoggerAddress" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
......@@ -363,6 +381,36 @@
<status abstract="false" inherited="true" concrete="true"/>
<properties description="Logging targets for this device, excluding ska_ser_logging defaults - &#xA;initialises to LoggingTargetsDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Keep track of which commands are in the queue. &#xA;Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandIDsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Every client that executes a command will receive a command ID as response. &#xA;Keep track of IDs in the queue. Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, status pair of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandProgress" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, progress of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandResult" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, result pair. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="ON" description="This state could have been called OK or OPERATIONAL. It means that the device is in its operational state. (E.g. the power supply is giving its nominal current, th motor is ON and ready to move, the instrument is operating). This state is modified by the Attribute alarm checking of the DeviceImpl:dev_state method. i.e. if the State is ON and one attribute has its quality factor to ATTR_WARNING or ATTR_ALARM, then the State is modified to ALARM.">
<status abstract="false" inherited="true" concrete="true"/>
</states>
......
......@@ -129,6 +129,24 @@
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="AbortCommands" description="Abort the currently executing LRC and remove all enqueued LRCs" execMethod="abort_commands" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:LongStringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="CheckLongRunningCommandStatus" description="Check the status of a long running command by ID" execMethod="check_long_running_command_status" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="The command ID">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="The resultcode for this command and the code for the state">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<attributes name="obsState" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
<dataType xsi:type="pogoDsl:EnumType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
......@@ -268,6 +286,36 @@
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="Flag reporting if the SDP link is active.&#xA;True: active&#xA;False:down" label="sdpLinkActive" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Keep track of which commands are in the queue. &#xA;Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandIDsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Every client that executes a command will receive a command ID as response. &#xA;Keep track of IDs in the queue. Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, status pair of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandProgress" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, progress of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandResult" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, result pair. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="ON" description="This state could have been called OK or OPERATIONAL. It means that the device is in its operational state. (E.g. the power supply is giving its nominal current, th motor is ON and ready to move, the instrument is operating). This state is modified by the Attribute alarm checking of the DeviceImpl:dev_state method. i.e. if the State is ON and one attribute has its quality factor to ATTR_WARNING or ATTR_ALARM, then the State is modified to ALARM.">
<status abstract="false" inherited="true" concrete="true"/>
</states>
......
......@@ -186,6 +186,24 @@
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="AbortCommands" description="Abort the currently executing LRC and remove all enqueued LRCs" execMethod="abort_commands" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:LongStringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="CheckLongRunningCommandStatus" description="Check the status of a long running command by ID" execMethod="check_long_running_command_status" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="The command ID">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="The resultcode for this command and the code for the state">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<attributes name="activationTime" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
<dataType xsi:type="pogoDsl:DoubleType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
......@@ -418,6 +436,36 @@
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="Flag reporting if the SDP links are active." label="sdpLinkActive" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Keep track of which commands are in the queue. &#xA;Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandIDsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Every client that executes a command will receive a command ID as response. &#xA;Keep track of IDs in the queue. Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, status pair of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandProgress" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, progress of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandResult" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, result pair. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="ON" description="This state could have been called OK or OPERATIONAL. It means that the device is in its operational state. (E.g. the power supply is giving its nominal current, th motor is ON and ready to move, the instrument is operating). This state is modified by the Attribute alarm checking of the DeviceImpl:dev_state method. i.e. if the State is ON and one attribute has its quality factor to ATTR_WARNING or ATTR_ALARM, then the State is modified to ALARM.">
<status abstract="false" inherited="true" concrete="true"/>
</states>
......
......@@ -122,6 +122,24 @@
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="AbortCommands" description="Abort the currently executing LRC and remove all enqueued LRCs" execMethod="abort_commands" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:LongStringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="CheckLongRunningCommandStatus" description="Check the status of a long running command by ID" execMethod="check_long_running_command_status" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="The command ID">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="The resultcode for this command and the code for the state">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<attributes name="statsNrAlerts" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:IntType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
......@@ -242,6 +260,36 @@
<status abstract="false" inherited="true" concrete="true"/>
<properties description="Logging targets for this device, excluding ska_ser_logging defaults - &#xA;initialises to LoggingTargetsDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Keep track of which commands are in the queue. &#xA;Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandIDsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Every client that executes a command will receive a command ID as response. &#xA;Keep track of IDs in the queue. Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, status pair of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandProgress" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, progress of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandResult" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, result pair. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="ON" description="This state could have been called OK or OPERATIONAL. It means that the device is in its operational state. (E.g. the power supply is giving its nominal current, th motor is ON and ready to move, the instrument is operating). This state is modified by the Attribute alarm checking of the DeviceImpl:dev_state method. i.e. if the State is ON and one attribute has its quality factor to ATTR_WARNING or ATTR_ALARM, then the State is modified to ALARM.">
<status abstract="false" inherited="true" concrete="true"/>
</states>
......
......@@ -59,6 +59,24 @@
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="AbortCommands" description="Abort the currently executing LRC and remove all enqueued LRCs" execMethod="abort_commands" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:LongStringArrayType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="CheckLongRunningCommandStatus" description="Check the status of a long running command by ID" execMethod="check_long_running_command_status" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="The command ID">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="The resultcode for this command and the code for the state">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="DebugDevice" description="Enables remote debugging of this device" execMethod="debug_device" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
......@@ -149,6 +167,36 @@
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="Logging targets for this device, excluding ska_ser_logging defaults - &#xA;initialises to LoggingTargetsDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="Keep track of which commands are in the queue. &#xA;Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandIDsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="Every client that executes a command will receive a command ID as response. &#xA;Keep track of IDs in the queue. Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="ID, status pair of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandProgress" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="ID, progress of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandResult" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="ID, result pair. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="ON" description="This state could have been called OK or OPERATIONAL. It means that the device is in its operational state. (E.g. the power supply is giving its nominal current, th motor is ON and ready to move, the instrument is operating). This state is modified by the Attribute alarm checking of the DeviceImpl:dev_state method. i.e. if the State is ON and one attribute has its quality factor to ATTR_WARNING or ATTR_ALARM, then the State is modified to ALARM.">
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</states>
......
......@@ -90,6 +90,24 @@
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="AbortCommands" description="Abort the currently executing LRC and remove all enqueued LRCs" execMethod="abort_commands" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:LongStringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="CheckLongRunningCommandStatus" description="Check the status of a long running command by ID" execMethod="check_long_running_command_status" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="The command ID">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="The resultcode for this command and the code for the state">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<attributes name="activationTime" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:DoubleType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
......@@ -189,6 +207,36 @@
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="A list of components with no. of instances in use on this Capability." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Keep track of which commands are in the queue. &#xA;Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandIDsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Every client that executes a command will receive a command ID as response. &#xA;Keep track of IDs in the queue. Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, status pair of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandProgress" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, progress of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandResult" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, result pair. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="ON" description="This state could have been called OK or OPERATIONAL. It means that the device is in its operational state. (E.g. the power supply is giving its nominal current, th motor is ON and ready to move, the instrument is operating). This state is modified by the Attribute alarm checking of the DeviceImpl:dev_state method. i.e. if the State is ON and one attribute has its quality factor to ATTR_WARNING or ATTR_ALARM, then the State is modified to ALARM.">
<status abstract="false" inherited="true" concrete="true"/>
</states>
......
......@@ -91,6 +91,24 @@
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="AbortCommands" description="Abort the currently executing LRC and remove all enqueued LRCs" execMethod="abort_commands" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:LongStringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="CheckLongRunningCommandStatus" description="Check the status of a long running command by ID" execMethod="check_long_running_command_status" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="The command ID">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="The resultcode for this command and the code for the state">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<attributes name="elementLoggerAddress" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
......@@ -203,6 +221,37 @@
<status abstract="false" inherited="true" concrete="true"/>
<properties description="Logging targets for this device, excluding ska_ser_logging defaults - &#xA;initialises to LoggingTargetsDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
</attributes>
<attributes name="longRunningCommandsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Keep track of which commands are in the queue. &#xA;Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandIDsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Every client that executes a command will receive a command ID as response. &#xA;Keep track of IDs in the queue. Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, status pair of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandProgress" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, progress of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandResult" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, result pair. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="ON" description="This state could have been called OK or OPERATIONAL. It means that the device is in its operational state. (E.g. the power supply is giving its nominal current, th motor is ON and ready to move, the instrument is operating). This state is modified by the Attribute alarm checking of the DeviceImpl:dev_state method. i.e. if the State is ON and one attribute has its quality factor to ATTR_WARNING or ATTR_ALARM, then the State is modified to ALARM.">
<status abstract="false" inherited="true" concrete="true"/>
</states>
......
......@@ -78,6 +78,24 @@
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="AbortCommands" description="Abort the currently executing LRC and remove all enqueued LRCs" execMethod="abort_commands" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:LongStringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="CheckLongRunningCommandStatus" description="Check the status of a long running command by ID" execMethod="check_long_running_command_status" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="The command ID">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="The resultcode for this command and the code for the state">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<attributes name="buildState" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
<dataType xsi:type="pogoDsl:StringType"/>
<status abstract="false" inherited="true" concrete="true"/>
......@@ -130,6 +148,36 @@
<status abstract="false" inherited="true" concrete="true"/>
<properties description="Logging targets for this device, excluding ska_ser_logging defaults - &#xA;initialises to LoggingTargetsDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Keep track of which commands are in the queue. &#xA;Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandIDsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Every client that executes a command will receive a command ID as response. &#xA;Keep track of IDs in the queue. Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, status pair of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandProgress" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, progress of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandResult" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, result pair. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="ON" description="This state could have been called OK or OPERATIONAL. It means that the device is in its operational state. (E.g. the power supply is giving its nominal current, th motor is ON and ready to move, the instrument is operating). This state is modified by the Attribute alarm checking of the DeviceImpl:dev_state method. i.e. if the State is ON and one attribute has its quality factor to ATTR_WARNING or ATTR_ALARM, then the State is modified to ALARM.">
<status abstract="false" inherited="true" concrete="true"/>
</states>
......
......@@ -69,6 +69,24 @@
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="AbortCommands" description="Abort the currently executing LRC and remove all enqueued LRCs" execMethod="abort_commands" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:LongStringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="CheckLongRunningCommandStatus" description="Check the status of a long running command by ID" execMethod="check_long_running_command_status" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="The command ID">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="The resultcode for this command and the code for the state">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<attributes name="obsState" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:EnumType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
......@@ -168,6 +186,36 @@
<status abstract="false" inherited="true" concrete="true"/>
<properties description="Logging targets for this device, excluding ska_ser_logging defaults - &#xA;initialises to LoggingTargetsDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Keep track of which commands are in the queue. &#xA;Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandIDsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Every client that executes a command will receive a command ID as response. &#xA;Keep track of IDs in the queue. Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, status pair of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandProgress" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, progress of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandResult" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, result pair. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="ON" description="This state could have been called OK or OPERATIONAL. It means that the device is in its operational state. (E.g. the power supply is giving its nominal current, th motor is ON and ready to move, the instrument is operating). This state is modified by the Attribute alarm checking of the DeviceImpl:dev_state method. i.e. if the State is ON and one attribute has its quality factor to ATTR_WARNING or ATTR_ALARM, then the State is modified to ALARM.">
<status abstract="false" inherited="true" concrete="true"/>
</states>
......
......@@ -167,6 +167,24 @@
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="AbortCommands" description="Abort the currently executing LRC and remove all enqueued LRCs" execMethod="abort_commands" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:LongStringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="CheckLongRunningCommandStatus" description="Check the status of a long running command by ID" execMethod="check_long_running_command_status" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="The command ID">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="The resultcode for this command and the code for the state">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<attributes name="activationTime" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:DoubleType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
......@@ -266,6 +284,36 @@
<status abstract="false" inherited="true" concrete="true"/>
<properties description="Logging targets for this device, excluding ska_ser_logging defaults - &#xA;initialises to LoggingTargetsDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Keep track of which commands are in the queue. &#xA;Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandIDsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Every client that executes a command will receive a command ID as response. &#xA;Keep track of IDs in the queue. Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, status pair of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandProgress" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, progress of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandResult" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, result pair. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="ON" description="This state could have been called OK or OPERATIONAL. It means that the device is in its operational state. (E.g. the power supply is giving its nominal current, th motor is ON and ready to move, the instrument is operating). This state is modified by the Attribute alarm checking of the DeviceImpl:dev_state method. i.e. if the State is ON and one attribute has its quality factor to ATTR_WARNING or ATTR_ALARM, then the State is modified to ALARM.">
<status abstract="false" inherited="true" concrete="true"/>
</states>
......
......@@ -73,6 +73,24 @@
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="AbortCommands" description="Abort the currently executing LRC and remove all enqueued LRCs" execMethod="abort_commands" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:LongStringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<commands name="CheckLongRunningCommandStatus" description="Check the status of a long running command by ID" execMethod="check_long_running_command_status" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
<argin description="The command ID">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="The resultcode for this command and the code for the state">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="true" concrete="true"/>
</commands>
<attributes name="buildState" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
<dataType xsi:type="pogoDsl:StringType"/>
<status abstract="false" inherited="true" concrete="true"/>
......@@ -125,6 +143,36 @@
<status abstract="false" inherited="true" concrete="true"/>
<properties description="Logging targets for this device, excluding ska_ser_logging defaults - &#xA;initialises to LoggingTargetsDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Keep track of which commands are in the queue. &#xA;Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandIDsInQueue" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="98" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="Every client that executes a command will receive a command ID as response. &#xA;Keep track of IDs in the queue. Pop off from front as they complete." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, status pair of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandProgress" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, progress of the currently executing command. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="longRunningCommandResult" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="2" maxY="" allocReadMember="true" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="true" libCheckCriteria="true"/>
<status abstract="false" inherited="true" concrete="true" concreteHere="false"/>
<properties description="ID, result pair. &#xA;Clients can subscribe to on_change event and wait for the ID they are interested in." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="ON" description="This state could have been called OK or OPERATIONAL. It means that the device is in its operational state. (E.g. the power supply is giving its nominal current, th motor is ON and ready to move, the instrument is operating). This state is modified by the Attribute alarm checking of the DeviceImpl:dev_state method. i.e. if the State is ON and one attribute has its quality factor to ATTR_WARNING or ATTR_ALARM, then the State is modified to ALARM.">
<status abstract="false" inherited="true" concrete="true"/>
</states>
......
......@@ -84,6 +84,18 @@ class _Log4TangoLoggingLevel(enum.IntEnum):
DEBUG = 600
class LongRunningCommandState(enum.IntEnum):
"""The state of the long running command."""
QUEUED = 0
IN_PROGRESS = 1
ABORTED = 2
NOT_FOUND = 3
OK = 4
FAILED = 5
NOT_ALLOWED = 6
_PYTHON_TO_TANGO_LOGGING_LEVEL = {
logging.CRITICAL: _Log4TangoLoggingLevel.FATAL,
logging.ERROR: _Log4TangoLoggingLevel.ERROR,
......@@ -677,6 +689,51 @@ class SKABaseDevice(Device):
)
"""Device attribute."""
longRunningCommandsInQueue = attribute(
dtype=("str",),
max_dim_x=98,
access=AttrWriteType.READ,
doc="Keep track of which commands are in the queue. \n"
"Pop off from front as they complete.",
)
"""Device attribute for long running commands."""
longRunningCommandIDsInQueue = attribute(
dtype=("str",),
max_dim_x=98,
access=AttrWriteType.READ,
doc="Every client that executes a command will receive a command ID as response. \n"
"Keep track of IDs in the queue. Pop off from front as they complete.",
)
"""Device attribute for long running commands."""
longRunningCommandStatus = attribute(
dtype=("str",),
max_dim_x=2,
access=AttrWriteType.READ,
doc="ID, status pair of the currently executing command. \n"
"Clients can subscribe to on_change event and wait for the ID they are interested in.",
)
"""Device attribute for long running commands."""
longRunningCommandProgress = attribute(
dtype=("str",),
max_dim_x=2,
access=AttrWriteType.READ,
doc="ID, progress of the currently executing command. \n"
"Clients can subscribe to on_change event and wait for the ID they are interested in..",
)
"""Device attribute for long running commands."""
longRunningCommandResult = attribute(
dtype=("str",),
max_dim_x=2,
access=AttrWriteType.READ,
doc="ID, result pair. \n"
"Clients can subscribe to on_change event and wait for the ID they are interested in.",
)
"""Device attribute for long running commands."""
# ---------------
# General methods
# ---------------
......@@ -804,10 +861,18 @@ class SKABaseDevice(Device):
self._command_objects = {}
component_args = (self.component_manager, self.op_state_model, self.logger)
lrc_args = (self.component_manager, self.logger)
self.register_command_object("Standby", self.StandbyCommand(*component_args))
self.register_command_object("Off", self.OffCommand(*component_args))
self.register_command_object("On", self.OnCommand(*component_args))
self.register_command_object("Reset", self.ResetCommand(*component_args))
self.register_command_object(
"AbortCommands", self.AbortCommandsCommand(*lrc_args)
)
self.register_command_object(
"CheckLongRunningCommandStatus",
self.CheckLongRunningCommandStatusCommand(*lrc_args),
)
device_args = (self, self.op_state_model, self.logger)
self.register_command_object(
......@@ -1041,6 +1106,51 @@ class SKABaseDevice(Device):
self._test_mode = value
# PROTECTED REGION END # // SKABaseDevice.testMode_write
def read_longRunningCommandsInQueue(self):
# PROTECTED REGION ID(SKABaseDevice.longRunningCommandsInQueue_read) ENABLED START #
"""
Read the long running commands in the queue.
:return: commands in the device queue
"""
return self.component_manager.commands_in_queue
def read_longRunningCommandIDsInQueue(self):
# PROTECTED REGION ID(SKABaseDevice.longRunningCommandIDsInQueue_read) ENABLED START #
"""
Read the IDs of the long running commands in the queue.
:return: unique ids for the enqueued commands
"""
return self.component_manager.command_ids_in_queue
def read_longRunningCommandStatus(self):
# PROTECTED REGION ID(SKABaseDevice.longRunningCommandStatus_read) ENABLED START #
"""
Read the status of the currently executing long running command.
:return: ID, status pair of the currently executing command
"""
return self.component_manager.command_status
def read_longRunningCommandProgress(self):
# PROTECTED REGION ID(SKABaseDevice.longRunningCommandProgress_read) ENABLED START #
"""
Read the progress of the currently executing long running command.
:return: ID, progress of the currently executing command.
"""
return self.component_manager.command_progress
def read_longRunningCommandResult(self):
# PROTECTED REGION ID(SKABaseDevice.longRunningCommandResult_read) ENABLED START #
"""
Read the result of the completed long running command.
:return: ID, result pair.
"""
return self.component_manager.command_result
# --------
# Commands
# --------
......@@ -1351,6 +1461,83 @@ class SKABaseDevice(Device):
(return_code, message) = command()
return [[return_code], [message]]
class AbortCommandsCommand(ResponseCommand):
"""The command class for the AbortCommand command."""
def __init__(self, component_manager, logger=None):
"""Initialise a new AbortCommandsCommand instance.
:param component_manager: contains the queue manager which
manages the worker thread and the LRC attributes
:type component_manager: object
:param logger: the logger to be used by this Command. If not
provided, then a default module logger will be used.
:type logger: a logger that implements the standard library
logger interface
"""
super().__init__(target=component_manager, logger=logger)
def do(self):
"""Abort long running commands.
Abort the currently executing LRC and remove all enqueued LRCs.
"""
# implementation details to be added
return (ResultCode.OK, "Aborting")
@command(
dtype_out="DevVarLongStringArray",
)
@DebugIt()
def AbortCommands(self):
"""Empty out long running commands in queue."""
handler = self.get_command_object("AbortCommands")
(return_code, message) = handler()
return [[return_code], [message]]
class CheckLongRunningCommandStatusCommand(ResponseCommand):
"""The command class for the CheckLongRunningCommandStatus command."""
def __init__(self, component_manager, logger=None):
"""Initialise a new CheckLongRunningCommandStatusCommand instance.
:param component_manager: contains the queue manager which
manages the worker thread and the LRC attributes
:type component_manager: object
:param logger: the logger to be used by this Command. If not
provided, then a default module logger will be used.
:type logger: a logger that implements the standard library
logger interface
"""
super().__init__(target=component_manager, logger=logger)
def do(self, argin):
"""Determine the status of the command ID passed in, if any.
- Check `command_result` to see if it's finished.
- Check `command_status` to see if it's in progress
- Check `command_ids_in_queue` to see if it's queued
:param argin: The command ID
:type argin: str
:return: The resultcode for this command and the code for the state
:rtype: tuple
(ResultCode.OK, LongRunningCommandState)
"""
# implementation details to be added
return (ResultCode.OK, LongRunningCommandState.NOT_FOUND)
@command(
dtype_in=str,
dtype_out="DevVarShortArray",
)
@DebugIt()
def CheckLongRunningCommandStatus(self, argin):
"""Check the status of a long running command by ID."""
handler = self.get_command_object("CheckLongRunningCommandStatus")
(return_code, command_state) = handler(argin)
return [return_code, command_state]
class DebugDeviceCommand(BaseCommand):
"""A class for the SKABaseDevice's DebugDevice() command."""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment