//File: DfSWRadioSmartAntenna.idl #ifndef __DFSWRADIOSMARTANTENNA_DEFINED #define __DFSWRADIOSMARTANTENNA_DEFINED #include "cf.idl" #include "DfSWRadioPhysicalLayer.idl" #pragma prefix "omg.org" module DfSWRadio { module PhysicalLayer { module SmartAntenna { struct Complex{ CF::Float real; CF::Float imag; }; typedef sequence ComplexSequence; interface SAAlgorithm; typedef sequence AlgorithmRefType; interface AlgorithmControl{ attribute AlgorithmRefType Algorithms; SAAlgorithm registerAlgorithm(); SAAlgorithm unregisterAlgorithm(); exception InvalidObjectReference{ }; }; /*************************************************************************************/ interface SASynchronization : CF::Resource{ }; interface Synchronization{ readonly attribute CF::TimeType Timing; }; interface Calibration{ readonly attribute ComplexSequence CalibrationTable; readonly attribute CF::Float ReferenceLevel; }; interface SynchronizationComponent : SASynchronization,Synchronization{ }; interface CalibrationComponent : SASynchronization,Calibration{ }; /*************************************************************************************/ interface SynchronizationControl{ attribute SynchronizationComponent Synchronization; attribute CalibrationComponent Calibration; SynchronizationComponent registerSynch(); SynchronizationComponent unregisterSynch(); CalibrationComponent registerCal(); CalibrationComponent unregisterCal(); exception InvalidSynchObjectReference{ }; exception InvalidCalObjectReference{ }; }; typedef sequence ResourceRefType; interface RFControl{ attribute ResourceRefType RFDevices; }; enum SAOperationMode { TRANSMIT, RECIEVE, COMBINATION }; interface SAControl : CF::Resource,AlgorithmControl,SynchronizationControl,RFControl{ attribute SAOperationMode OperationMode ; }; /*************************************************************************************/ interface SAAlgorithm : CF::Resource{ readonly attribute boolean Convergence; }; interface Beamforming{ readonly attribute ComplexSequence BFWeights; attribute CF::FloatSequence NULLBFDirection; attribute CF::FloatSequence FixedBFGainDirection; attribute CF::FloatSequence SideLobeLevel; readonly attribute CF::FloatSequence OrderedEigenvalues; readonly attribute ComplexSequence OrderedEigenvectors; attribute CF::Short MaxEigenChannels; }; interface BeamformingComponent : SAAlgorithm,Beamforming{ }; struct STCMapping{ CF::UShort NumAnt; ComplexSequence codePattern; }; typedef sequence STCMappings; interface SpaceTimeCoding{ attribute STCMappings STCPattern; }; interface STCComponent : SAAlgorithm,SpaceTimeCoding{ }; interface ChannelEstimation{ readonly attribute ComplexSequence ChannelImpulse; attribute CF::TimeType ChannelCoherenceTime; readonly attribute CF::FloatSequence OrderedEigenvalues; readonly attribute ComplexSequence OrderedEigenvectors; attribute CF::Short MaxEigenChannels; }; interface ChannelEstimationComponent : SAAlgorithm, ChannelEstimation{ }; interface DOAEstimation{ readonly attribute CF::FloatSequence DOA; }; interface DOAEstimationComponent : SAAlgorithm,DOAEstimation{ }; }; }; }; #endif