亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? measure.cpp

?? 這是一個手機校準程序
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
// measure.cpp
// (c) Mobilink Telecom Inc, 1999, 2000
//
// May 21, 2000
// Nick Steffen
//
// Contains the measurement object
//
// June 27, 2000
// Added SetCableLoss() & GetCableLoss()
//
// September 20, 2000
// Added different version of GetTxPower()
// It accepts a third parameter which determines whether,
// when the expected power is not within 3 dB of the actual power,
// the search direction is from 33 dBm to 0 dBm or the other direction.
//
// February 9, 2001
// Modified GetUpperRampStatus() to change T0 as a function of band
//
// February 15, 2001
// Modified GetUpperRampStatus() to change -0.5 dB to -0.55, and -7.0 dB to -5.7
//
// March 2, 2001
// Modified to use HP8960
//
// March 5, 2001
// Modified GetTxPower() for 8960 to correctly measure power when expected and actual are different.
//
// March 11, 2001
// Added logging to 8960 clauses.
//

#include "caltypes.h"
#include "decl-32.h"
#include "measure.h"
#include "ramp_status.h"
//#include "visa.h"
#include "age1960.h"


#define		MAX_8922_LOOP_COUNT		20
#define		HP_ERROR_CODE	(-1)
#define   IBDEV_ERROR   (-1)

// Rohde and Schwarz definitions
// secondary address - National Instruments specific
#define   SECONDARY_ADDR    96
// define offsets from that
#define SECONDARY_ADDR_OFFSET_GSM900_NS   1
#define SECONDARY_ADDR_OFFSET_GSM1800_NS  2
#define SECONDARY_ADDR_OFFSET_GSM1900_NS  3
// secondary address definitions for function groups
#define SECONDARY_ADDR_GSM900_NS  (SECONDARY_ADDR+SECONDARY_ADDR_OFFSET_GSM900_NS)
#define SECONDARY_ADDR_GSM1800_NS (SECONDARY_ADDR+SECONDARY_ADDR_OFFSET_GSM1800_NS)
#define SECONDARY_ADDR_GSM1900_NS (SECONDARY_ADDR+SECONDARY_ADDR_OFFSET_GSM1900_NS)



//*******************************************************************************
ViSession measure::GetVISASession()
  {
#if VISA
  return session;
#else
  return 0;
#endif
  }

//*******************************************************************************
ViSession measure::GetVISAInstrument()
  {
#if VISA
  return vi_instr;
#else
  return 0;
#endif
  }

//*******************************************************************************
BOOL measure::SetCableLoss(float loss)
  {
  char buf[256];
  double freq_offset[1];
  double loss_offset[1];
  int offset_items=3;
  int i;
  
  cable_loss=loss;
  loss_offset[0]=cable_loss;
  freq_offset[0]=800000000.0;
  
  if(tester_type==AGT8960)
    {
	  age1960_amplitudeOffset(vi_instr, freq_offset, loss_offset, 1);  // For latest Agilent drivers
	  //age1960_amplitudeOffset(vi_instr, loss);  // For older Agilent drivers
    }
  if(tester_type==HP8922)
    {
// Turn cable loss on
    sprintf(buf,"CONFIGURE:OFLEVEL:MODE 'ON'"); 
    GpibWrt(buf);
  // Set cable loss
    sprintf(buf,"CONFIGURE:OFLEVEL:RFINOUT %f",loss_offset[0]); 
    GpibWrt(buf);
    }


  else if(tester_type==CM200)
    {
    if(band==GSM)
      {
      sprintf(buf,"SENSE:CORRECTION:LOSS:INPUT2 %f",-1.0*cable_loss);
      GpibWrt(IdCM200_GSM900_NS,buf);
      sprintf(buf,"SENSE:CORRECTION:LOSS:OUTPUT2 %f",-1.0*cable_loss);
      GpibWrt(IdCM200_GSM900_NS,buf);
      }
    else if(band==DCS)
      {
      sprintf(buf,"SENSE:CORRECTION:LOSS:INPUT2 %f",-1.0*cable_loss);
      GpibWrt(IdCM200_GSM1800_NS,buf);
      sprintf(buf,"SENSE:CORRECTION:LOSS:OUTPUT2 %f",-1.0*cable_loss);
      GpibWrt(IdCM200_GSM1800_NS,buf);
      }
    else if(band==PCS)
      {
      sprintf(buf,"SENSE:CORRECTION:LOSS:INPUT2 %f",-1.0*cable_loss);
      GpibWrt(IdCM200_GSM1900_NS,buf);
      sprintf(buf,"SENSE:CORRECTION:LOSS:OUTPUT2 %f",-1.0*cable_loss);
      GpibWrt(IdCM200_GSM1900_NS,buf);
      }
    }

  return TRUE;
  }

