AGI AgRadarPlugin 11 Send comments on this topic.
ProcessSignals Method (IAgStkRadarRcsPlugin)
See Also  Example
processSignalsParams





Description

Processes the incident primary and orthogonal channel signals.

Syntax

[Visual Basic .NET]
Public Sub ProcessSignals( _
   ByVal processSignalsParams As IAgStkRadarRcsProcessSignalsParams _
) 

[C#]
public void ProcessSignals(
IAgStkRadarRcsProcessSignalsParams processSignalsParams
);

[Managed C++]
public: void ProcessSignals(
IAgStkRadarRcsProcessSignalsParams ^ processSignalsParams
);

[Java]
public  processSignals(
IAgStkRadarRcsProcessSignalsParams processSignalsParams
);

[Unmanaged C++]
public: HRESULT ProcessSignals(
IAgStkRadarRcsProcessSignalsParams * processSignalsParams
);

Parameters

processSignalsParams

Remarks

The ProcessSignals method is responsible for modifying the power of the primary and orthogonal polarization channel signals using the computed radar cross section for the supplied incident and reflected body fixed vectors.  The primary and orthogonal signals are passed to the method in the processSignalsParams input parameter.  The primary signal is obtained from the PrimaryPolChannelSignal property and the orthogonal signal is obtained from the OrthoPolChannelSignal property.  The method is able to modify all settable properties of the signals passed including frequency and polarization.  If the orthogonal channel is not enabled on the transmitting radar, the orthogonal signal will be null.

Example

C# Copy Code
public void ProcessSignals(IAgStkRadarRcsProcessSignalsParams processSignalsParams) 

    IAgCRSignal primPolSignal = processSignalsParams.PrimaryPolChannelSignal; 
    primPolSignal.Power *= ConstantRCS; 
 
    IAgStkRadarSignal primRdrSignal = primPolSignal as IAgStkRadarSignal; 
    if (primRdrSignal != null
        primRdrSignal.Rcs = ConstantRCS; 
 
    IAgCRPolarization primPol = primPolSignal.Polarization; 
    if (primPol != null
    { 
        IAgCRPolarization primOrthPol = null
        if (EnablePolarization) 
        { 
            primOrthPol = processSignalsParams.ConstructOrthogonalPolarization(primPol); 
        } 
        primPolSignal.Polarization = primOrthPol; 
    } 
 
    IAgCRSignal orthPolSignal = processSignalsParams.OrthoPolChannelSignal; 
    if (orthPolSignal != null
    { 
        orthPolSignal.Power *= ConstantRCS; 
 
        IAgStkRadarSignal orthRdrSignal = orthPolSignal as IAgStkRadarSignal; 
        if (orthRdrSignal != null
            orthRdrSignal.Rcs = ConstantRCS; 
 
        IAgCRPolarization orthPol = orthPolSignal.Polarization; 
        if (orthPol != null
        { 
            IAgCRPolarization orthOrthPol = null
            if (EnablePolarization) 
            { 
                orthOrthPol = processSignalsParams.ConstructOrthogonalPolarization(orthPol); 
            } 
            orthPolSignal.Polarization = orthOrthPol; 
        } 
    } 
}
C++ Copy Code
STDMETHODIMP CExample1::ProcessSignals(IAgStkRadarRcsProcessSignalsParams* processSignalsParams) 

    EX_BEGIN_PARAMS() 
        EX_IN_INTERFACE_PARAM(processSignalsParams) 
    EX_END_PARAMS() 
 
    HRESULT hr = S_OK; 
 
    try 
    { 
        CComPtr pPrimPolSignal; 
        EXCEPTION_HR(processSignalsParams->get_PrimaryPolChannelSignal(&pPrimPolSignal)); 
 
        double primPolSigPwr; 
        EXCEPTION_HR(pPrimPolSignal->get_Power(&primPolSigPwr)); 
        EXCEPTION_HR(pPrimPolSignal->put_Power(primPolSigPwr * m_constantRCS)); 
 
        CComQIPtr pPrimPolRdrSignal = pPrimPolSignal; 
        if(pPrimPolRdrSignal) 
            EXCEPTION_HR(pPrimPolRdrSignal->put_Rcs(m_constantRCS)); 
 
        CComPtr pPrimPol; 
        EXCEPTION_HR(pPrimPolSignal->get_Polarization(&pPrimPol)); 
 
        if(pPrimPol) 
        { 
            CComPtr pPrimOrthPol = 0; 
            if(m_enablePolarization) 
            { 
                EXCEPTION_HR(processSignalsParams->ConstructOrthogonalPolarization(pPrimPol, &pPrimOrthPol)); 
            } 
            EXCEPTION_HR(pPrimPolSignal->put_Polarization(pPrimOrthPol)); 
        } 
 
        CComPtr pOrthoPolSignal; 
        EXCEPTION_HR(processSignalsParams->get_OrthoPolChannelSignal(&pOrthoPolSignal)); 
 
        if(pOrthoPolSignal) 
        { 
            double orthoPolSigPwr; 
            EXCEPTION_HR(pOrthoPolSignal->get_Power(&orthoPolSigPwr)); 
            EXCEPTION_HR(pOrthoPolSignal->put_Power(orthoPolSigPwr * m_constantRCS)); 
 
            CComQIPtr pOrthoPolRdrSignal = pOrthoPolSignal; 
            if(pOrthoPolRdrSignal) 
                EXCEPTION_HR(pOrthoPolRdrSignal->put_Rcs(m_constantRCS)); 
 
            CComPtr pOrthoPol; 
            EXCEPTION_HR(pOrthoPolSignal->get_Polarization(&pOrthoPol)); 
 
            if(pOrthoPol) 
            { 
                CComPtr pOrthoOrthPol = 0; 
                if(m_enablePolarization) 
                { 
                    EXCEPTION_HR(processSignalsParams->ConstructOrthogonalPolarization(pOrthoPol, &pOrthoOrthPol)); 
                } 
                EXCEPTION_HR(pOrthoPolSignal->put_Polarization(pOrthoOrthPol)); 
            } 
        } 
    } 
    catch( HRESULT r ) 
    { 
        hr = r; 
    } 
    catch(...) 
    { 
        hr = E_FAIL; 
    } 
 
    return hr; 
}

See Also

© 2016 Analytical Graphics, Inc. All Rights Reserved.

STK Programming Interface 11.0.1