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

📄 cmu200.cpp

📁 MTK 手机软件开发 META 源代码,开发环境: C++ Builder
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        strcpy(cmd, "SOUR:RFG:LEV:UTIM -60"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
       // strcpy(cmd, "TRIG:SOUR RFP"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
       // strcpy(cmd, "TRIG:THR HIGH"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
        strcpy(cmd, "TRIG:SOUR IFP"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
        strcpy(cmd, "TRIG:THR LOW"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
        strcpy(cmd, "RFAN:CHAN 70CH"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
        strcpy(cmd, "RFAN:TSEQ GSM5"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);

        strcpy(cmd, "LEV:MODE AUT"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);

        strcpy(cmd, "CONF:POW:CONT SCAL,10"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
        strcpy(cmd, "CONF:POW:CONT:REP SING,NONE,NONE"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
       // strcpy(cmd, "TRAC:REM:MODE:DISP OFF"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
   // strcpy(cmd, "INIT:RFG"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
    }


 //dcs nonsignaling setup-------------------------------------------------------
    if ( IsCmuBandSupported( asFreqBand, CMU_DCS1800_BAND) )
    {
        strcpy(cmd, "INP:STAT RF2"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "OUTP:STAT RF2"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        sprintf(cmd, "SENS:CORR:LOSS:INP2 %f", cmu->loss_dcs_i); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        sprintf(cmd, "SENS:CORR:LOSS:OUTP2 %f", cmu->loss_dcs_o); viWrite(cmu->dcs, cmd, strlen(cmd), &num);

        strcpy(cmd, "CONF:RFG:MOD:BIT:SEL PRBS"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "CONF:RFG:MOD:TSEQ:SEL GSM5"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "CONF:RFG:MOD:TRAN CONT"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);

        strcpy(cmd, "SOUR:RFG:FREQ:CHAN 512CH"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "SOUR:RFG:LEV:UTIM -60"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
       // strcpy(cmd, "TRIG:SOUR RFP"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
       // strcpy(cmd, "TRIG:THR HIGH"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "TRIG:SOUR IFP"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "TRIG:THR LOW"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "RFAN:CHAN 512CH"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "RFAN:TSEQ GSM5"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);

        strcpy(cmd, "LEV:MODE AUT"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);

        strcpy(cmd, "CONF:POW:CONT SCAL,10"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "CONF:POW:CONT:REP SING,NONE,NONE"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
       // strcpy(cmd, "TRAC:REM:MODE:DISP OFF"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
    }


    //pcs nonsignaling setup-------------------------------------------------------
    if ( IsCmuBandSupported( asFreqBand, CMU_PCS1900_BAND) )
    {
        strcpy(cmd, "INP:STAT RF2"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "OUTP:STAT RF2"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        sprintf(cmd, "SENS:CORR:LOSS:INP2 %f", cmu->loss_pcs_i); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        sprintf(cmd, "SENS:CORR:LOSS:OUTP2 %f", cmu->loss_pcs_o); viWrite(cmu->pcs, cmd, strlen(cmd), &num);

        strcpy(cmd, "CONF:RFG:MOD:BIT:SEL PRBS"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "CONF:RFG:MOD:TSEQ:SEL GSM5"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "CONF:RFG:MOD:TRAN CONT"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);

        strcpy(cmd, "SOUR:RFG:FREQ:CHAN 512CH"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "SOUR:RFG:LEV:UTIM -60"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
      //  strcpy(cmd, "TRIG:SOUR RFP"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
      //  strcpy(cmd, "TRIG:THR HIGH"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "TRIG:SOUR IFP"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "TRIG:THR LOW"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "RFAN:CHAN 512CH"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "RFAN:TSEQ GSM5"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);

        strcpy(cmd, "LEV:MODE AUT"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);

        strcpy(cmd, "CONF:POW:CONT SCAL,10"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        strcpy(cmd, "CONF:POW:CONT:REP SING,NONE,NONE"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
     //   strcpy(cmd, "TRAC:REM:MODE:DISP OFF"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
    }

 // gsm850
 //gsm850 nonsignaling setup--------------------------------------------------------
    if ( IsCmuBandSupported( asFreqBand, CMU_GSM850_BAND) )
    {
        strcpy(cmd, "INP:STAT RF2"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        strcpy(cmd, "OUTP:STAT RF2"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        sprintf(cmd, "SENS:CORR:LOSS:INP2 %f", cmu->loss_gsm850_i); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        sprintf(cmd, "SENS:CORR:LOSS:OUTP2 %f", cmu->loss_gsm850_o); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);

 //jh lai, MTK AFC debug
 //strcpy(cmd, "CONF:RFG:MOD:TRAN BURS"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
 //strcpy(cmd, "CONF:RFG:MOD:BIT:SEL ALL0"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
 //strcpy(cmd, "CONF:RFG:MOD:BIT:SEL DUMM"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);

        strcpy(cmd, "CONF:RFG:MOD:BIT:SEL PRBS"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        strcpy(cmd, "CONF:RFG:MOD:TSEQ:SEL GSM5"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        strcpy(cmd, "CONF:RFG:MOD:TRAN CONT"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);

        strcpy(cmd, "SOUR:RFG:FREQ:CHAN 190CH"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        strcpy(cmd, "SOUR:RFG:LEV:UTIM -60"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
      //  strcpy(cmd, "TRIG:SOUR RFP"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
      //  strcpy(cmd, "TRIG:THR HIGH"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        strcpy(cmd, "TRIG:SOUR IFP"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        strcpy(cmd, "TRIG:THR LOW"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        strcpy(cmd, "RFAN:CHAN 190CH"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        strcpy(cmd, "RFAN:TSEQ GSM5"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);

        strcpy(cmd, "LEV:MODE AUT"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);

        strcpy(cmd, "CONF:POW:CONT SCAL,10"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        strcpy(cmd, "CONF:POW:CONT:REP SING,NONE,NONE"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
     //   strcpy(cmd, "TRAC:REM:MODE:DISP OFF"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
   // strcpy(cmd, "INIT:RFG"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
    }
    return true;
}

//---------------------------------------------------------------------------
bool cmu_reset( CMU_VAR *cmu, AnsiString asFreqBand )
{
// reset
    if ( IsCmuBandSupported( asFreqBand, CMU_PCS1900_BAND) )
    {
        strcpy(cmd, "*rst"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        Sleep(2000);


    }

    if ( IsCmuBandSupported( asFreqBand, CMU_DCS1800_BAND) )
    {
        strcpy(cmd, "*rst"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        Sleep(2000);
    }

    if ( IsCmuBandSupported( asFreqBand, CMU_PGSM_BAND) || IsCmuBandSupported( asFreqBand, CMU_EGSM_BAND) )
    {
        strcpy(cmd, "*rst"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
        Sleep(2000);
    }

    if ( IsCmuBandSupported( asFreqBand, CMU_GSM850_BAND) )
    {
        strcpy(cmd, "*rst"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        Sleep(2000);
    }
    return true;
}

//------------------------------------------------------------------------------
bool cmu_cellband(int band, CMU_VAR *cmu)
{
   // if( cmu->BAND.AnsiCompareIC("GSM")==0 && band==CMU_PGSM_BAND )         return true;
   // else if( cmu->BAND.AnsiCompareIC("GSM")==0 && band==CMU_EGSM_BAND )    return true;
   // else if( cmu->BAND.AnsiCompareIC("DCS")==0 && band==CMU_DCS1800_BAND ) return true;
   // else if( cmu->BAND.AnsiCompareIC("PCS")==0 && band==CMU_PCS1900_BAND ) return true;
   // else if( cmu->BAND.AnsiCompareIC("GSM850")==0 && band==CMU_GSM850_BAND ) return true;

    // abort current active RFG
    if( cmu->BAND.AnsiCompareIC("GSM") == 0 )           { strcpy(cmd, "ABOR:RFG"); viWrite(cmu->gsm, cmd, strlen(cmd), &num); }
    else if( cmu->BAND.AnsiCompareIC("DCS") == 0 )      { strcpy(cmd, "ABOR:RFG"); viWrite(cmu->dcs, cmd, strlen(cmd), &num); }
    else if( cmu->BAND.AnsiCompareIC("PCS") == 0 )      { strcpy(cmd, "ABOR:RFG"); viWrite(cmu->pcs, cmd, strlen(cmd), &num); }
    else if( cmu->BAND.AnsiCompareIC("GSM850") == 0 )   { strcpy(cmd, "ABOR:RFG"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num); }


    if( band==0 )                                               return false;
    else if( band==CMU_PGSM_BAND || band==CMU_EGSM_BAND )       cmu->BAND="GSM";
    else if( band==CMU_DCS1800_BAND )                           cmu->BAND="DCS";
    else if( band==CMU_PCS1900_BAND )                           cmu->BAND="PCS";
    else if( band==CMU_GSM850_BAND )                            cmu->BAND="GSM850";
    else
    {                                                        return false;}

    if( band==CMU_PGSM_BAND || band==CMU_EGSM_BAND )
    {
        strcpy(cmd, "init:rfg;*opc?"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
        viRead(cmu->gsm, buf, BUF, &num);
        Sleep(500);
    }
    else if( band==CMU_DCS1800_BAND )
    {
        strcpy(cmd, "init:rfg;*opc?"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
        viRead(cmu->dcs, buf, BUF, &num);
        Sleep(500);
    }
    else if( band==CMU_PCS1900_BAND )
    {
        strcpy(cmd, "init:rfg;*opc?"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
        viRead(cmu->pcs, buf, BUF, &num);
        Sleep(500);
    }
    else if( band==CMU_GSM850_BAND )
    {
        strcpy(cmd, "init:rfg;*opc?"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
        viRead(cmu->gsm850, buf, BUF, &num);
        Sleep(500);
    }
    else
    {
        return false;
    }

// Sleep(500);
    return true;
}

//cmu generator functions-------------------------------------------------------
bool cmu_bcharfcn(short chan, CMU_VAR *cmu)
{
    sprintf(cmd, "sour:rfg:freq %dch;*opc?", chan);

    if(      (cmu->BAND).AnsiCompareIC("GSM")==0 )    { status=viWrite(cmu->gsm,    cmd, strlen(cmd), &num); viRead(cmu->gsm,    buf, BUF, &num); }
    else if( (cmu->BAND).AnsiCompareIC("DCS")==0 )    { status=viWrite(cmu->dcs,    cmd, strlen(cmd), &num); viRead(cmu->dcs,    buf, BUF, &num); }
    else if( (cmu->BAND).AnsiCompareIC("PCS")==0 )    { status=viWrite(cmu->pcs,    cmd, strlen(cmd), &num); viRead(cmu->pcs,    buf, BUF, &num); }
    else if( (cmu->BAND).AnsiCompareIC("GSM850")==0 ) { status=viWrite(cmu->gsm850, cmd, strlen(cmd), &num); viRead(cmu->gsm850, buf, BUF, &num); }

    if( status<VI_SUCCESS ) return false;
    return true;
}

//---------------------------------------------------------------------------
bool cmu_cellpower(double power, CMU_VAR *cmu)
{
    if( power>=0 ) power=-60;
    sprintf(cmd, "sour:rfg:lev:utim %f", power);

    if(      (cmu->BAND).AnsiCompareIC("GSM")==0 )    status=viWrite(cmu->gsm,    cmd, strlen(cmd), &num);
    else if( (cmu->BAND).AnsiCompareIC("DCS")==0 )    status=viWrite(cmu->dcs,    cmd, strlen(cmd), &num);
    else if( (cmu->BAND).AnsiCompareIC("PCS")==0 )    status=viWrite(cmu->pcs,    cmd, strlen(cmd), &num);
    else if( (cmu->BAND).AnsiCompareIC("GSM850")==0 ) status=viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
    else                                { return false; }
    Sleep(100);

    if( status<VI_SUCCESS ) return false;
    return true;
}

//---------------------------------------------------------------------------
bool cmu_pow_cont(bool set, CMU_VAR *cmu)
{
    if( set )
        strcpy(cmd, "CONF:RFG:MOD:TRAN CONT");
    else
        strcpy(cmd, "CONF:RFG:MOD:TRAN BURS");

    if(      (cmu->BAND).AnsiCompareIC("GSM")==0 )    status=viWrite(cmu->gsm,    cmd, strlen(cmd), &num);
    else if( (cmu->BAND).AnsiCompareIC("DCS")==0 )    status=viWrite(cmu->dcs,    cmd, strlen(cmd), &num);
    else if( (cmu->BAND).AnsiCompareIC("PCS")==0 )    status=viWrite(cmu->pcs,    cmd, strlen(cmd), &num);
    else if( (cmu->BAND).AnsiCompareIC("GSM850")==0 ) status=viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
    else                                { return false; }
    if( status<VI_SUCCESS ) return false;
    return true;
}
//---------------------------------------------------------------------------
/////////////////////////////   Generator   /////////////////////////////////
//---------------------------------------------------------------------------
bool cmu_gen_freq_offset(CMU_VAR *cmu, double d_freq)
{
    AnsiString as_cmd = "SOURce:RFGenerator:FM:DEViation " + Double_To_AnsiString(d_freq);
    if ((cmu->BAND).AnsiCompareIC("GSM") == 0)
    {
        status = viWrite(cmu->gsm, as_cmd.c_str(), as_cmd.Length(), &num);
    }
    else if ((cmu->BAND).AnsiCompareIC("DCS") == 0)
    {
        status = viWrite(cmu->dcs, as_cmd.c_str(), as_cmd.Length(), &num);
    }
    else if ((cmu->BAND).AnsiCompareIC("PCS") == 0)
    {
        status = viWrite(cmu->pcs, as_cmd.c_str(), as_cmd.Length(), &num);
    }
    else if ((cmu->BAND).AnsiCompareIC("GSM850")==0)
    {
        status = viWrite(cmu->gsm850, as_cmd.c_str(), as_cmd.Length(), &num);
    }
    else
    {
        assert(false);
        return false;
    }

    if (status < VI_SUCCESS)
    {
        return false;
    }
    return true;
}

//---------------------------------------------------------------------------
bool cmu_gen_bit_mod(E_CMU200_GEN_BIT_MODU_T mode, CMU_VAR *cmu)
{

    switch (mode)
    {
        case CMU200_GEN_BIT_MODU_OFF:
        {
            strcpy(cmd, "CONF:RFG:MOD:BIT:SEL OFF");
        }
        break;

        case CMU200_GEN_BIT_MODU_ALL_ZERO:
        {
            strcpy(cmd, "CONF:RFG:MOD:BIT:SEL ALL0");
        }
        break;

        case CMU200_GEN_BIT_MODU_PRBS:
        {
            strcpy(cmd, "CONF:RFG:MOD:BIT:SEL PRBS");
        }
        break;

        case CMU200_GEN_BIT_MODU_DUMMY_BURST:
        {
            strcpy(cmd, "CONF:RFG:MOD:BIT:SEL DUMM");
        }
        break;

        case CMU200_GEN_BIT_MODU_8_PSK_ALL_ZERO:
        {
            strcpy(cmd, "CONF:RFG:MOD:BIT:SEL EALL0");
        }
        break;

        case CMU200_GEN_BIT_MODU_8_PSK_PRBS:
        {
            strcpy(cmd, "CONF:RFG:MOD:BIT:SEL EPRBS");
        }
        break;

        default:
        {
            assert(false);
        }    
    }

    if ((cmu->BAND).AnsiCompareIC("GSM") == 0)
    {
        status = viWrite(cmu->gsm, cmd, strlen(cmd), &num);
    }
    else if ((cmu->BAND).AnsiCompareIC("DCS") == 0)
    {
        status = viWrite(cmu->dcs, cmd, strlen(cmd), &num);
    }
    else if ((cmu->BAND).AnsiCompareIC("PCS") == 0)
    {

⌨️ 快捷键说明

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