Skip to content
Snippets Groups Projects
Unverified Commit 97f713ab authored by Giuseppe Carboni's avatar Giuseppe Carboni Committed by GitHub
Browse files

Integration of new SRT LDO derotators into centos_7_compatibility branch (#925)

* Moved some method from GenericDerotator to SRTKBandDerotator

The methods were not generic, they were specific methods of the old SRTKBandDerotator decommissioned interface.
These methods are not even called by the DewarPositioner component, therefore it was safe to remove them from the GenericDerotator interface.

* Moved another unused method

* Updated GenericDerotator interface

* Fix #865, fix #869, updated SRTMinorServo component

The component now handles correctly a SETUP command.
The component is also capable of commanding the gregorian air blade with the 'setGregorianAirBladeStatus' command.
A few bugs were fixed here and there.
This branch MUST be tested with the real hardware before merging it onto the centos_7_compatibility branch.

* Fixed small bug

* Removed redundant script

* Uploading files in order to test a clean repository

* Updated PyDewarPositioner for Python 3

* First LDO Derotators working implementation

This commit also brings some clean up inside the SRT test CDB.
All the stuff that is not used in the production environment has been moved out of the production and test environment and into the Outdated CDB.

* KBand derotator updates

* Moved SRTDerotators out of SRTMinorServoBossCore

Each derotator now has its thread for updating its status
parent e311ab51
Branches
No related tags found
No related merge requests found
Showing
with 291 additions and 164 deletions
<?xml version="1.0" encoding="UTF-8"?>
<!--
* Author
* =================
* Name: Marco Buttu
-->
<Container xmlns="urn:schemas-cosylab-com:Container:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0"
Timeout="30.0"
UseIFR="true"
ManagerRetry="10"
ImplLang="cpp"
Recovery="false">
<Autoload>
<cdb:e string="baci" />
</Autoload>
<LoggingConfig
centralizedLogger="Log"
minLogLevel="5"
minLogLevelLocal="5"
dispatchPacketSize="0"
immediateDispatchLevel="8"
flushPeriodSeconds="1"
>
</LoggingConfig>
</Container>
<?xml version="1.0" encoding="ISO-8859-1"?>
<Container
xmlns="urn:schemas-cosylab-com:Container:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0"
Timeout="30.0"
UseIFR="true"
ManagerRetry="10"
ImplLang="cpp"
Recovery="false">
<Autoload>
<cdb:e string="baci" />
</Autoload>
<LoggingConfig
centralizedLogger="Log"
minLogLevel="5"
minLogLevelLocal="5"
dispatchPacketSize="0"
immediateDispatchLevel="8"
flushPeriodSeconds="1"
>
</LoggingConfig>
</Container>
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
DerotatorName="RECEIVERS/SRTKBandDerotator" DerotatorName="MINORSERVO/DR_GFR1"
ObservatoryName="ANTENNA/Observatory" ObservatoryName="ANTENNA/Observatory"
CoordinateSourceName="ANTENNA/Boss" CoordinateSourceName="ANTENNA/Boss"
SetupPosition="0.0" SetupPosition="0.0"
......
<?xml version='1.0' encoding='ISO-8859-1'?>
<!--
- Author: Giuseppe Carboni
- History:
- 14-03-23 Created
-->
<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0"
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<physical_axes_enabled><property_name>ROTARY_AXIS_ENABLED</property_name></physical_axes_enabled>
<physical_positions><property_name>ROTATION</property_name></physical_positions>
<virtual_positions><property_name>ROTATION</property_name></virtual_positions>
<virtual_axes_units><property_name>degree</property_name></virtual_axes_units>
<virtual_offsets><property_name>OFFSET</property_name></virtual_offsets>
</SRTMinorServoProperties>
<?xml version='1.0' encoding='ISO-8859-1'?>
<!--
- Author: Giuseppe Carboni
- History:
- 14-03-23 Created
-->
<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0"
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<physical_axes_enabled><property_name>X_ENABLED</property_name></physical_axes_enabled>
<physical_axes_enabled><property_name>Z_MASTER_ENABLED</property_name></physical_axes_enabled>
<physical_axes_enabled><property_name>Z_SLAVE_ENABLED</property_name></physical_axes_enabled>
<physical_axes_enabled><property_name>THETA_MASTER_ENABLED</property_name></physical_axes_enabled>
<physical_axes_enabled><property_name>THETA_SLAVE_ENABLED</property_name></physical_axes_enabled>
<physical_positions><property_name>ELONG_X</property_name></physical_positions>
<physical_positions><property_name>ELONG_Z_MASTER</property_name></physical_positions>
<physical_positions><property_name>ELONG_Z_SLAVE</property_name></physical_positions>
<physical_positions><property_name>ELONG_THETA_MASTER</property_name></physical_positions>
<physical_positions><property_name>ELONG_THETA_SLAVE</property_name></physical_positions>
<virtual_positions><property_name>TX</property_name></virtual_positions>
<virtual_positions><property_name>TZ</property_name></virtual_positions>
<virtual_positions><property_name>RTHETA</property_name></virtual_positions>
<virtual_axes_units><property_name>mm</property_name></virtual_axes_units>
<virtual_axes_units><property_name>mm</property_name></virtual_axes_units>
<virtual_axes_units><property_name>degree</property_name></virtual_axes_units>
<virtual_offsets><property_name>OFFSET_TX</property_name></virtual_offsets>
<virtual_offsets><property_name>OFFSET_TZ</property_name></virtual_offsets>
<virtual_offsets><property_name>OFFSET_RTHETA</property_name></virtual_offsets>
</SRTMinorServoProperties>
CONFIGURATION;PFP_TX;PFP_TZ;PFP_RTHETA;SRP_TX;SRP_TY;SRP_TZ;SRP_RX;SRP_RY;SRP_RZ;M3R_RZ;GFR_RZ;DR_GFR1;DR_GFR2;DR_GFR3;DR_PFP;GREGORIAN_CAP; CONFIGURATION;PFP_TX;PFP_TZ;PFP_RTHETA;SRP_TX;SRP_TY;SRP_TZ;SRP_RX;SRP_RY;SRP_RZ;M3R_RZ;GFR_RZ;DR_GFR1;DR_GFR2;DR_GFR3;DR_PFP;GREGORIAN_CAP;
Primario;0;0;0;-5;5;-120;0;0;0;*;*;*;*;*;*;*; Primario;0;0;0;-5;5;-120;0;0;0;*;*;*;*;*;*;*;
Gregoriano1;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;-88.70659;*;*;*;*;4; Gregoriano1;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;-88.70659;*;*;*;*;4;
Gregoriano2;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;-159.8899;*;*;*;*;4; Gregoriano2;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;-159.8899;12.5;*;*;*;4;
Gregoriano3;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;90.97161;*;*;*;*;4; Gregoriano3;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;90.97161;*;*;*;*;4;
Gregoriano4;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;162.771;*;*;*;*;4; Gregoriano4;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;162.771;*;*;*;*;4;
Gregoriano5;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;55.373967;*;*;*;*;4; Gregoriano5;0;0;0;-1.5;11.1393650793988;1.08830677049999;0.049894179898239;-0.036111111111111;0;*;55.373967;*;*;*;*;4;
......
<?xml version='1.0' encoding='ISO-8859-1'?>
<!--
Authors: Giuseppe Carboni giuseppe.carboni@inaf.it
-->
<SRTDerotator
xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0"
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
physical_axes="1"
virtual_axes="1"
max_speed="3.276"
acceleration="2.67"
min_range="-130"
max_range="130"
step="60"
tracking_delta="0.1"
zero_offset="12.5">
<enabled description="All physical axes enabled" />
<drive_cabinet_status description="Drive cabinet status" />
<block description="Minor servo in block status" />
<operative_mode description="Minor servo operating mode" />
<physical_axes description="Number of physical axes" />
<physical_axes_enabled description="Sequence, physical axes enabled" />
<physical_positions description="Sequence, physical axes positions" />
<virtual_axes description="Number of virtual axes" />
<plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" />
<virtual_positions description="Sequence, virtual axes positions, without offsets" />
<virtual_offsets description="Sequence, sum of user and system virtual axis offsets" />
<tracking description="Boolean indicating whether the servo is tracking the given coordinates" />
<trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" />
<total_trajectory_points description="Number of points sent for the current trajectory" />
<remaining_trajectory_points description="Remaining points of the current trajectory" />
<actPosition description="Current position, with sign inverted in respect to the LDO one"/>
<cmdPosition description="Latest commanded position, with sign inverted in respect to the LDO one" />
<positionDiff description="Difference between the commanded and the current position" />
<status description="Bit pattern indicating the status of the derotator" />
</SRTDerotator>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<AvailableReceiver Code="CCG" Derotator="false" Component="RECEIVERS/SRT5GHzReceiver"/> <AvailableReceiver Code="CCG" Derotator="false" Component="RECEIVERS/SRT5GHzReceiver"/>
<AvailableReceiver Code="KKG" Derotator="false" Component="RECEIVERS/SRTKBandMFReceiver"/> <AvailableReceiver Code="KKG" Derotator="true" Component="RECEIVERS/SRTKBandMFReceiver"/>
<AvailableReceiver Code="LLP" Derotator="false" Component="RECEIVERS/SRTLPBandReceiver"/> <AvailableReceiver Code="LLP" Derotator="false" Component="RECEIVERS/SRTLPBandReceiver"/>
......
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
UpdatingTime="0.1" UpdatingTime="0.2"
TrackingLeadTime="2.6"
RewindingSleepTime="0.1" RewindingSleepTime="0.1"
RewindingTimeout="200" RewindingTimeout="200"
DefaultConfiguration="FIXED" DefaultConfiguration="FIXED"
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!--
Giuseppe Carboni <gcarboni@oa-cagliari.inaf.it>
-->
<Component <Component
xmlns="urn:schemas-cosylab-com:Component:1.0" xmlns="urn:schemas-cosylab-com:Component:1.0"
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Name="SRTIFDistributor" Name="DR_GFR1"
Code="IFDistributor.SRTIFDistributorImpl" Code="SRTDerotatorImpl"
Type="IDL:alma/Receivers/SRTIFDistributor:1.0" ImplLang="cpp"
Container="PyIFDistributorContainer" Type="IDL:alma/MinorServo/SRTDerotator:1.0"
ImplLang="py" Container="MinorServoContainer"
Default="true" Default="false"
/> />
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
DerotatorName="RECEIVERS/SRTKBandDerotator" DerotatorName="MINORSERVO/DR_GFR1"
ObservatoryName="ANTENNA/Observatory" ObservatoryName="ANTENNA/Observatory"
CoordinateSourceName="ANTENNA/Boss" CoordinateSourceName="ANTENNA/Boss"
SetupPosition="0.0" SetupPosition="0.0"
......
<?xml version='1.0' encoding='ISO-8859-1'?>
<!--
- Author: Giuseppe Carboni
- History:
- 14-03-23 Created
-->
<SRTMinorServoProperties xmlns="urn:schemas-cosylab-com:SRTMinorServoProperties:1.0"
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<physical_axes_enabled><property_name>ROTARY_AXIS_ENABLED</property_name></physical_axes_enabled>
<physical_positions><property_name>ROTATION</property_name></physical_positions>
<virtual_positions><property_name>ROTATION</property_name></virtual_positions>
<virtual_axes_units><property_name>degree</property_name></virtual_axes_units>
<virtual_offsets><property_name>OFFSET</property_name></virtual_offsets>
</SRTMinorServoProperties>
<?xml version='1.0' encoding='ISO-8859-1'?>
<!--
Authors: Giuseppe Carboni giuseppe.carboni@inaf.it
-->
<SRTDerotator
xmlns="urn:schemas-cosylab-com:SRTMinorServo:1.0"
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
physical_axes="1"
virtual_axes="1"
max_speed="3.276"
acceleration="2.67"
min_range="-130"
max_range="130"
step="60"
tracking_delta="0.1"
zero_offset="12.5">
<enabled description="All physical axes enabled" />
<drive_cabinet_status description="Drive cabinet status" />
<block description="Minor servo in block status" />
<operative_mode description="Minor servo operating mode" />
<physical_axes description="Number of physical axes" />
<physical_axes_enabled description="Sequence, physical axes enabled" />
<physical_positions description="Sequence, physical axes positions" />
<virtual_axes description="Number of virtual axes" />
<plain_virtual_positions description="Sequence, plain virtual axes positions, with offsets" />
<virtual_positions description="Sequence, virtual axes positions, without offsets" />
<virtual_offsets description="Sequence, sum of user and system virtual axis offsets" />
<tracking description="Boolean indicating whether the servo is tracking the given coordinates" />
<trajectory_id description="Unsigned int, the UNIX Epoch * 1000 indicating the start time of the current trajectory" />
<total_trajectory_points description="Number of points sent for the current trajectory" />
<remaining_trajectory_points description="Remaining points of the current trajectory" />
<actPosition description="Current position, with sign inverted in respect to the LDO one"/>
<cmdPosition description="Latest commanded position, with sign inverted in respect to the LDO one" />
<positionDiff description="Difference between the commanded and the current position" />
<status description="Bit pattern indicating the status of the derotator" />
</SRTDerotator>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<AvailableReceiver Code="CCG" Derotator="false" Component="RECEIVERS/SRT5GHzReceiver"/> <AvailableReceiver Code="CCG" Derotator="false" Component="RECEIVERS/SRT5GHzReceiver"/>
<AvailableReceiver Code="KKG" Derotator="false" Component="RECEIVERS/SRTKBandMFReceiver"/> <AvailableReceiver Code="KKG" Derotator="true" Component="RECEIVERS/SRTKBandMFReceiver"/>
<AvailableReceiver Code="LLP" Derotator="false" Component="RECEIVERS/SRTLPBandReceiver"/> <AvailableReceiver Code="LLP" Derotator="false" Component="RECEIVERS/SRTLPBandReceiver"/>
......
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
UpdatingTime="0.1" UpdatingTime="0.2"
TrackingLeadTime="2.6"
RewindingSleepTime="0.1" RewindingSleepTime="0.1"
RewindingTimeout="200" RewindingTimeout="200"
DefaultConfiguration="FIXED" DefaultConfiguration="FIXED"
......
#ifndef __SRTDEROTATOR_IDL__
#define __SRTDEROTATOR_IDL__
/***************************************************************\
* Authors:
* Giuseppe Carboni <giuseppe.carboni@inaf.it>
*
* Created: Mon May 06 10:00:00 CEST 2024
\***************************************************************/
#include "GenericDerotator.idl"
#include "SRTMinorServoCommon.idl"
#pragma prefix "alma"
module MinorServo
{
/**
* This IDL interface describes the CORBA interface of a common Leonardo Derotator component.
*/
interface SRTDerotator : SRTLDOBaseProperties, Receivers::GenericDerotator, ACS::CharacteristicComponent
{
/**
* This property indicates the ID of the trajectory. It always corresponds to starting time of the trajectory, expressed as the UNIX Epoch * 1000 (long)
*/
readonly attribute ACS::ROlong trajectory_id;
/**
* This property indicates the total number of points loaded into the current trajectory
*/
readonly attribute ACS::ROlong total_trajectory_points;
/**
* This property indicates the number of points of the current trajectory which remain to be tracked
*/
readonly attribute ACS::ROlong remaining_trajectory_points;
/**
* This method asks the hardware its status and updates the properties.
*/
boolean updateStatus();
};
};
#endif
...@@ -17,61 +17,8 @@ module MinorServo ...@@ -17,61 +17,8 @@ module MinorServo
* This IDL interface describes the CORBA interface of a common SRTMinorServo component. * This IDL interface describes the CORBA interface of a common SRTMinorServo component.
* This is simply the base interface from which the SRTGenericMinorServo and SRTProgramTrackMinorServo interfaces inherit. * This is simply the base interface from which the SRTGenericMinorServo and SRTProgramTrackMinorServo interfaces inherit.
*/ */
interface SRTBaseMinorServo : ACS::CharacteristicComponent interface SRTBaseMinorServo : SRTLDOBaseProperties, ACS::CharacteristicComponent
{ {
/**
* This property tells if all the servo axes are enabled
*/
readonly attribute Management::ROTBoolean enabled;
/**
* This property tells the status of the servo drive cabinet
*/
readonly attribute ROSRTMinorServoCabinetStatus drive_cabinet_status;
/**
* This property tells if the servo is in blocked state and cannot move
*/
readonly attribute Management::ROTBoolean block;
/**
* This property returns the current operative mode of the servo
*/
readonly attribute ROSRTMinorServoOperativeMode operative_mode;
/**
* This property returns the sequence of statuses of the servo physical axes
*/
readonly attribute ACS::RObooleanSeq physical_axes_enabled;
/**
* This property returns the sequence of current positions of the physical axes of the servo
*/
readonly attribute ACS::ROdoubleSeq physical_positions;
/**
* This property returns the number of virtual axes of the servo
*/
readonly attribute ACS::ROlong virtual_axes;
/**
* This property returns the current plain positions of the virtual axes of the servo
* The plain positions are the positions returned from the Leonardo servo system, without subtracting the offsets
*/
readonly attribute ACS::ROdoubleSeq plain_virtual_positions;
/**
* This property returns the current positions of the virtual axes of the servo
* The positions returned by this property equals to the plain virtual positions minus the offsets
*/
readonly attribute ACS::ROdoubleSeq virtual_positions;
/**
* This property returns the current offsets of the virtual axes of the servo
* The offset values are the sum of user and system offsets
*/
readonly attribute ACS::ROdoubleSeq virtual_offsets;
/** /**
* This property returns the current user offsets of the virtual axes of the servo * This property returns the current user offsets of the virtual axes of the servo
*/ */
......
...@@ -126,5 +126,65 @@ module MinorServo ...@@ -126,5 +126,65 @@ module MinorServo
ERROR_DRIVE_CABINET ERROR_DRIVE_CABINET
}; };
ACS_ENUM(SRTMinorServoError); ACS_ENUM(SRTMinorServoError);
/*
* This IDL interface describes the CORBA interface of a common Leonardo Minor Servo System component.
* This interface contains the properties that are common to a focus path minor servo system and a derotator minor servo system.
*/
interface SRTLDOBaseProperties
{
/**
* This property tells if all the servo axes are enabled
*/
readonly attribute Management::ROTBoolean enabled;
/**
* This property tells the status of the servo drive cabinet
*/
readonly attribute ROSRTMinorServoCabinetStatus drive_cabinet_status;
/**
* This property tells if the servo is in blocked state and cannot move
*/
readonly attribute Management::ROTBoolean block;
/**
* This property returns the current operative mode of the servo
*/
readonly attribute ROSRTMinorServoOperativeMode operative_mode;
/**
* This property returns the sequence of statuses of the servo physical axes
*/
readonly attribute ACS::RObooleanSeq physical_axes_enabled;
/**
* This property returns the sequence of current positions of the physical axes of the servo
*/
readonly attribute ACS::ROdoubleSeq physical_positions;
/**
* This property returns the number of virtual axes of the servo
*/
readonly attribute ACS::ROlong virtual_axes;
/**
* This property returns the current plain positions of the virtual axes of the servo
* The plain positions are the positions returned from the Leonardo servo system, without subtracting the offsets
*/
readonly attribute ACS::ROdoubleSeq plain_virtual_positions;
/**
* This property returns the current positions of the virtual axes of the servo
* The positions returned by this property equals to the plain virtual positions minus the offsets
*/
readonly attribute ACS::ROdoubleSeq virtual_positions;
/**
* This property returns the current offsets of the virtual axes of the servo
* The offset values are the sum of user and system offsets
*/
readonly attribute ACS::ROdoubleSeq virtual_offsets;
};
}; };
#endif #endif
...@@ -24,11 +24,12 @@ CSOURCENAMES = \ ...@@ -24,11 +24,12 @@ CSOURCENAMES = \
# #
# IDL FILES # IDL FILES
# #
IDL_FILES = SRTMinorServoBoss SRTMinorServo SRTMinorServoCommon IDL_FILES = SRTMinorServoBoss SRTMinorServo SRTDerotator SRTMinorServoCommon
SRTMinorServoCommonStubs_LIBS = baciStubs ManagmentDefinitionsStubs MinorServoDefinitionsStubs ComponentErrorsStubs MinorServoErrorsStubs SRTMinorServoCommonStubs_LIBS = baciStubs ManagmentDefinitionsStubs MinorServoDefinitionsStubs ComponentErrorsStubs MinorServoErrorsStubs
SRTMinorServoStubs_LIBS = SRTMinorServoCommonStubs SRTMinorServoStubs_LIBS = SRTMinorServoCommonStubs
SRTMinorServoBossStubs_LIBS = SRTMinorServoCommonStubs MinorServoBossStubs SRTMinorServoBossStubs_LIBS = SRTMinorServoCommonStubs MinorServoBossStubs
SRTDerotatorStubs_LIBS = SRTMinorServoCommonStubs GenericDerotatorStubs
# #
# INCLUDE STANDARDS # INCLUDE STANDARDS
......
...@@ -10,7 +10,17 @@ ...@@ -10,7 +10,17 @@
module Receivers { module Receivers {
interface SRTKBandDerotator : GenericDerotator { interface SRTKBandDerotator : GenericDerotator, ACS::CharacteristicComponent
{
/**
* <h3>Methods</h3>:
* <ul>
* <li>powerOff(): switch the power amplifier off </li>
* <li>setSpeed(): set the derotator speed, in rpm</li>
* <li>getSpeed(): get the derotator speed, in rpm</li>
* </ul>
*/
/** Computation of the sensor lenght /** Computation of the sensor lenght
* *
...@@ -104,9 +114,42 @@ module Receivers { ...@@ -104,9 +114,42 @@ module Receivers {
ComponentErrors::ComponentErrorsEx ComponentErrors::ComponentErrorsEx
); );
};
/** Switch the power amplifier off
*
* @throw CORBA::SystemException
* @throw ComponentErrors::ComponentErrorsEx
*/
void powerOff() raises (ComponentErrors::ComponentErrorsEx);
/**
* Set the derotator speed
*
* @arg speed speed in rpm
* @throw ComponentErrors::ComponentErrorsEx,
* @throw DerotatorErrors::DerotatorErrorsEx
*/
void setSpeed(in unsigned long speed) raises (
ComponentErrors::ComponentErrorsEx,
DerotatorErrors::DerotatorErrorsEx
);
/**
* Get the derotator speed
*
* @return the derotator speed in rpm
* @throw ComponentErrors::ComponentErrorsEx,
* @throw DerotatorErrors::DerotatorErrorsEx
*/
unsigned long getSpeed() raises (
ComponentErrors::ComponentErrorsEx,
DerotatorErrors::DerotatorErrorsEx
);
};
}; };
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment