ALMA Computing Group

acsexmplFridge.midl

Go to the documentation of this file.
00001 #ifndef _FRIDGE_IDL_
00002 #define _FRIDGE_IDL_
00003 
00004 /*******************************************************************************
00005 *    ALMA - Atacama Large Millimiter Array
00006 *    (c) European Southern Observatory, 2002
00007 *    Copyright by ESO (in the framework of the ALMA collaboration)
00008 *    and Cosylab 2002, All rights reserved
00009 *
00010 *    This library is free software; you can redistribute it and/or
00011 *    modify it under the terms of the GNU Lesser General Public
00012 *    License as published by the Free Software Foundation; either
00013 *    version 2.1 of the License, or (at your option) any later version.
00014 *
00015 *    This library is distributed in the hope that it will be useful,
00016 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018 *    Lesser General Public License for more details.
00019 *
00020 *    You should have received a copy of the GNU Lesser General Public
00021 *    License along with this library; if not, write to the Free Software
00022 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00023 *
00024 * "@(#) $Id: acsexmplFridge.midl,v 1.2 2006/11/21 14:51:16 hsommer Exp $"
00025 *
00026 * who       when      what
00027 * --------  --------  ----------------------------------------------
00028 * gchiozzi 2003-05-19 Put back ACS_ENUM
00029 * 
00030 */
00031 
00032 #include <baci.idl>
00033 #include <enumpropMACRO.idl>
00034 
00035 #pragma prefix "alma"
00036 
00041 module FRIDGE 
00042 {
00046     enum OnOffStates { ON, OFF };
00047     ACS_ENUM(OnOffStates);
00048 
00052     enum OpClStates { OPEN, CLOSE };
00053     ACS_ENUM(OpClStates);
00054     
00061     enum TemperatureStatus { OVERREF, ATREF, BELOWREF};
00062 
00063 
00068     struct temperatureDataBlockEvent
00069     {
00073         float absoluteDiff;
00077         TemperatureStatus status;
00078     };
00079 
00084     const string CHANNELNAME_FRIDGE = "fridge";
00085 
00086 
00087 
00092     interface FridgeControl : ACS::CharacteristicComponent
00093         {   
00101         void on();     
00102         
00110         void off();    
00111         
00120         oneway void open();   
00121         
00130         oneway void close();  
00131         
00134         readonly attribute ACS::RWdouble refTemperature;       
00135         
00138         readonly attribute ROOnOffStates powerStatus;          
00139         
00142         readonly attribute ROOpClStates doorStatus;
00143         
00146         readonly attribute ACS::ROdouble currTemperature;      
00147         
00152         struct NestedFridgeEvent
00153         {
00154                 TemperatureStatus status;
00155         };
00156     typedef sequence<NestedFridgeEvent> NestedFridgeEventSeq;
00157 
00158         };
00159         
00160 };
00161 
00162 #endif