CARMA C++
SubarrayControl.idl
Go to the documentation of this file.
1 #ifndef CARMA_CONTROL_SUBARRAYCONTROL_IDL
2 #define CARMA_CONTROL_SUBARRAYCONTROL_IDL
3 
18 #include "carma/antenna/common/CalibratorControl.idl"
20 #include "carma/antenna/common/PolarizationControl.idl"
22 #include "carma/antenna/common/SwitchState.idl"
24 #include "carma/control/Drives.idl"
28 #include "carma/control/SequenceTypedefs.idl"
36 
37 
38 module carma {
39 module control {
40 
41 const string SUBARRAY_CONTROL_NAME = "carma.subarrayControl";
42 
55 exception TimeoutException {
56  string errorMsg;
57  string fileName;
58  short lineNo;
59 };
60 
66  string errorMsg;
67  string fileName;
68  short lineNo;
69 };
70 
76  string errorMsg;
77  string fileName;
78  short lineNo;
79 };
80 
81 
85 typedef sequence<float> AzElSeq;
86 
90 typedef sequence<double> RaDecSeq;
91 
100 
105 
110 };
111 
112 
113 
117 typedef sequence< AntennaAssignment > AntennaAssignmentSeq;
118 
119 
124  string name; // Full, canonical name
125  string stringValue;
126  carma::monitor::TransportMonitorValue value;
127  boolean valid;
128  boolean found;
129 };
130 typedef sequence<MonitorPointValue> SeqMonitorPointValue;
131 
135 enum Aperture {
140 };
141 
145 enum WaitItem {
155 };
156 
164 };
165 
166 
173  IMG,
175 };
176 
185 };
186 
191 
194 
197 
200 };
201 
206 };
207 
212 };
213 
216  SHADOW_INTERNAL,
217  SHADOW_SWEPTVOLUME
218 };
219 
220 struct ComponentReady {
221  SeqShort ready;
222  SeqShort notready;
223 };
224 
225 typedef ComponentReady AntennaReady;
226 typedef ComponentReady BandReady;
227 
228 struct AddAntennaResult {
229  SeqShort actuallyAdded;
230  SeqShort alreadyInSubarray;
231  SeqShort ownedByOtherSubarrays;
232 };
233 
234 struct RemoveAntennaResult {
235  SeqShort actuallyRemoved;
236  SeqShort alreadyInMaint;
237  SeqShort ownedByOtherSubarrays;
238 };
239 
245  string source;
247  float flux;
249  float rms;
251  float freq;
253  float daysback;
255  string date;
256 };
257 
258 //================================================================
259 
263 interface SubarrayControl: OpticalTelescope, Drives, SignalPath,
265 
288  string query(in string monitorName) raises(carma::util::UserException,
290 
303  string queryString(in string monitorPointName)
306 
318  double queryDouble(in string monitorPointName)
321 
333  long queryInt(in string monitorPointName)
336 
348  SeqFloat queryComplex(in string monitorPointName)
351 
363  boolean queryBool(in string monitorPointName)
366 
377  SeqMonitorPointValue queryMonitorPoint(in SeqString monitorComponent)
379 
388  void setMonitorPointReal(in string name, in double value)
390 
397  void setMonitorPointInvalid(in string name)
399 
420  FluxMeasurement queryFlux(in string source,
421  in float freq,
422  in float deltaFreq,
423  in float deltaTime)
425 
436  float queryMag(in string starName)
438 
439 // ------------ Project database commands --------------------
440 
445 
446  void projectOscriptAdd( in string project,
447  in string obsblock,
448  in string subobsblock,
449  in string scriptFile,
450  in string catalogFile )
452 
453 
454  boolean projectEdit( in string project,
455  in string obsblock,
456  in string subobsblock,
457  in short trial,
462 
463  short projectRun(in string projectID, in string obsblock,
464  in string subObsblock, in boolean isCommissioning,
465  in boolean isDualCorr, in string arrayConfig1,
466  in string arrayConfig2,
467  in string scriptFile, in string catalogFile)
470 // ---------------------------------------------------------
471 
475  long getSubarrayNo() raises(carma::util::UserException);
476 
480  string getSubarrayName() raises(carma::util::UserException);
481 
490  void pad(in short padNo, in short carmaAntNo)
492 
504  void padOffset(in float east, in float north, in float up,
505  in short carmaAntNo) raises(carma::util::UserException);
506 
521  void antennaOffset(in float east, in float north, in float up,
522  in short carmaAntNo) raises(carma::util::UserException);
523 
545  PadOffsets convertBaseline(in double x, in double y, in double z,
546  in short carmaAntNo)
548 
556  void setAntPosFilename( in string filename )
557  raises( carma::util::UserException );
558 
568  void axisNonintersection(in float offset,
569  in short carmaAntNo) raises(carma::util::UserException);
570 
578  void noiseSource(in boolean state, in boolean isReference)
580 
585  void noisePreset( )
587 
593  void noiseAtten(in unsigned short atten)
595 
600  void quadmodAtten(in unsigned short atten)
602 
610  void delay(in float offset, in short carmaAntNo)
612 
619  void adjustableDelay(in float offset,
620  in SeqShort carmaAntNoSeq)
622 
632  void delayDifference(in float diff, in short carmaAntNo,
634 // argh, this should really be carma::antenna::common::RxControl::Pol_Type pol,
635 // I'll have to change this, but right now it has a ripple effect that
636 // I don't want to deal with (fitDelays, etc) . MWP
639 
648  double doppler(in string source)
650 
659  void antennaIFatten(in double power, in short ifNum,
660  in SeqShort carmaAntNoSeq,
661  in boolean invalidateTsys )
663 
670  void antennaIFpower(in double power, in SeqShort carmaAntNoSeq)
672 
679  void antennaIFpresetPower(in SeqShort carmaAntNoSeq)
681 
688  void storeAntennaIFattenAmbient(in SeqShort carmaAntNoSeq)
690 
698  void psysPreset(in SeqShort carmaAntNoSeq, in short astroBandNo)
700 
705  void psysLevel(in double level)
707 
727  void ifoutPreset()
729 
735  void ifoutLevel(in double level)
737 
745  void rfPower(in boolean state)
747 
752  void setInitializationFlag(in boolean state)
754 
759  boolean getInitializationFlag()
761 
770  void antennaInitialized(in boolean state, in SeqShort carmaAntNoSeq)
772 
773  // ======================= Pointing measurement =========================
778  void recordPoint(in short carmaAntNo)
780 
786  AntennaAssignmentSeq getAntennaAssignments( )
788 
803  AddAntennaResult addAntenna( in SeqShort carmaAntNoSeq,
804  in boolean skipAntsOwnedByOthers )
805  raises ( carma::util::UserException );
806 
822  RemoveAntennaResult removeAntenna( in SeqShort carmaAntNoSeq,
823  in boolean skipAntsNotOwnedByMe )
824  raises ( carma::util::UserException );
825 
832  void tilt(in SeqShort carmaAntNoSeq)
834 
840  void assignLO(in long loRefNo)
842 
885  void freq(in double frest, in SidebandType sb, in double fif,
886  in string doppler, in string transition)
889 
894  void qfreq(in double frest, in SidebandType sb, in double fif,
895  in string doppler, in string transition)
897 
907  void refreq(in SeqShort carmaAntNoSeq, in boolean retune)
909 
915  void refAtten(in unsigned short atten, in short carmaAntNo)
917 
923  SeqDouble harmonics(in double freq)
925 
931  void setConfigName(in string name)
933 
941  void setObsblock(in string project, in string obsblock,
942  in string subObsblock, in long trial)
944 
956  void setAllObsblocks(in string project1, in string obsblock1,
957  in string subObsblock1, in long trial1,
958  in string project2, in string obsblock2,
959  in string subObsblock2, in long trial2 )
961 
969  void project(in string project)
971 
981  void obsblock(in string obsblock)
983 
994  void subObsblock(in string subObsblock)
996 
1001  void trial(in long number)
1003 
1008  void resetProjectAndObsblock( )
1010 
1047  void setConstraints (
1048  in ImagingType imgType,
1049  in short minAnts,
1050  in float calMaxTime,
1051  in float calMaxRms,
1052  in float maxTsys,
1053  in float maxRmsPathLength,
1054  in float maxTau,
1055  in float maxDecor,
1056  in float requiredRms
1057  )
1059 
1063  void setDefaultConstraints ( )
1065 
1081  void setIntent(in string sourceName, in string purpose,
1082  in boolean selfcal, in boolean fastSwitch)
1084 
1085 
1094  boolean isCommissioning( in string project )
1109  void camera( in carma::antenna::common::SwitchState state,
1110  in SeqShort carmaAntNoSeq)
1112 
1120  void elevLimit(in float limit)
1122 
1134  string info(in string sourceName)
1136 
1147  RaDecSeq getRaDec(in string sourceName)
1149 
1160  AzElSeq azel(in string sourceName, in double minutes)
1162 
1170  boolean isUp(in string sourceName)
1172 
1183  float whenDown(in string sourceName)
1185 
1197  float whenUp(in string sourceName)
1199 
1211  float whenTransit(in string sourceName)
1213 
1228  string whazUp()
1230 
1238  string whazUpOptical()
1240 
1259  void integrate(in double intTime, in long numInts,
1260  in double gap, in boolean science)
1262 
1269  void cancel()
1271 
1281  void fringeTracking(in boolean on)
1283 
1291  void phaseSwitching(in boolean on, in short chanNo)
1293 
1301  void lrPhaseOffsetMode(in boolean on)
1303 
1309  void lrPhase(in float phaseOffset, in short carmaAntNo)
1311 
1317  void lrRate(in float phaseRate, in short carmaAntNo)
1319 
1326  void cal(
1328  in SeqShort carmaAntNoSeq) raises(carma::util::UserException);
1329 
1336  void tiltZeros(in float aftForward, in float leftRight, in short carmaAntNo)
1338 
1352  void aperturePointingConstants(in Aperture ap,
1353  in float az, in float el, in float sag, in short carmaAntNo)
1355 
1364  void phaseOffset(in float phase, in short bandNo,
1365  in short antenna1No, in short antenna2No)
1367 
1373  void applyTsys(in boolean on)
1375 
1382  void applyFlux(in boolean on)
1384 
1389  void applyFocus(in boolean on)
1391 
1405  void setDecimationMode(in DecimationMode mode,
1406  in unsigned short astrobandNo)
1408 
1424  void doIVcurve( in carma::antenna::common::RxControl::Type rx,
1425  in carma::antenna::common::RxControl::Pol_Type pol,
1426  in float startVjInMv,
1427  in float stopVjInMv,
1428  in float stepVjInMv,
1429  in unsigned short deltaInMs,
1430  in boolean doTotalPower,
1431  in SeqShort carmaAntNoSeq )
1432  raises ( carma::util::UserException );
1433 
1439  carma::antenna::common::IVCurve getIVcurve(in short carmaAntNo)
1441 
1476  ComponentReady wait(in WaitItem item, in SeqShort carmaComponentNoSeq,
1477  in float timeout,
1478  in WaitCondition condition,
1479  in short count)
1484 
1492  void focusZ(in float position, in short carmaAntNo)
1494 
1500  void focusX(in float position, in short carmaAntNo)
1502 
1508  void focusY(in float position, in short carmaAntNo)
1510 
1537  void equatOffset( in double dra,
1538  in double ddec,
1539  in SeqShort carmaAntNoSeq,
1540  in boolean affectPhaseCenter,
1541  in boolean whileIntegrating)
1543 
1563  void phaseCenterOffset(in double dra, in double ddec)
1565 
1573  void passiveLO(in double freq)
1575 
1582  void polarization(
1584  in SeqShort carmaAntNoSeq)
1586 
1598  AntennaReady tsys()
1600 
1601 
1662  void configAstroBand( in short astrobandNo,
1663  in string astroBandConf,
1665  in double fcenter,
1666  in SidebandType sb,
1667  in double frest,
1668  in double imagefrest,
1669  in boolean online,
1670  in string transition, in string imageTransition,
1672  )
1674 
1679  void assertCorrelatorConfiguration()
1681 
1686  void clearAstroBand(in short astrobandNo)
1688 
1696  void enableCorrelation( in SeqShort bandNoSeq ,
1697  in boolean correlationsEnabled )
1699 
1705  void astroBandOnline(in short astrobandNo, in boolean online)
1707 
1714  void optimizeThresholds( in SeqShort bandNoSeq )
1716 
1723  void flattenPhases( in SeqShort bandNoSeq )
1725 
1745  void calibrateSpectra( in SeqShort bandNoSeq ,
1746  in boolean noiseEnabled,
1747  in float intTime ,
1748  in boolean cache,
1749  in boolean enable)
1751 
1761  boolean checkConfig(in boolean quiet)
1763 
1772  SeqShort getCorrelatorBandNoSeq( in SeqShort astroBandNoSeq,
1773  in boolean includeOfflineBands )
1778  double lst()
1780 
1787  double mjd(in double seconds)
1789 
1793  string lstString()
1795 
1799  string times()
1801 
1807  void reconnect(in boolean force) raises(carma::util::UserException);
1808 
1821  void ucat(in string catalog) raises(carma::util::UserException);
1822 
1834  void useAdjustableDelay( in boolean useIt, in SeqShort carmaAntNoSeq )
1836 
1847  void useIonosphericDelay( in boolean useIt, in SeqShort carmaAntNoSeq )
1849 
1861  void useGeometricDelay( in boolean useIt, in SeqShort carmaAntNoSeq )
1863 
1875  void useHeightDelay( in boolean useIt, in SeqShort carmaAntNoSeq)
1877 
1889  void useTroposphericDelay( in boolean useIt, in SeqShort carmaAntNoSeq )
1902  void useThermalDelay( in boolean useIt, in SeqShort carmaAntNoSeq )
1904 
1914  void sbratio(in float ratio, in SeqShort carmaAntNoSeq )
1916 
1927  void radioAperture(in boolean useRadio, in SeqShort carmaAntNoSeq)
1929 
1941  void jyperk(in float gain, in short carmaAntNo)
1943 
1952  void pointStatus(in PointStatusType status, in SeqShort carmaAntNoSeq)
1954 
1961  void vj( in carma::antenna::common::RxControl::Pol_Type pol,
1962  in float vj,
1963  in short carmaAntNo )
1965 
1973  void ij( in carma::antenna::common::RxControl::Pol_Type pol,
1974  in float ij,
1975  in short carmaAntNo )
1977 
1982  AntennaReady bogus(in float numSeconds)
1984 
1988  void testAntHandles( in double aSeconds,
1989  in double bSeconds,
1990  in long whichTest,
1991  in double lateAfterSeconds,
1992  in SeqShort carmaAntNoSeq )
1993  raises( carma::util::UserException );
1994 
2002  void setTraceLevel( in short traceLevel )
2003  raises( carma::util::UserException );
2014  double lineFreq(in string line)
2016 
2029  double transitionFreq(in string molecule, in string transition)
2031 
2032 
2039  void alarm(in boolean state, in string alarmName)
2041 
2048  void alarmEnable(in boolean state)
2050 
2064  void alarm1mm(in boolean state)
2066 
2075  void comment(in string obsComment)
2081  void log(in string entry)
2083 
2088  void logError(in string entry)
2090 
2097  boolean getScriptBool(in short index)
2099 
2107  void setScriptBool(in short index, in boolean value)
2109 
2116  double getScriptDouble(in short index)
2118 
2126  void setScriptDouble(in short index, in double value)
2128 
2135  long getScriptInt(in short index)
2137 
2145  void setScriptInt(in short index, in long value)
2147 
2154  string getScriptString(in short index)
2156 
2164  void setScriptString(in short index, in string value)
2166 
2174  void appendScriptString(in short index, in string value)
2176 
2181  void addScriptHistory(in string value)
2183 
2187  string getScriptHistory()
2189 
2193  boolean getScriptHistoryFull()
2195 
2206  void clearScriptAll()
2208 
2214  void setScriptName(in string name)
2216 
2222  string getScriptName()
2224 
2230  void setScriptState(in ScriptStateType state)
2232 
2237  ScriptStateType getScriptState()
2239 
2244  void setFaultSystemDriveErrorPreference( in carma::fault::EffectPreference inPref )
2245  raises ( carma::util::UserException );
2246 
2251  void disableFaultSystemAlarms( in SeqString inMonitorPointNames )
2252  raises ( carma::util::UserException );
2253 
2259  void restoreFaultSystemAlarms( in SeqString inMonitorPointNames )
2260  raises ( carma::util::UserException );
2261 
2266  void setFaultSystemAlarmEnableState( in boolean inStateIsOn )
2267  raises ( carma::util::UserException );
2268 
2274  void resetTimeSinceLastIntegration()
2275  raises (carma::util::UserException);
2276 
2285  void saveControlSubsystemState( in string filename )
2286  raises (carma::util::UserException);
2287 
2300  void restoreControlSubsystemFromFile( in string filename )
2301  raises (carma::util::UserException);
2302 
2312  void restorationInProgress( in boolean restoring )
2313  raises (carma::util::UserException);
2314 
2321  void signalControlSubsystemRestored( )
2322  raises (carma::util::UserException);
2323 
2374  NearestInfoSeq getNearest( in string source,
2375  in float elMin, in float elMax,
2376  in SeqString sourceList,
2377  in NearestActionType action,
2378  in short numReturn,
2379  in boolean ignoreNorthSouth,
2380  in string coordSys,
2381  in boolean optical,
2382  in float fluxLimit,
2383  in float frequency )
2384  raises (carma::util::UserException);
2385 
2399  void startTrack()
2400  raises (carma::util::UserException);
2401 
2405  void addBirdie(
2406  in unsigned long type,
2407  in unsigned short band,
2408  in unsigned short input1,
2409  in unsigned short input2)
2410  raises (carma::util::UserException);
2411 
2412  void removeBirdie(
2413  in unsigned long type,
2414  in unsigned short band,
2415  in unsigned short input1,
2416  in unsigned short input2)
2417  raises (carma::util::UserException);
2418 
2419  void clearBirdies(
2420  in unsigned long type)
2421  raises (carma::util::UserException);
2422 
2426  void addCorrelator(in unsigned long type)
2427  raises (carma::util::UserException);
2428 
2432  void removeCorrelator(in unsigned long type)
2433  raises (carma::util::UserException);
2434 
2438  boolean subarrayOwnsCorrelator(in long subarrayNo, in unsigned long type)
2439  raises (carma::util::UserException);
2440 
2441  boolean subarrayOwnsSingleCorrelator(in long subarrayNo)
2442  raises (carma::util::UserException);
2443 
2444  boolean subarrayOwnsNoCorrelator(in long subarrayNo)
2445  raises (carma::util::UserException);
2446 
2447  string astrobandCorrelator(in long astrobandNo)
2448  raises (carma::util::UserException);
2449 
2450  string ownedCorrelator(in long subarrayNo)
2451  raises (carma::util::UserException);
2452 
2456  SeqShort getAstroBandsForConfiguration(in string confName)
2457  raises (carma::util::UserException);
2458 
2459  void setInvalidationForMosaics( in boolean invalidate )
2460  raises (carma::util::UserException);
2461 
2465  boolean isShadowedNow(in short carmaAntennaNo, in ShadowingType type, in double diameterFraction)
2467 
2468  boolean isShadowedHaDec(in short carmaAntennaNo, in double hourAngleHours, in double decDegrees, in ShadowingType type, in double diameterFraction)
2470 
2471  boolean isShadowedSource(in short carmaAntennaNo, in string sourceName, in double lstHours, in ShadowingType type, in double diameterFraction)
2473 
2474  // ===================================================
2475  // Repetitive task methods
2476 
2482  void setRepTaskName(in long taskIndex, in string taskName)
2483  raises(carma::util::UserException);
2489  void setRepTaskInterval(in long taskIndex, in double interval)
2490  raises(carma::util::UserException);
2496  void setRepTaskRemind(in long taskIndex, in double remind)
2497  raises(carma::util::UserException);
2503  void setRepTaskAuto(in long taskIndex, in double auto)
2504  raises(carma::util::UserException);
2510  void setRepTaskCompleted(in long taskIndex, in double mjd)
2511  raises(carma::util::UserException);
2512 
2513  /* ----------------------------------------------------------------- */
2514  // Testing
2515  string testMessageSize(in unsigned long size)
2517 };
2518 
2519 
2520 
2521 
2522 }; // end control
2523 }; // end carma
2524 
2525 #endif // end of conditional include
2526 
2527 
Tracking and drive related portions of the subarray control interface.
Definition: Drives.idl:26
Pad offset data structure definition.
sequence< double > RaDecSeq
Sequence of ra &amp; dec in degrees.
SidebandType
Downconverter sideband choice.
Interface for the drive related portions of the Subarray controller.
Exclude the input source list.
Correlator-related enumerations and constants.
Antenna assignment for a subarray.
carma::util::SeqShort SeqShort
Sequence of CORBA::Short.
Position is on-source.
string carmaAntennaName
Physical carma name of the antenna.
sequence< AntennaAssignment > AntennaAssignmentSeq
Sequence of antenna assignments for a subarray.
Position is off-source reference.
Wait for completion on all antennas.
Wait for completion on any single antenna.
PointStatusType
ON or OFF source indicator (Singledish observations)
ScriptStateType
Current state of the script.
Phaseswitching interface for passing a phaseswitching table into a subsystem.
Data returned by an SubarrayControl::convertBaseline method.
Definition: PadOffsets.idl:19
float daysback
Number of days since the flux was measured at given frequency.
Structure representing a flux measurement.
WaitCondition
Valid conditions to satisfy a wait.
State
Enumerate valid polarization states.
This is the IDL file for the monitorframe structures.
CorrelatorBitType
Correlator number of bits.
Receiver tuning, IVcurve complete.
IVcurve data structure definition.
An exception for a timeout Will throw your msg plus file and line number.
Variant used specificaly for cancelling.
Maximize Signal to Noise.
Flag for all faults except missing monitor point data.
Aperture
Enumerate apertures to use for selecting pointing models.
An exception for an error in the database Usage example:
Signal path mapping control portion of SubarrayControl interface The interface is split into several ...
Definition: SignalPath.idl:25
Wait for completion of a specific number of antennas.
EditStatus
Various enumeration constants.
carma::util::SeqFloat SeqFloat
Sequence of CORBA::Float.
BlockDCPolarizationType
Block Downconverter polarization input selector choice.
Type
Enumerate valid Receiver types.
Definition: RxControl.idl:36
NearestInfo data structure definition.
Position
A calibrator position enumerator.
Focus, polarizer, or beam selector complete.
Correlator command change complete.
Data returned by an IV curve method Be careful not to assume that the totPower contains the same numb...
Definition: IVCurve.idl:30
float rms
The Rms error on the flux, in Jy.
Monitor point value from a query.
carma::util::SeqDouble SeqDouble
Sequence of CORBA::Double.
string typedAntennaName
Physical typed name of the antenna.
Interface for the fault system.
Generic Carma variant of CORBA::UserException.
Interface and data structure definitions for the CARMA Project Database Manager.
sequence< Project > ProjectSequence
Sequence of projects.
Blank if no explicit setting for fault in dag.
Include (use) the input source list.
carma::util::SeqString SeqString
Sequence of CORBA::String.
Interface for the CARMA Control System Optical Telescope.
The interface to the CARMA subarray controller.
An exception when a monitor point is not found.
ImagingType
Imaging type describing how the track is being observed.
NearestActionType
Use or exclude the input source list when searching for nearest neighbors.
Interface for the SignalPathMapper related portions of the Subarray controller.
short carmaAntennaNo
Carma antenna number.
string date
String representation of date flux was measured.
ItemValue definition.
CORBA User Exception for carma::util.
sequence< ItemValue > ItemValueSequence
Sequence of an Item name and value pairs.
Definition: ItemValue.idl:26
Integrations complete.
SwitchState
Generic switch state enumerator.
Definition: SwitchState.idl:18
CorrelatorBandWidthType
Supported spectral correlator bandwidths.
An exception when a monitor point is not valid.
IDL for the carma::antenna::common::RxControl (Receiver) interface.
sequence< float > AzElSeq
Sequence of azimuth and elevation in degrees.
ShadowingType
Query internal or swept-volume shadowing.
Calibrator in position.
Maximize Imaging Fidelity.
BlankFlagPref
Fault system blank/flag preference.
float freq
Frequency at which flux was measured, GHz.
WaitItem
Valid items on which to wait.
Flag if no explicit setting for fault in dag.
Subsystem phaseswitching interface.
Blank for all faults except missing monitor point data.