//*******************************************************************************
BOOL measure::GetCableLoss(float *loss)
  {
  *loss=cable_loss;
  return TRUE;
  }

//*******************************************************************************
void measure::SetLogFilename(char *filename)
  {
  
  strcpy(log_filename,filename);
  }

//*******************************************************************************
void measure::LogGPIB(char *buf)
  {
  HANDLE hFile;
  unsigned long fp;
  unsigned long count;
  char cr[2]={0x0d,0x0a};

  if(logging)
    {
    hFile=CreateFile(log_filename,GENERIC_WRITE,FILE_SHARE_READ,NULL,
                     OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
// go to end of file
    fp=SetFilePointer (hFile,0,NULL, FILE_END); 
    WriteFile(hFile,buf,strlen(buf),&count,NULL);
    WriteFile(hFile,cr,2,&count,NULL); // append a newline
    CloseHandle(hFile);
    }
  }


//*******************************************************************************
void measure::EnableLogging(BOOL enable)
  {
  logging=enable;
  }

//***************
//----------SetGpibAddr()
//***************
BOOL measure::SetGpibAdd(Int8 addr)
  {
  GpibAdd=addr;
  return TRUE;
  }

//***************
//----------SetTesterType()
//***************
BOOL measure::SetTesterType(TesterType_t type)
  {
  if(type==AGT8960)
    {
    tester_type=AGT8960;
    return TRUE;
    }
  else if(type==HP8922)
    {
    tester_type=HP8922;
    return TRUE;
    }
  else if(type==CM200)
    {
    tester_type=CM200;
    return TRUE;
    }
  else return FALSE;
  }

//***************
//----------GetTesterType()
//***************
TesterType_t measure::GetTesterType()
  {
  return tester_type;
  }

//***************
//----------SetChannel(unsigned)
//***************
BOOL measure::SetChannel(unsigned ch)
  {
  channel=ch;
  return TRUE;
  }

//***************
//----------SetBand(BandIndex_t)
//***************
BOOL measure::SetBand(BandIndex_t b)
  {
  band=b;
  return TRUE;
  }

//***************
//----------Disconnect()
// returns FALSE on error
//***************
BOOL measure::Disconnect() 
  {
#if VISA
  viClose(vi_instr);
 // Sleep(100);
  viClose(session);
 // Sleep(100);
#endif
  return TRUE;
  }

//***************
//----------Connect()
// returns FALSE on error
//***************
BOOL measure::Connect() 
  {	
	short	result;
	double power = 0;
  char command[256];
  char buf[256];
  ViStatus viStat;
  ViSession vi;
  char log_msg[256];
   int i;
	if(tester_type==AGT8960)
    {
    sprintf(buf,"GPIB::%d::INSTR",GpibAdd);
    viStat = age1960_init(buf, VI_TRUE, VI_TRUE, &vi);
    if((viStat < VI_SUCCESS) || ( vi == VI_NULL ))
      {
      return FALSE;
      }

        vi_instr = vi;
		viClear(vi_instr);
		age1960_dcl(vi_instr);
		age1960_reset(vi_instr);
		//Sleep(10000);
		age1960_timeOut(vi_instr, 15000);
		//age1960_cmd(vi_instr, "SYST:COMM:GPIB:DEB:STAT ON");
		age1960_cmd(vi_instr, "DISP:MODE TRACK");
		age1960_operatingMode(vi_instr, age1960_TEST_MODE);
		age1960_measurementTimeout(vi_instr, age1960_PFER, 5.0, VI_TRUE);
		age1960_measurementTimeout(vi_instr, age1960_TXPOWER, 0.1, VI_TRUE);
		age1960_measurementTimeout(vi_instr, age1960_PVTIME, 1.0, VI_TRUE);
		age1960_confTXPower(vi_instr, 0, age1960_TRIG_RF_RISE, 0.0, VI_FALSE, 0.1);
		return TRUE;
    }
  else if(tester_type==HP8922)
    {
#if VISA
	//viClose(vi_instr);
    //viClose(session);
    if(viOpenDefaultRM(&session)!=VI_SUCCESS)
      {
      return FALSE;
      }
    sprintf(buf,"GPIB::%d::INSTR",GpibAdd);
    viStat=viOpen (session, buf, VI_NULL, VI_NULL, &vi_instr);
	Sleep(1000);
    if(viStat<VI_SUCCESS)
      {
      return FALSE;
      }
    viClear(vi_instr);
#else // not VISA
    IdHP8922 = ibdev(0, GpibAdd, 0, T1s, 1, 0);					// Locate the IdHP8922
	  if (IdHP8922 == HP_ERROR_CODE)
      {
	    return FALSE;
      }

//Check if HP8922 is connected
	  ibln(IdHP8922, GpibAdd, 0,&result);
	  if( result == 0 )
      {
	    return FALSE;
      }
	  ibclr(IdHP8922);
#endif
    GpibWrt("*RST");
	  Sleep(10000);
	
	  GpibWrt("DISPLAY:SCREEN CELL1");
	  GpibWrt("CELL:MODE 'TEST MODE'");

	  return TRUE;
    }
  else if(tester_type==CM200)
    {

#if VISA //weidg
	  vi_instr=1;
	 // session=256;
	 // Sleep(100);
	  viClear(vi_instr);
	  Sleep(100);
	  viClose(vi_instr);
	  Sleep(100);
   //   viClose(session);
      
		//
	   IdCM200_BASE=0;
	   i=0;
	   viStat=-1;
	  while ((viStat < VI_SUCCESS) && (i<=5))
    
	   {
		  Sleep(100);
		  viStat = viOpenDefaultRM(&session);

		  if (viStat < VI_SUCCESS)
		  { 
			viClose (session);
			Sleep(500);
		  } 
		  i++;
	   }

	   if(viStat<VI_SUCCESS)
	   { 
         return FALSE;
       }
       i=0;
       viStat=-1;
	   while ((viStat < VI_SUCCESS) && (i<=5))
	   {
	      Sleep(500);
		  sprintf(buf,"GPIB::%d::%d::INSTR",GpibAdd,IdCM200_BASE);
		  viStat=viOpen (session, buf, VI_NULL, VI_NULL, &vi_instr);
		  Sleep(1500);
		  if(viStat<VI_SUCCESS)
		  {
		    viClose (vi_instr);
		 	Sleep(500);
		  } 
		  i++;
	   }

	   if(viStat<VI_SUCCESS)
	   { 
         return FALSE;
	   } 	        
		viClear(vi_instr);
		Sleep(500);
   #else    //weidg
    // get the base handle
    IdCM200_BASE = ibdev(0, GpibAdd, SECONDARY_ADDR, 10, 1, 0);					// Locate the CMU200
    if(IdCM200_BASE==IBDEV_ERROR)
      {
      return FALSE;
      }
     // anybody there?
	  ibln(IdCM200_BASE, GpibAdd, SECONDARY_ADDR,&result);
	  if(result==0)
      {
      return FALSE;
      }
   #endif //weidg

   GpibWrt(IdCM200_BASE,"*RST");
   Sleep(4000);

   GpibWrt(IdCM200_BASE,"*OPC?");
   GpibRd(buf);

   Sleep(1000);
// set the secondary addresses
 //   added by weidg
    sprintf(command,"SYST:REM:ADDR:SEC 1,'GSM900MS_NSig'"); //\"");
    GpibWrt(IdCM200_BASE,command);
  //  GpibWrt(IdCM200_BASE,"*OPC?");
  // GpibRd(buf);
    sprintf(command,"SYST:REM:ADDR:SEC 2,'GSM1800MS_NSig'");  //\"",SECONDARY_ADDR_OFFSET_GSM1800_NS);
    GpibWrt(IdCM200_BASE,command);
//	GpibWrt(IdCM200_BASE,"*OPC?");
 //  GpibRd(buf);
    sprintf(command,"SYST:REM:ADDR:SEC 3,'GSM1900MS_NSig'"); //  ;
    GpibWrt(IdCM200_BASE,command);
//	GpibWrt(IdCM200_BASE,"*OPC?");
   // GpibRd(buf);
    sprintf(command,"SYST:REM:ADDR:SEC 4,'RF_NSig'"); //  ;weidg
    GpibWrt(IdCM200_BASE,command); 
	GpibWrt(IdCM200_BASE,"*OPC?");
    GpibRd(buf);

  // get the handles for the function groups
  #if VISA  //weidg
   IdCM200_GSM900_NS=1;
   IdCM200_GSM1800_NS=2;
   IdCM200_GSM1900_NS=3;
   IdCM200_RF_NS=4;    //weidg

  #else     //weidg 
    IdCM200_GSM900_NS=ibdev(0,GpibAdd,SECONDARY_ADDR_GSM900_NS,10,1,0);
    if(IdCM200_GSM900_NS==IBDEV_ERROR)
      {
      return FALSE;
      }
	  ibln(IdCM200_GSM900_NS, GpibAdd, SECONDARY_ADDR_GSM900_NS, &result);
	  if(result==0)
      {
      return FALSE;
      }

    IdCM200_GSM1800_NS=ibdev(0,GpibAdd,SECONDARY_ADDR_GSM1800_NS,10,1,0);
    if(IdCM200_GSM1800_NS==IBDEV_ERROR)
      {
      return FALSE;
      }
	  ibln(IdCM200_GSM1800_NS, GpibAdd, SECONDARY_ADDR_GSM1800_NS, &result);
	  if(result==0)
      {
      return FALSE;
      }


    IdCM200_GSM1900_NS=ibdev(0,GpibAdd,SECONDARY_ADDR_GSM1900_NS,10,1,0);
    if(IdCM200_GSM1900_NS==IBDEV_ERROR)
      {
      return FALSE;
      }
	  ibln(IdCM200_GSM1900_NS, GpibAdd, SECONDARY_ADDR_GSM1900_NS, &result);
	  if(result==0)
      {
      return FALSE;
      }
  #endif    //weidg  

	  }
  return TRUE;
  }



//***************
//------------- SetupInstrument()
//***************
BOOL measure::SetupInstrument()
  {
  char buf[256];
  char buf0[256];
  char buf1[256];
  double freq_offset[1];
  double loss_offset[1];
  int i;

  loss_offset[0]=cable_loss;
  freq_offset[0]=800000000.0;

	if(tester_type==AGT8960)
    {
//------------------- AGT8960

		switch(band)
      {
			case GSM:
        {
        age1960_cellBand(vi_instr, age1960_CELL_1, age1960_PGSM_BAND);
				break;
        }
			case DCS:
        {
        age1960_cellBand(vi_instr, age1960_CELL_1, age1960_DCS1800_BAND);
				break;
        }
			case PCS:
        {
        age1960_cellBand(vi_instr, age1960_CELL_1, age1960_PCS1900_BAND);
				break;
        }
			case GSM850:
		{
		age1960_cellBand(vi_instr, age1960_CELL_1, age1960_GSM850_BAND);
				break;
		}
			default: break;
      } // end switch

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国v精品久久久网| 午夜视频一区在线观看| 国产在线视视频有精品| 日韩三级视频在线看| 国产又粗又猛又爽又黄91精品| 久久嫩草精品久久久精品| 大桥未久av一区二区三区中文| 国产精品成人在线观看| 在线看不卡av| 久久精品国产**网站演员| 国产日韩欧美电影| 99久久综合99久久综合网站| 亚洲黄色小说网站| 日韩免费观看高清完整版| 国产成人av电影在线播放| 亚洲精品高清视频在线观看| 在线成人午夜影院| 成人a区在线观看| 亚洲成人资源在线| 久久伊99综合婷婷久久伊| 91免费精品国自产拍在线不卡| 日日夜夜免费精品视频| 国产亚洲欧洲997久久综合 | 亚洲韩国一区二区三区| 欧美浪妇xxxx高跟鞋交| 国产成人在线视频网站| 一区二区免费看| 精品国产污网站| 91蝌蚪porny九色| 精品一区二区影视| 成人国产精品免费观看视频| 五月天丁香久久| 亚洲国产成人私人影院tom| 欧美日韩精品一区二区三区蜜桃| 国产精品白丝jk白祙喷水网站 | 国产精品久久久久影院老司| 欧美久久久久免费| av电影在线观看不卡| 精品写真视频在线观看| 亚洲免费色视频| 久久日一线二线三线suv| 欧美性猛交xxxxxxxx| 国产精品一区二区在线播放| 日韩av网站免费在线| 亚洲精品菠萝久久久久久久| 国产婷婷色一区二区三区在线| 欧美人牲a欧美精品| 99久久综合狠狠综合久久| 国产伦精品一区二区三区视频青涩| 亚洲一区在线观看免费观看电影高清| 日本一区二区动态图| 欧美xxxxx牲另类人与| 欧美视频一区在线| 91久久线看在观草草青青| 成人av在线资源| 国产精品综合久久| 久久福利资源站| 日本不卡视频在线| 视频一区中文字幕| 亚洲国产精品自拍| 亚洲黄色小说网站| 亚洲欧美福利一区二区| 国产精品久99| 国产精品毛片无遮挡高清| 日韩欧美国产三级电影视频| 7777精品伊人久久久大香线蕉经典版下载 | 久久九九国产精品| 精品日韩在线一区| 久久这里只有精品首页| 久久综合久久综合亚洲| 26uuuu精品一区二区| 精品理论电影在线观看| www国产亚洲精品久久麻豆| 欧美v国产在线一区二区三区| 99久久精品国产观看| 成人av片在线观看| 国产乱码一区二区三区| 国产精品亚洲第一| 国产成人精品网址| a美女胸又www黄视频久久| 成人午夜又粗又硬又大| 成人美女视频在线看| 91麻豆国产自产在线观看| 91色porny| 欧美日韩aaa| 精品欧美一区二区久久| 日韩在线一区二区| 蜜桃久久精品一区二区| 国产一区二区中文字幕| 国产69精品久久久久毛片| 97久久精品人人做人人爽| 日本久久一区二区| 欧美日韩电影在线| 精品久久久久一区| 国产精品久久久久久久午夜片| 亚洲日本va在线观看| 亚洲国产精品久久艾草纯爱| 亚洲风情在线资源站| 日av在线不卡| 免费看欧美女人艹b| 国产资源在线一区| 成人h动漫精品| 欧美日韩免费观看一区三区| 日韩美女一区二区三区| 国产欧美一区二区精品秋霞影院 | 国产乱人伦精品一区二区在线观看| 精品一区二区在线播放| 粉嫩13p一区二区三区| 91蜜桃婷婷狠狠久久综合9色| 欧美日韩另类一区| 精品国产欧美一区二区| 日韩理论片一区二区| 日韩专区欧美专区| 国产精品自拍一区| 欧美综合视频在线观看| 精品美女一区二区三区| 有坂深雪av一区二区精品| 久久av老司机精品网站导航| 91丨porny丨户外露出| 欧美一区二区观看视频| 亚洲三级免费观看| 欧美成人vps| 国产suv精品一区二区883| 成人免费看的视频| 9191国产精品| 国产精品久久久久婷婷| 天堂一区二区在线免费观看| 国产福利一区在线| 国产精品久久午夜| 免费观看久久久4p| 色综合久久综合网欧美综合网| 欧美电视剧在线看免费| 亚洲午夜电影网| 国产不卡在线一区| 日韩免费观看高清完整版| 亚洲高清在线精品| 97精品国产露脸对白| 国产欧美视频一区二区| 日本成人超碰在线观看| 色www精品视频在线观看| 国产欧美日韩麻豆91| 久久精品国产澳门| 91麻豆精品国产91久久久资源速度 | 精品欧美一区二区三区精品久久| 亚洲三级电影全部在线观看高清| 久久精品免费看| 欧美日本一道本在线视频| 亚洲桃色在线一区| 处破女av一区二区| 精品成人私密视频| 奇米色一区二区| 欧美精品电影在线播放| 又紧又大又爽精品一区二区| a4yy欧美一区二区三区| 久久久精品影视| 国产一区二区在线电影| 欧美精品一区视频| 精品一区二区免费| 日韩一卡二卡三卡四卡| 婷婷成人综合网| 欧美喷水一区二区| 午夜久久久久久久久 | 欧美日韩精品欧美日韩精品| 亚洲免费观看视频| 99精品热视频| 亚洲欧美色图小说| 色综合久久久久综合99| 亚洲女女做受ⅹxx高潮| 在线观看av一区二区| 免费观看30秒视频久久| 色婷婷久久综合| 亚洲精品中文字幕乱码三区| 91小视频在线免费看| 亚洲欧美另类久久久精品2019| 91免费国产视频网站| 亚洲精品久久久久久国产精华液| 91网页版在线| 亚洲一区二区视频| 欧美喷水一区二区| 久久99精品一区二区三区 | 精品国精品自拍自在线| 国内精品久久久久影院色| 久久久久久电影| 成人免费视频网站在线观看| 中文字幕一区不卡| 欧美视频在线观看一区| 美女视频黄a大片欧美| 精品剧情v国产在线观看在线| 国产精品99久久久久久宅男| 亚洲国产成人午夜在线一区| 色综合久久中文综合久久牛| 午夜欧美在线一二页| 久久青草欧美一区二区三区| 91精品国产欧美一区二区18| 久久69国产一区二区蜜臀| 国产精品久久久久久久久免费桃花| 色婷婷久久久久swag精品| 日本不卡一区二区| 中文在线一区二区| 久久99最新地址|