00001 #ifndef _ACSCOURSE_MOUNT_IDL_ 00002 #define _ACSCOURSE_MOUNT_IDL_ 00003 00004 /******************************************************************************* 00005 * ALMA - Atacama Large Millimiter Array 00006 * 00007 * (c) European Southern Observatory, 2002 00008 * Copyright by ESO (in the framework of the ALMA collaboration) 00009 * and Cosylab 2002, All rights reserved 00010 * 00011 * This library is free software; you can redistribute it and/or 00012 * modify it under the terms of the GNU Lesser General Public 00013 * License as published by the Free Software Foundation; either 00014 * version 2.1 of the License, or (at your option) any later version. 00015 * 00016 * This library is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00019 * Lesser General Public License for more details. 00020 * 00021 * You should have received a copy of the GNU Lesser General Public 00022 * License along with this library; if not, write to the Free Software 00023 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00024 * 00025 * 00026 * "@(#) $Id: acscourseMount.idl,v 1.8 2006/05/27 23:08:06 gchiozzi Exp $" 00027 * 00028 * who when what 00029 * -------- -------- ---------------------------------------------- 00030 */ 00031 00032 #include <baci.idl> 00033 #include <ACSErrTypeCommon.idl> 00034 #include <ACSErrTypeACSCourse.idl> 00035 #include <xmlentity.idl> // for XML data parameters in interface MountX 00036 00037 #pragma prefix "alma" 00038 00039 00049 module ACSCOURSE_MOUNT 00050 { 00051 /********************************************************************/ 00056 interface Mount1 : ACS::ACSComponent 00057 { 00068 void objfix (in double az, 00069 in double elev); 00070 }; 00071 00072 /********************************************************************/ 00081 interface Mount2 : ACS::CharacteristicComponent 00082 { 00093 void objfix (in double az, 00094 in double elev); 00098 readonly attribute ACS::RWdouble cmdAz; 00099 00103 readonly attribute ACS::RWdouble cmdEl; 00104 00108 readonly attribute ACS::ROdouble actAz; 00109 00113 readonly attribute ACS::ROdouble actEl; 00114 }; 00115 00116 00117 00118 /********************************************************************/ 00124 interface Mount3: ACS::CharacteristicComponent 00125 { 00139 void objfix (in double az, 00140 in double elev) raises (ACSErrTypeACSCourse::TargetOutOfRangeEx); 00141 00145 readonly attribute ACS::ROdouble cmdAz; 00146 00150 readonly attribute ACS::ROdouble cmdEl; 00151 00155 readonly attribute ACS::ROdouble actAz; 00156 00160 readonly attribute ACS::ROdouble actEl; 00161 }; 00162 00163 00164 /********************************************************************/ 00169 interface Mount4 : ACS::CharacteristicComponent 00170 { 00182 void objfix (in double az, 00183 in double elev); 00184 00185 00202 void objfix_async (in double az, 00203 in double elev, 00204 in ACS::CBvoid callBack, 00205 in ACS::CBDescIn desc); 00206 00207 00211 readonly attribute ACS::ROdouble cmdAz; 00212 00216 readonly attribute ACS::ROdouble cmdEl; 00217 00221 readonly attribute ACS::ROdouble actAz; 00222 00226 readonly attribute ACS::ROdouble actEl; 00227 }; 00228 00229 /********************************************************************/ 00235 interface Mount5 : ACS::CharacteristicComponent 00236 { 00250 void objfix (in double az, 00251 in double elev) raises (ACSErrTypeACSCourse::TargetOutOfRangeEx); 00252 00256 readonly attribute ACS::ROdouble cmdAz; 00257 00261 readonly attribute ACS::ROdouble cmdEl; 00262 00266 readonly attribute ACS::ROdouble actAz; 00267 00271 readonly attribute ACS::ROdouble actEl; 00272 }; 00273 00280 const string MOUNT_CHANNEL = "mountchannel"; 00281 00286 struct MountEventData 00287 { 00288 double Azimuth; 00289 double Elevation; 00290 }; 00291 00292 00293 00294 00295 /********************************************************************/ 00299 interface Mount6 : ACS::CharacteristicComponent 00300 { 00301 typedef xmlentity::XmlEntityStruct MyXmlConfigData; 00302 00306 MyXmlConfigData createMyXmlConfigData(); 00307 00311 readonly attribute ACS::ROdouble cmdAz; 00312 readonly attribute ACS::ROdouble cmdEl; 00313 readonly attribute ACS::ROdouble actAz; 00314 readonly attribute ACS::ROdouble actEl; 00315 }; 00316 00317 }; 00318 00319 #endif 00320