⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 age1968a.cpp

📁 MTK 手机软件开发 META 源代码,开发环境: C++ Builder
💻 CPP
📖 第 1 页 / 共 3 页
字号:
}


//==============================================================================
////////////////////////////         EPSK        ///////////////////////////////
//==============================================================================
ViStatus age1968A_Config_EPSK_CodingScheme(ViSession vi, int i_MCS)
{
    AnsiString as_cmd;
    ViStatus vistat;
    unsigned long num;

    as_cmd = "CALL:PDTCH:MCSCheme:EBPTest MCS" + IntToStr(i_MCS) + "P1";
    vistat = age1960_cmd(vi, as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }
    return vistat;
}

//---------------------------------------------------------------------------
ViStatus age1968A_confTXPower( ViSession vi, int iMeasureCount, int iTriSour,
                               int iDelay, int iTriQual, int iTimeout )
{

    AnsiString as_cmd;
    ViStatus vistat;

    // set measure count
    as_cmd = "SETUP:ETXPOWER:COUNT:SNUMBER " + IntToStr(iMeasureCount);
    vistat = age1960_cmd(vi, as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    // triger source
    switch (iTriSour)
    {
     	case age1960_TRIG_AUTO:
        {
     	    as_cmd = "SETUP:ETXPOWER:TRIGGER:SOURCE AUTO";
        }
     	break;

     	case age1960_TRIG_PROT:
        {
     	    as_cmd = "SETUP:ETXPOWER:TRIGGER:SOURCE PROTocol";
        }
     	break;

     	case age1960_TRIG_RF_RISE:
        {
     	    as_cmd = "SETUP:ETXPOWER:TRIGGER:SOURCE RISE";
        }
     	break;

     	case age1960_TRIG_IMMEDIATE:
        {
     	    as_cmd = "SETUP:ETXPOWER:TRIGGER:SOURCE IMMediate";
        }
     	break;

     	default: // set to auto
        {
     	    as_cmd = "SETUP:ETXPOWER:TRIGGER:SOURCE AUTO";
        }
     	break;
    }

    vistat = age1960_cmd(vi, as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    // set delay
    as_cmd = "SETUP:ETXPOWER:TRIGGER:DELAY " + IntToStr(iDelay); // sec
    vistat = age1960_cmd(vi, as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    // set trigger qualifier
    if (AGE1960_TX_POWER_TRIGGER_QUALIFIER_ON == iTriQual)
    {
        as_cmd = "SETUP:ETXPOWER:TRIGGER:QUALIFIER ON";
    }
    else
    {
        as_cmd = "SETUP:ETXPOWER:TRIGGER:QUALIFIER OFF";
    }
    vistat = age1960_cmd(vi, as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    // set timeout
    as_cmd = "SETUP:ETXPOWER:TIMEOUT:STIME " + IntToStr(iTimeout); // sec
    vistat = age1960_cmd(vi, as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }
    return vistat;
}

//----------------------------------------------------------------------------
ViStatus age1968A_FetchEpskTxPower(ViSession vi, ViReal64 *p_virTX)
{
    AnsiString asTXPowerFetch, asStr, asIntegrity, asTxPower, asBase, asExponent;;
    ViStatus vistat;
    unsigned long num;
    char buf[BUFSIZE];

    asTXPowerFetch = "FETCh:ETXP:POW:BURSt?";
    vistat=viWrite(vi, asTXPowerFetch.c_str(), strlen(asTXPowerFetch.c_str()), &num);
    if( vistat!=VI_SUCCESS ) return vistat;
    //Sleep( 100 );
    vistat=viRead(vi, buf, BUFSIZE, &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    buf[num-1]=NULL;
    asStr=(AnsiString)buf;
    if( getIntegrityFromStr( asStr, asIntegrity ) == false )  return VI_ERROR_ABORT;
    if( (asIntegrity.ToInt() != (int) INTEGRITY_NORMAL) && (asIntegrity.ToInt() != (int) INTEGRITY_OVER_RANGE) && (asIntegrity.ToInt() != (int) INTEGRITY_UNDER_RANGE ))
    {
        return VI_ERROR_ABORT;
    }
    if( getTxPowerFromStr( asStr, asTxPower ) == false )  return VI_ERROR_ABORT;
    if( getBaseFromStr( asTxPower, asBase ) == false )  return VI_ERROR_ABORT;
    if( getExponentFromStr( asTxPower, asExponent )== false )  return VI_ERROR_ABORT;
    //if( asExponent.ToInt() >= 0 )
    {
       *p_virTX = (ViReal64) atof(asBase.c_str()) *  pow10( asExponent.ToInt() );
    }
    //Application->MessageBox( temp.c_str() , "Warning", MB_OK );
    //if( temp.Pos("NAN") ) return vistat;

    //temp=temp.SubString(1, temp.Pos(",")-1);
    //*p_virTX = atof(temp.c_str());

    return vistat;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ViStatus age1968A_Config_EPSK_ModACcuracy(ViSession vi, int iMeasureCount, int iTriSour, int iDelay, int iTimeout)
{
    AnsiString as_cmd;
    ViStatus vistat;

    // set single
    as_cmd = "SETup:EMACcuracy:CONTinuous OFF";
    vistat = age1960_cmd(vi,as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    as_cmd = "SETup:EMACcuracy:IQIMbalance:STATe ON";
    vistat = age1960_cmd(vi,as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    // set measurecount
    as_cmd = "SETup:EMACcuracy:COUNT:SNUMBER " + IntToStr(iMeasureCount);
    vistat = age1960_cmd(vi,as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    // triger source
    switch (iTriSour)
    {
     	case age1960_TRIG_AUTO:
        {
     	    as_cmd = "SETup:EMACcuracy:TRIGGER:SOURCE AUTO";
        }
     	break;

     	case age1960_TRIG_PROT:
        {
     	    as_cmd = "SETup:EMACcuracy:TRIGGER:SOURCE PROTocol";
        }
     	break;

     	case age1960_TRIG_RF_RISE:
        {
     	    as_cmd = "SETup:EMACcuracy:TRIGGER:SOURCE RISE";
        }
     	break;

     	case age1960_TRIG_IMMEDIATE:
        {
     	    as_cmd = "SETup:EMACcuracy:TRIGGER:SOURCE IMMediate";
        }
     	break;

     	default: // set to auto
        {
     	    as_cmd = "SETup:EMACcuracy:TRIGGER:SOURCE AUTO";
        }
     	break;
    }
    vistat = age1960_cmd(vi, as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    // set delay
    as_cmd = "SETup:EMACcuracy:TRIGGER:DELAY " + IntToStr(iDelay); // sec
    vistat = age1960_cmd(vi,as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    // set timeout
    as_cmd = "SETup:EMACcuracy:TIMEOUT:STIME " + IntToStr(iTimeout); // sec
    vistat = age1960_cmd(vi,as_cmd.c_str());
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    return vistat;
}

//----------------------------------------------------------------------------
ViStatus age1968A_Fetch_EPSK_Average_PhaseError(ViSession vi, ViReal64 *p_virPhErr)
{
    AnsiString as_cmd, asStr, asIntegrity, as_OOS, as_SBS, asBase, asExponent;
    ViStatus vistat;
    unsigned long num;
    char buf[BUFSIZE];

    // init
    as_cmd = "INIT:EMACcuracy:ON";
    vistat = viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    // fetch
    as_cmd = "FETCh:EMACcuracy:PERRor:RMS?";
    vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if (vistat != VI_SUCCESS)
    {
        return vistat;
    }

    vistat=viRead(vi, buf, BUFSIZE, &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    buf[num-1]=NULL;
    asStr=(AnsiString)buf;

    if (!getBaseFromStr(asStr, asBase))
    {
        return VI_ERROR_ABORT;
    }

    if (!getExponentFromStr(asStr, asExponent))
    {
        return VI_ERROR_ABORT;
    }

    *p_virPhErr = (ViReal64) atof(asBase.c_str()) * pow10(asExponent.ToInt());
   // *p_virPhErr = 0 - *p_virOOS;

    // abort
    as_cmd = "ABORt:EMACcuracy";
    vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    return vistat;

}

//----------------------------------------------------------------------------
ViStatus age1968A_Fetch_EPSK_Average_OrignalOffset(ViSession vi, ViReal64 *p_virOOS )
{
    AnsiString as_cmd, asStr, asIntegrity, as_OOS, as_SBS, asBase, asExponent;
    ViStatus vistat;
    unsigned long num;
    char buf[BUFSIZE];

    as_cmd = "INIT:EMACcuracy:ON";
    vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    as_cmd = "FETCh:EMACcuracy:OOFFset?";
    vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if( vistat!=VI_SUCCESS ) return vistat;
    //Sleep( 100 );
    vistat=viRead(vi, buf, BUFSIZE, &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    buf[num-1]=NULL;
    asStr=(AnsiString)buf;
    if (asStr.AnsiPos("9.91E37"))
    {
        return VI_ERROR_INV_EXPR;
    }
        
    if (!getBaseFromStr(asStr, asBase))
    {
        return VI_ERROR_ABORT;
    }

    if (!getExponentFromStr(asStr, asExponent))
    {
        return VI_ERROR_ABORT;
    }

    *p_virOOS = (ViReal64) atof(asBase.c_str()) *  pow10( asExponent.ToInt() );
    *p_virOOS = 0 - *p_virOOS;

    as_cmd = "ABORt:EMACcuracy";
    vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    return vistat;

}

//----------------------------------------------------------------------------
ViStatus age1968A_Fetch_EPSK_Average_IQImbalance(ViSession vi, ViReal64 *p_virSBS)
{
    AnsiString as_cmd, asStr, asIntegrity, as_OOS, as_SBS, asBase, asExponent;
    ViStatus vistat;
    unsigned long num;
    char buf[BUFSIZE];

    as_cmd = "INIT:EMACcuracy:ON";
    vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    as_cmd = "FETCh:EMACcuracy:IQIMbalance?";
    vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if( vistat!=VI_SUCCESS ) return vistat;
    //Sleep( 100 );
    vistat=viRead(vi, buf, BUFSIZE, &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    buf[num-1]=NULL;
    asStr=(AnsiString)buf;
    if (asStr.AnsiPos("9.91E37"))
    {
        return VI_ERROR_INV_EXPR;
    }

    if (!getBaseFromStr(asStr, asBase))
    {
        return VI_ERROR_ABORT;
    }

    if (!getExponentFromStr(asStr, asExponent))
    {
        return VI_ERROR_ABORT;
    }

    *p_virSBS = (ViReal64) atof(asBase.c_str()) *  pow10(asExponent.ToInt());

    as_cmd = "ABORt:EMACcuracy";
    vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    return vistat;

}

//----------------------------------------------------------------------------
ViStatus age1968A_Fetch_EPSK_Average_TxIq(ViSession vi, ViReal64 *p_virSBS, ViReal64 *p_virOOS)
{
    AnsiString as_cmd, asStr, asIntegrity, as_OOS, as_SBS, asBase, asExponent;
    ViStatus vistat;
    unsigned long num;
    char buf[BUFSIZE];

    as_cmd = "INIT:EMACcuracy:ON";
    vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    as_cmd = "FETCh:EMACcuracy?";
    vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    vistat=viRead(vi, buf, BUFSIZE, &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    buf[num-1]=NULL;
    asStr=(AnsiString)buf;
    if (asStr.AnsiPos("9.91E37"))
    {
        return VI_ERROR_INV_EXPR;
    }

    if (!getBaseFromStr(asStr, asBase))
    {
        return VI_ERROR_ABORT;
    }

    if (!getExponentFromStr(asStr, asExponent))
    {
        return VI_ERROR_ABORT;
    }
    
    *p_virSBS = (ViReal64) atof(asBase.c_str()) *  pow10( asExponent.ToInt() );
    
    as_cmd = "ABORt:EMACcuracy";
    vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
    if( vistat!=VI_SUCCESS ) return vistat;

    return vistat;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -