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 SpectralWindowRow_CLASS
00035
#define SpectralWindowRow_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::SpectralWindowRowIDL;
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
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
#include "CNetSideband.h"
00100
using namespace NetSidebandMod;
00101
00102
00103
00104
#include "CSidebandProcessingMode.h"
00105
using namespace SidebandProcessingModeMod;
00106
00107
00108
00109
#include "CBasebandName.h"
00110
using namespace BasebandNameMod;
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
#include "CSpectralResolutionType.h"
00123
using namespace SpectralResolutionTypeMod;
00124
00125
00126
00127
00128
00129
#include "CWindowFunction.h"
00130
using namespace WindowFunctionMod;
00131
00132
00133
00134
00135
00136
#include "CCorrelationBit.h"
00137
using namespace CorrelationBitMod;
00138
00139
00140
00141
00142
00143
00144
using asdm::Angle;
00145
using asdm::AngularRate;
00146
using asdm::ArrayTime;
00147
using asdm::Complex;
00148
using asdm::Entity;
00149
using asdm::EntityId;
00150
using asdm::EntityRef;
00151
using asdm::Flux;
00152
using asdm::Frequency;
00153
using asdm::Humidity;
00154
using asdm::Interval;
00155
using asdm::Length;
00156
using asdm::Pressure;
00157
using asdm::Speed;
00158
using asdm::Tag;
00159
using asdm::Temperature;
00160
using asdm::ConversionException;
00161
using asdm::NoSuchRow;
00162
using asdm::IllegalAccessException;
00163
00164
00165
00166
00167
00168
namespace asdm {
00169
00170
00171
00172
00173
00174
class DopplerRow;
00175
00176
00177
class SpectralWindowRow;
00178
00179
00180
class SpectralWindowRow;
00181
00182
00189 class SpectralWindowRow {
00190
friend class asdm::SpectralWindowTable;
00191
00192
public:
00193
00194
virtual ~
SpectralWindowRow();
00195
00199
SpectralWindowTable &
getTable()
const;
00200
00201
#ifndef WITHOUT_ACS
00202
00206 SpectralWindowRowIDL *
toIDL()
const;
00207
#endif
00208
00209
#ifndef WITHOUT_ACS
00210
00214
void setFromIDL (SpectralWindowRowIDL x)
throw(
ConversionException);
00215
#endif
00216
00221 string
toXML()
const;
00222
00228
void setFromXML (string rowDoc)
throw(
ConversionException);
00229
00231
00233
00234
00235
00236
00237
00238
00239
00240
00245
Tag getSpectralWindowId()
const;
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00265
int getNumChan()
const;
00266
00267
00268
00269
00277
void setNumChan (
int numChan);
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00293
bool isNameExists()
const;
00294
00295
00296
00302 string
getName()
const throw(
IllegalAccessException);
00303
00304
00305
00306
00313
void setName (string name);
00314
00315
00316
00317
00321
void clearName ();
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00336
Frequency getRefFreq()
const;
00337
00338
00339
00340
00348
void setRefFreq (
Frequency refFreq);
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00366 vector<Frequency >
getChanFreq()
const;
00367
00368
00369
00370
00378
void setChanFreq (vector<Frequency > chanFreq);
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00396 vector<Frequency >
getChanWidth()
const;
00397
00398
00399
00400
00408
void setChanWidth (vector<Frequency > chanWidth);
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00424
bool isMeasFreqRefExists()
const;
00425
00426
00427
00433
int getMeasFreqRef()
const throw(
IllegalAccessException);
00434
00435
00436
00437
00444
void setMeasFreqRef (
int measFreqRef);
00445
00446
00447
00448
00452
void clearMeasFreqRef ();
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462
00467 vector<Frequency >
getEffectiveBw()
const;
00468
00469
00470
00471
00479
void setEffectiveBw (vector<Frequency > effectiveBw);
00480
00481
00482
00483
00484
00485
00486
00487
00488
00489
00490
00491
00492
00497 vector<Frequency >
getResolution()
const;
00498
00499
00500
00501
00509
void setResolution (vector<Frequency > resolution);
00510
00511
00512
00513
00514
00515
00516
00517
00518
00519
00520
00521
00522
00527
Frequency getTotBandwidth()
const;
00528
00529
00530
00531
00539
void setTotBandwidth (
Frequency totBandwidth);
00540
00541
00542
00543
00544
00545
00546
00547
00548
00549
00550
00551
00552
00557 NetSidebandMod::NetSideband
getNetSideband()
const;
00558
00559
00560
00561
00569
void setNetSideband (NetSidebandMod::NetSideband netSideband);
00570
00571
00572
00573
00574
00575
00576
00577
00578
00579
00580
00581
00582
00587 SidebandProcessingModeMod::SidebandProcessingMode
getSidebandProcessingMode()
const;
00588
00589
00590
00591
00599
void setSidebandProcessingMode (SidebandProcessingModeMod::SidebandProcessingMode sidebandProcessingMode);
00600
00601
00602
00603
00604
00605
00606
00607
00608
00609
00610
00615
bool isBasebandNameExists()
const;
00616
00617
00618
00624 BasebandNameMod::BasebandName
getBasebandName()
const throw(
IllegalAccessException);
00625
00626
00627
00628
00635
void setBasebandName (BasebandNameMod::BasebandName basebandName);
00636
00637
00638
00639
00643
void clearBasebandName ();
00644
00645
00646
00647
00648
00649
00650
00651
00656
bool isBbcSidebandExists()
const;
00657
00658
00659
00665
int getBbcSideband()
const throw(
IllegalAccessException);
00666
00667
00668
00669
00676
void setBbcSideband (
int bbcSideband);
00677
00678
00679
00680
00684
void clearBbcSideband ();
00685
00686
00687
00688
00689
00690
00691
00692
00697
bool isIfConvChainExists()
const;
00698
00699
00700
00706
int getIfConvChain()
const throw(
IllegalAccessException);
00707
00708
00709
00710
00717
void setIfConvChain (
int ifConvChain);
00718
00719
00720
00721
00725
void clearIfConvChain ();
00726
00727
00728
00729
00730
00731
00732
00733
00738
bool isFreqGroupExists()
const;
00739
00740
00741
00747
int getFreqGroup()
const throw(
IllegalAccessException);
00748
00749
00750
00751
00758
void setFreqGroup (
int freqGroup);
00759
00760
00761
00762
00766
void clearFreqGroup ();
00767
00768
00769
00770
00771
00772
00773
00774
00779
bool isFreqGroupNameExists()
const;
00780
00781
00782
00788 string
getFreqGroupName()
const throw(
IllegalAccessException);
00789
00790
00791
00792
00799
void setFreqGroupName (string freqGroupName);
00800
00801
00802
00803
00807
void clearFreqGroupName ();
00808
00809
00810
00811
00812
00813
00814
00815
00820
bool isAssocNatureExists()
const;
00821
00822
00823
00829 vector<SpectralResolutionTypeMod::SpectralResolutionType >
getAssocNature()
const throw(
IllegalAccessException);
00830
00831
00832
00833
00840
void setAssocNature (vector<SpectralResolutionTypeMod::SpectralResolutionType > assocNature);
00841
00842
00843
00844
00848
void clearAssocNature ();
00849
00850
00851
00852
00853
00854
00855
00856
00857
00858
00863
bool getQuantization()
const;
00864
00865
00866
00867
00875
void setQuantization (
bool quantization);
00876
00877
00878
00879
00880
00881
00882
00883
00884
00885
00886
00887
00888
00893 WindowFunctionMod::WindowFunction
getWindowFunction()
const;
00894
00895
00896
00897
00905
void setWindowFunction (WindowFunctionMod::WindowFunction windowFunction);
00906
00907
00908
00909
00910
00911
00912
00913
00914
00915
00916
00917
00918
00923
bool getOversampling()
const;
00924
00925
00926
00927
00935
void setOversampling (
bool oversampling);
00936
00937
00938
00939
00940
00941
00942
00943
00944
00945
00946
00947
00948
00953 CorrelationBitMod::CorrelationBit
getCorrelationBit()
const;
00954
00955
00956
00957
00965
void setCorrelationBit (CorrelationBitMod::CorrelationBit correlationBit);
00966
00967
00968
00969
00970
00971
00972
00973
00974
00975
00976
00977
00978
00983
bool getFlagRow()
const;
00984
00985
00986
00987
00995
void setFlagRow (
bool flagRow);
00996
00997
00998
00999
01000
01001
01003
01005
01006
01007
01008
01009
01010
01015
bool isAssocSpectralWindowIdExists()
const;
01016
01017
01018
01024 vector<Tag>
getAssocSpectralWindowId()
const throw(
IllegalAccessException);
01025
01026
01027
01028
01035
void setAssocSpectralWindowId (vector<Tag> assocSpectralWindowId);
01036
01037
01038
01039
01043
void clearAssocSpectralWindowId ();
01044
01045
01046
01047
01048
01049
01050
01051
01056
bool isDopplerIdExists()
const;
01057
01058
01059
01065
int getDopplerId()
const throw(
IllegalAccessException);
01066
01067
01068
01069
01076
void setDopplerId (
int dopplerId);
01077
01078
01079
01080
01084
void clearDopplerId ();
01085
01086
01087
01088
01089
01090
01091
01092
01097
bool isImageSpectralWindowIdExists()
const;
01098
01099
01100
01106
Tag getImageSpectralWindowId()
const throw(
IllegalAccessException);
01107
01108
01109
01110
01117
void setImageSpectralWindowId (
Tag imageSpectralWindowId);
01118
01119
01120
01121
01125
void clearImageSpectralWindowId ();
01126
01127
01128
01130
01132
01133
01134
01135
01136
01137
01138
01144 vector <DopplerRow *>
getDopplers();
01145
01146
01147
01148
01149
01150
01151
01158
void setAssocSpectralWindowId (
int i,
Tag assocSpectralWindowId) ;
01159
01160
01161
01162
01163
01168
void addAssocSpectralWindowId(
Tag id);
01169
01174
void addAssocSpectralWindowId(
const vector<Tag> &
id);
01175
01176
01182
const Tag getAssocSpectralWindowId(
int i);
01183
01191
SpectralWindowRow*
getSpectralWindow(
int i);
01192
01197 vector<SpectralWindowRow *>
getSpectralWindows();
01198
01199
01200
01201
01202
01203
01204
01205
01214
SpectralWindowRow*
getSpectralWindowUsingImageSpectralWindowId();
01215
01216
01217
01218
01219
01220
01221
01226
bool compareNoAutoInc(
int numChan,
Frequency refFreq, vector<Frequency > chanFreq, vector<Frequency > chanWidth, vector<Frequency > effectiveBw, vector<Frequency > resolution,
Frequency totBandwidth, NetSidebandMod::NetSideband netSideband, SidebandProcessingModeMod::SidebandProcessingMode sidebandProcessingMode,
bool quantization, WindowFunctionMod::WindowFunction windowFunction,
bool oversampling, CorrelationBitMod::CorrelationBit correlationBit,
bool flagRow);
01227
01228
01229
01230
01231
bool compareRequiredValue(
int numChan,
Frequency refFreq, vector<Frequency > chanFreq, vector<Frequency > chanWidth, vector<Frequency > effectiveBw, vector<Frequency > resolution,
Frequency totBandwidth, NetSidebandMod::NetSideband netSideband, SidebandProcessingModeMod::SidebandProcessingMode sidebandProcessingMode,
bool quantization, WindowFunctionMod::WindowFunction windowFunction,
bool oversampling, CorrelationBitMod::CorrelationBit correlationBit,
bool flagRow);
01232
01233
01242
bool equalByRequiredValue(
SpectralWindowRow* x) ;
01243
01244
private:
01248
SpectralWindowTable &table;
01252
bool hasBeenAdded;
01253
01254
01255
void isAdded();
01256
01257
01266
SpectralWindowRow (
SpectralWindowTable &table);
01267
01285
SpectralWindowRow (
SpectralWindowTable &table,
SpectralWindowRow &row);
01286
01288
01290
01291
01292
01293
01294
01295
01296
Tag spectralWindowId;
01297
01298
01299
01300
01310
void setSpectralWindowId (
Tag spectralWindowId);
01311
01312
01313
01314
01315
01316
01317
01318
01319
int numChan;
01320
01321
01322
01323
01324
01325
01326
01327
01328
01329
bool nameExists;
01330
01331
01332 string name;
01333
01334
01335
01336
01337
01338
01339
01340
01341
01342
01343
Frequency refFreq;
01344
01345
01346
01347
01348
01349
01350
01351
01352
01353
01354 vector<Frequency > chanFreq;
01355
01356
01357
01358
01359
01360
01361
01362
01363
01364
01365 vector<Frequency > chanWidth;
01366
01367
01368
01369
01370
01371
01372
01373
01374
01375
bool measFreqRefExists;
01376
01377
01378
int measFreqRef;
01379
01380
01381
01382
01383
01384
01385
01386
01387
01388
01389 vector<Frequency > effectiveBw;
01390
01391
01392
01393
01394
01395
01396
01397
01398
01399
01400 vector<Frequency > resolution;
01401
01402
01403
01404
01405
01406
01407
01408
01409
01410
01411
Frequency totBandwidth;
01412
01413
01414
01415
01416
01417
01418
01419
01420
01421
01422 NetSidebandMod::NetSideband netSideband;
01423
01424
01425
01426
01427
01428
01429
01430
01431
01432
01433 SidebandProcessingModeMod::SidebandProcessingMode sidebandProcessingMode;
01434
01435
01436
01437
01438
01439
01440
01441
01442
01443
bool basebandNameExists;
01444
01445
01446 BasebandNameMod::BasebandName basebandName;
01447
01448
01449
01450
01451
01452
01453
01454
01455
01456
bool bbcSidebandExists;
01457
01458
01459
int bbcSideband;
01460
01461
01462
01463
01464
01465
01466
01467
01468
01469
bool ifConvChainExists;
01470
01471
01472
int ifConvChain;
01473
01474
01475
01476
01477
01478
01479
01480
01481
01482
bool freqGroupExists;
01483
01484
01485
int freqGroup;
01486
01487
01488
01489
01490
01491
01492
01493
01494
01495
bool freqGroupNameExists;
01496
01497
01498 string freqGroupName;
01499
01500
01501
01502
01503
01504
01505
01506
01507
01508
bool assocNatureExists;
01509
01510
01511 vector<SpectralResolutionTypeMod::SpectralResolutionType > assocNature;
01512
01513
01514
01515
01516
01517
01518
01519
01520
01521
01522
bool quantization;
01523
01524
01525
01526
01527
01528
01529
01530
01531
01532
01533 WindowFunctionMod::WindowFunction windowFunction;
01534
01535
01536
01537
01538
01539
01540
01541
01542
01543
01544
bool oversampling;
01545
01546
01547
01548
01549
01550
01551
01552
01553
01554
01555 CorrelationBitMod::CorrelationBit correlationBit;
01556
01557
01558
01559
01560
01561
01562
01563
01564
01565
01566
bool flagRow;
01567
01568
01569
01570
01571
01573
01575
01576
01577
01578
01579
01580
bool assocSpectralWindowIdExists;
01581
01582
01583 vector<Tag> assocSpectralWindowId;
01584
01585
01586
01587
01588
01589
01590
01591
01592
01593
bool dopplerIdExists;
01594
01595
01596
int dopplerId;
01597
01598
01599
01600
01601
01602
01603
01604
01605
01606
bool imageSpectralWindowIdExists;
01607
01608
01609
Tag imageSpectralWindowId;
01610
01611
01612
01613
01614
01616
01618
01619
01620
01621
01622
01623
01624
01625
01626
01627
01628
01629
01630
01631
01632
01633
01634
01635
01636
01637
01638
01639 };
01640
01641 }
01642
01643
#endif