00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
#ifndef CalDeviceRow_CLASS
00035
#define CalDeviceRow_CLASS
00036
00037
#include <vector>
00038
#include <string>
00039
#include <set>
00040
using std::vector;
00041
using std::string;
00042
using std::set;
00043
00044
#ifndef WITHOUT_ACS
00045
#include <asdmIDLC.h>
00046
using asdmIDL::CalDeviceRowIDL;
00047
#endif
00048
00049
#include <Angle.h>
00050
#include <AngularRate.h>
00051
#include <ArrayTime.h>
00052
#include <ArrayTimeInterval.h>
00053
#include <Complex.h>
00054
#include <Entity.h>
00055
#include <EntityId.h>
00056
#include <EntityRef.h>
00057
#include <Flux.h>
00058
#include <Frequency.h>
00059
#include <Humidity.h>
00060
#include <Interval.h>
00061
#include <Length.h>
00062
#include <Pressure.h>
00063
#include <Speed.h>
00064
#include <Tag.h>
00065
#include <Temperature.h>
00066
#include <ConversionException.h>
00067
#include <NoSuchRow.h>
00068
#include <IllegalAccessException.h>
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
#include "CCalibrationDevice.h"
00090
using namespace CalibrationDeviceMod;
00091
00092
00093
00094
00095
using asdm::Angle;
00096
using asdm::AngularRate;
00097
using asdm::ArrayTime;
00098
using asdm::Complex;
00099
using asdm::Entity;
00100
using asdm::EntityId;
00101
using asdm::EntityRef;
00102
using asdm::Flux;
00103
using asdm::Frequency;
00104
using asdm::Humidity;
00105
using asdm::Interval;
00106
using asdm::Length;
00107
using asdm::Pressure;
00108
using asdm::Speed;
00109
using asdm::Tag;
00110
using asdm::Temperature;
00111
using asdm::ConversionException;
00112
using asdm::NoSuchRow;
00113
using asdm::IllegalAccessException;
00114
00115
00116
00117
00118
00119
namespace asdm {
00120
00121
00122
00123
00124
00125
class AntennaRow;
00126
00127
00128
class SpectralWindowRow;
00129
00130
00131
class FeedRow;
00132
00133
00140 class CalDeviceRow {
00141
friend class asdm::CalDeviceTable;
00142
00143
public:
00144
00145
virtual ~
CalDeviceRow();
00146
00150
CalDeviceTable &
getTable()
const;
00151
00152
#ifndef WITHOUT_ACS
00153
00157 CalDeviceRowIDL *
toIDL()
const;
00158
#endif
00159
00160
#ifndef WITHOUT_ACS
00161
00165
void setFromIDL (CalDeviceRowIDL x)
throw(
ConversionException);
00166
#endif
00167
00172 string
toXML()
const;
00173
00179
void setFromXML (string rowDoc)
throw(
ConversionException);
00180
00182
00184
00185
00186
00187
00188
00189
00190
00191
00196
ArrayTimeInterval getTimeInterval()
const;
00197
00198
00199
00200
00210
void setTimeInterval (
ArrayTimeInterval timeInterval);
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00228
int getNumCalload()
const;
00229
00230
00231
00232
00240
void setNumCalload (
int numCalload);
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00256
bool isNoiseCalExists()
const;
00257
00258
00259
00265 vector<double >
getNoiseCal()
const throw(
IllegalAccessException);
00266
00267
00268
00269
00276
void setNoiseCal (vector<double > noiseCal);
00277
00278
00279
00280
00284
void clearNoiseCal ();
00285
00286
00287
00288
00289
00290
00291
00292
00297
bool isTemperatureLoadExists()
const;
00298
00299
00300
00306 vector<Temperature >
getTemperatureLoad()
const throw(
IllegalAccessException);
00307
00308
00309
00310
00317
void setTemperatureLoad (vector<Temperature > temperatureLoad);
00318
00319
00320
00321
00325
void clearTemperatureLoad ();
00326
00327
00328
00329
00330
00331
00332
00333
00338
bool isCalEffExists()
const;
00339
00340
00341
00347 vector<vector<float > >
getCalEff()
const throw(
IllegalAccessException);
00348
00349
00350
00351
00358
void setCalEff (vector<vector<float > > calEff);
00359
00360
00361
00362
00366
void clearCalEff ();
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00381 vector<CalibrationDeviceMod::CalibrationDevice >
getCalLoadName()
const;
00382
00383
00384
00385
00393
void setCalLoadName (vector<CalibrationDeviceMod::CalibrationDevice > calLoadName);
00394
00395
00396
00397
00398
00399
00401
00403
00404
00405
00406
00407
00408
00409
00410
00415
Tag getAntennaId()
const;
00416
00417
00418
00419
00429
void setAntennaId (
Tag antennaId);
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00447
int getFeedId()
const;
00448
00449
00450
00451
00461
void setFeedId (
int feedId);
00462
00463
00464
00465
00466
00467
00468
00469
00470
00471
00472
00473
00474
00479
Tag getSpectralWindowId()
const;
00480
00481
00482
00483
00493
void setSpectralWindowId (
Tag spectralWindowId);
00494
00495
00496
00497
00498
00499
00501
00503
00504
00505
00506
00507
00514
AntennaRow*
getAntennaUsingAntennaId();
00515
00516
00517
00518
00519
00520
00521
00522
00529
SpectralWindowRow*
getSpectralWindowUsingSpectralWindowId();
00530
00531
00532
00533
00534
00535
00536
00537
00538
00539
00545 vector <FeedRow *>
getFeeds();
00546
00547
00548
00549
00550
00551
00552
00553
00558
bool compareNoAutoInc(
Tag antennaId,
int feedId,
Tag spectralWindowId,
ArrayTimeInterval timeInterval,
int numCalload, vector<CalibrationDeviceMod::CalibrationDevice > calLoadName);
00559
00560
00561
00562
00563
bool compareRequiredValue(
int numCalload, vector<CalibrationDeviceMod::CalibrationDevice > calLoadName);
00564
00565
00574
bool equalByRequiredValue(
CalDeviceRow* x) ;
00575
00576
private:
00580
CalDeviceTable &table;
00584
bool hasBeenAdded;
00585
00586
00587
void isAdded();
00588
00589
00598
CalDeviceRow (
CalDeviceTable &table);
00599
00617
CalDeviceRow (
CalDeviceTable &table,
CalDeviceRow &row);
00618
00620
00622
00623
00624
00625
00626
00627
00628
ArrayTimeInterval timeInterval;
00629
00630
00631
00632
00633
00634
00635
00636
00637
00638
00639
int numCalload;
00640
00641
00642
00643
00644
00645
00646
00647
00648
00649
bool noiseCalExists;
00650
00651
00652 vector<double > noiseCal;
00653
00654
00655
00656
00657
00658
00659
00660
00661
00662
bool temperatureLoadExists;
00663
00664
00665 vector<Temperature > temperatureLoad;
00666
00667
00668
00669
00670
00671
00672
00673
00674
00675
bool calEffExists;
00676
00677
00678 vector<vector<float > > calEff;
00679
00680
00681
00682
00683
00684
00685
00686
00687
00688
00689 vector<CalibrationDeviceMod::CalibrationDevice > calLoadName;
00690
00691
00692
00693
00694
00696
00698
00699
00700
00701
00702
00703
00704
Tag antennaId;
00705
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715
int feedId;
00716
00717
00718
00719
00720
00721
00722
00723
00724
00725
00726
Tag spectralWindowId;
00727
00728
00729
00730
00731
00733
00735
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745
00746
00747
00748
00749
00750
00751
00752
00753
00754
00755
00756
00757 };
00758
00759 }
00760
00761
#endif