• Classes
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

mastercomp_if.idl

Go to the documentation of this file.
00001 /*
00002  *    ALMA - Atacama Large Millimiter Array
00003  *    (c) European Southern Observatory, 2002
00004  *    Copyright by ESO (in the framework of the ALMA collaboration),
00005  *    All rights reserved
00006  *
00007  *    This library is free software; you can redistribute it and/or
00008  *    modify it under the terms of the GNU Lesser General Public
00009  *    License as published by the Free Software Foundation; either
00010  *    version 2.1 of the License, or (at your option) any later version.
00011  *
00012  *    This library is distributed in the hope that it will be useful,
00013  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  *    Lesser General Public License for more details.
00016  *
00017  *    You should have received a copy of the GNU Lesser General Public
00018  *    License along with this library; if not, write to the Free Software
00019  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
00020  *    MA 02111-1307  USA
00021  */
00022  
00023 #ifndef _MASTERCOMP_IDL_
00024 #define _MASTERCOMP_IDL_
00025 
00026 #include <acscomponent.idl>
00027 #include <baci.idl>
00028 #include <ACSErrTypeCommon.idl>
00029 
00030 #pragma prefix "alma"
00031 
00032 
00033 module ACS
00034 {
00035         typedef string StateName;
00036         typedef string ModeName;
00037 
00038         // ALMA-subsystem superstates (not extensible)
00039         const StateName SUBSYSSTATE_AVAILABLE = "AVAILABLE";
00040         const StateName SUBSYSSTATE_OFFLINE = "OFFLINE";
00041         const StateName SUBSYSSTATE_ONLINE = "ONLINE";
00042         const StateName SUBSYSSTATE_OPERATIONAL = "OPERATIONAL";
00043         const StateName SUBSYSSTATE_ERROR = "ERROR";
00044         
00045         // system-defined substates (of superstate SUBSYSSTATE_OFFLINE)
00046         const StateName SUBSYSSTATE_SHUTDOWN = "SHUTDOWN";
00047         const StateName SUBSYSSTATE_INITIALIZING_PASS1 = "INITIALIZING_PASS1";
00048         const StateName SUBSYSSTATE_PREINITIALIZED = "PREINITIALIZED";
00049         const StateName SUBSYSSTATE_INITIALIZING_PASS2 = "INITIALIZING_PASS2";
00050         const StateName SUBSYSSTATE_REINITIALIZING = "REINITIALIZING";
00051         const StateName SUBSYSSTATE_SHUTTINGDOWN_PASS1 = "SHUTTINGDOWN_PASS1";
00052         const StateName SUBSYSSTATE_PRESHUTDOWN = "PRESHUTDOWN";
00053         const StateName SUBSYSSTATE_SHUTTINGDOWN_PASS2 = "SHUTTINGDOWN_PASS2";
00054         
00055         // Note that user-defined substates of the superstates SUBSYSSTATE_ONLINE and 
00056         // SUBSYSSTATE_OPERATIONAL must use names that are different from the above
00057         
00058         // subsystem modes are not yet supported; we declare the 3 system modes here anyway
00059         const ModeName SUBSYSMODE_SIMULATION = "SIMULATION";
00060         const ModeName SUBSYSMODE_STANDALONE = "STANDALONE";
00061         const ModeName SUBSYSMODE_DEGRADED = "DEGRADED";
00062     
00063     
00064     
00070     interface MasterComponentReadOnly : ACS::CharacteristicComponent
00071     {
00077         readonly attribute ACS::ROstringSeq currentStateHierarchy;        
00078 
00079 
00080         // todo: add method(s) that list describe(s) all states, including those 
00081         // which are defined by the particular subsystem;
00082         // to be used for GUI display etc.                
00083     };
00084 
00085     
00092     interface MasterComponent : MasterComponentReadOnly
00093     {
00094                 // Events that can be sent to the master component.
00095             // We assume that the optional subsystem-specific substates of 'ONLINE' and 'OPERATIONAL' 
00096             // don't add any new events (i.e., they are read-only from an outside point of view)
00097                 enum SubsystemStateEvent {
00098                 SUBSYSEVENT_INITPASS1,
00099                 SUBSYSEVENT_INITPASS2,
00100                 SUBSYSEVENT_REINIT,
00101                 SUBSYSEVENT_START,
00102                 SUBSYSEVENT_STOP,
00103                 SUBSYSEVENT_SHUTDOWNPASS1,
00104                 SUBSYSEVENT_SHUTDOWNPASS2,
00105                 SUBSYSEVENT_ERROR
00106                 };
00107   
00112         void doTransition(in SubsystemStateEvent event)
00113                raises (ACSErrTypeCommon::IllegalStateEventEx);
00114                
00115     };
00116     
00117 };
00118 
00119 #endif

Generated on Thu Jan 12 2012 23:13:14 for ACS-10.0 IDL interfaces by  doxygen 1.7.0