?? com_driver.c
字號:
//輸出:*data: data[0] 讀取到的數(shù)據(jù)的長度,單位為Byte
// *Buf: 讀取到的數(shù)據(jù)
// *errinfo
//備注:本功能必須在RXON執(zhí)行成功后方可使用
case RXIQSRLDATA: ////傳送IQ的數(shù)據(jù)
//Com_init();
FlushInQ (Rs232); //Removes all characters from the input queue of the COM port
FlushOutQ (Rs232);
amt_set_commandtype(cmdbuf,AMT_IQSERIAL_CMD);//set command type
amt_set_int(cmdbuf,AMT_POWER_ATOM,data[1]); //para 1 :ExpPower,信號源輸入功率
//amt_set_int(cmdbuf,AMT_TIMESLOT_ATOM,data[1]); //para 2 :TimeSlot
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_IQSERIAL_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
if(*errinfo!=0) break;
temp=amt_get_bytes(cmdbuf,AMT_IQ_VALUE_ATOM,Buf,0); //數(shù)據(jù)長度
amt_get_bytes(cmdbuf,AMT_IQ_VALUE_ATOM,Buf,temp); //IQ數(shù)據(jù)
*data=temp;
break;
//IQ不平衡校準系數(shù)寫入
//*Buf: NULL
//輸入:*data: data[0] X I路校準系數(shù)
// data[1] Y Q路校準系數(shù)
//輸出:*errinfo
//備注:本功能必須在RXON執(zhí)行成功后方可使用
case WRIQVAL: ////傳入IQ不平衡校準系數(shù)
amt_set_commandtype(cmdbuf,AMT_IQCHECK_CMD); //set command type
amt_set_int(cmdbuf,AMT_X_ATOM,data[0]); //para 1
amt_set_int(cmdbuf,AMT_Y_ATOM,data[1]); //para 2
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_IQCHECK_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//讀取IQ信號的功率值,即IQ信號的平方和平均
//輸入:*data: data[1] Power Level:Power(dBm)+110
// data[2] Time Slot
//輸出:*data: data[0] 讀取到的功率值
// *errinfo
//*rult: NULL
//備注:本功能必須在RXON執(zhí)行成功后方可使用
case RXIQPWR: ////計算I/Q信號的功率均值
amt_set_commandtype(cmdbuf,AMT_IQPOWER_CMD); //set command type
amt_set_int(cmdbuf,AMT_POWER_ATOM,data[1]); //para 1 :ExpPower
amt_set_int(cmdbuf,AMT_TIMESLOT_ATOM,data[2]); //para 2 :TimeSlot
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_IQPOWER_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
if(*errinfo!=0) break;
*data=amt_get_int(cmdbuf,AMT_POWER_ATOM); //get RMS of receive power
break;
//改變接收頻點
//*Buf: NULL
//輸入:*data(data[0]) Channel No.:Frequency(MHz)*5
//輸出:*errinfo
//備注:本功能必須在RXON執(zhí)行成功后方可使用
case RXFREQ: ////改變接收頻點
amt_set_commandtype(cmdbuf,AMT_CHANGERXFREQ_CMD);
amt_set_int(cmdbuf,AMT_FREQ_ATOM,data[0]);
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_CHANGERXFREQ_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//LCD色彩顯示
//輸入:*data: data[0] Color 0: 白色
// 1: 紅色
// 2: 綠色
// 3: 藍色
// 4: 黑色
//*Buf: NULL
//輸出:*errinfo
//備注:
case LCDSHOW: ////LCD顯示命令
amt_set_commandtype(cmdbuf,AMT_SHOWLCD_CMD);
amt_set_int(cmdbuf,AMT_COLORNUMBER_ATOM,data[0]);
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_SHOWLCD_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//LCD亮度測試
//輸入:*data(data[0]) LCD亮度參數(shù)
//*rult: NULL
//輸出:*errinfo
//備注:
case LCDLIGHT: ////LCD 亮度測試命令
amt_set_commandtype(cmdbuf,AMT_LCDLIGHT_CMD); //set command type
amt_set_int(cmdbuf,AMT_LCDLIGHT_ATOM,data[0]);
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_LCDLIGHT_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//Audio loop 測試命令
//*Buf: NULL
//輸入:*data: data[0] 開始停止 Boolean True-開始
// False-停止
// data[1] 耳機/手機 UINT32 0-耳機 AMT_MOBILELOOP
// 1-手機 AMT_EARPHONELOOP
// 2 AMT_INTER_1KHz_TO_RECEIVER
// 3 AMT_INTER_1KHz_TO_SPEAKER
// 4 AMT_INTER_1KHz_TO_HS_SPEAKER
// 5 AMT_HS_MIC_TO_RECEIVER
//輸出:*errinfo
//備注:
case AUDLOOP: ////Audio loop 測試命令
amt_set_commandtype(cmdbuf,AMT_AUDIOLOOP_CMD); //set command type
amt_set_bool(cmdbuf,AMT_START_ATOM,data[0]); //para1
amt_set_int(cmdbuf,AMT_AUDIO_TYPE_ATOM,data[1]); //para2
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_AUDIOLOOP_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//振鈴測試命令
//*Buf: NULL
//輸入:*data(data[0]) 開始停止 Boolean True-開始
// False-停止
//輸出:*errinfo
//備注:不需要指定鈴聲
// 采用默認鈴聲類型
case BELL: ////振鈴測試命令
amt_set_commandtype(cmdbuf,AMT_BELL_CMD); //set command type
amt_set_bool(cmdbuf,AMT_START_ATOM,data[0]);//para1
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_BELL_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//振動器測試命令
//*Buf: NULL
//輸入:*data(data[0]) 開始停止 Boolean True-開始
// False-停止
//輸出:*errinfo
//備注:
case VIBRATOR: ////振動器測試命令
amt_set_commandtype(cmdbuf,AMT_VIBRATION_CMD); //set command type
amt_set_bool(cmdbuf,AMT_START_ATOM,data[0]); //para 1
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break;
}
if(*errinfo!=0) break;
//應答CommandID UINT8 36
//Error Code UINT32 見7.4節(jié)
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_VIBRATION_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//模式切換命令
//*Buf: NULL
//輸入:*data(data[0]) AMT_MODE_ATOM,模式指定
//輸出:*errinfo
//備注:目前無用
case MODECHG: ////模式切換命令
amt_set_commandtype(cmdbuf,AMT_CHANGEMODE_CMD); //set command type
amt_set_int(cmdbuf,AMT_MODE_ATOM,data[0]); //para 1
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_CHANGEMODE_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//按鍵測試
//輸入:*data(data[0]) 開始停止 Boolean True-開始
// False-停止
//*rult: NULL
//輸出:*errinfo
//備注:
case KEYBD: ////鍵盤測試命令
amt_set_commandtype(cmdbuf,AMT_KEYBOARD_CMD); //set command type
amt_set_bool(cmdbuf,AMT_START_ATOM,data[0]); //para 1
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_KEYBOARD_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//寫入軟件版本命令
//輸入:*data(data[0]) AMT_SW_MODULE_ATOM 0x01- General Product(注1)
// 0x10- Gerneral Software(注1)
// 0x11-L1
// 0x12- HL
// 0x13- Platform
// 0x14- MMI/APP
// 0x20-General hardware(注1)
// *rult: 內容,長度為64Byte
//輸出:*errinfo
//備注:
case WTHDVER: //寫入硬件版本命令
amt_set_commandtype(cmdbuf,AMT_WRIET_VERSION_CMD); //set command type
amt_set_int(cmdbuf,AMT_SW_MODULE_ATOM,data[1]); //para 1
amt_set_bytes(cmdbuf,AMT_VERSION_ATOM,Buf,64);
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_WRIET_VERSION_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//讀取軟件版本命令
//輸入:*data(data[0]) AMT_SW_MODULE_ATOM 0x01- General Product(注1)
// 0x10- Gerneral Software(注1)
// 0x11-L1
// 0x12- HL
// 0x13- Platform
// 0x14- MMI/APP
// 0x20-General hardware(注1)
//輸出:*errinfo
// *rult: 讀出內容
//備注:
case RDVER: ////讀取軟件版本命令
amt_set_commandtype(cmdbuf,AMT_VERSION_CMD); //set command type
amt_set_int(cmdbuf,AMT_SW_MODULE_ATOM,data[1]); //para 1
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_VERSION_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
if(*errinfo!=0) break;
amt_get_int(cmdbuf,AMT_SW_MODULE_ATOM); //get version kind
temp=amt_get_bytes(cmdbuf,AMT_VERSION_ATOM,Buf,0); //get version length
amt_get_bytes(cmdbuf,AMT_VERSION_ATOM,Buf,temp); //get version
*data = temp;
break;
//讀Flash中物理層碼表
//輸入:data[0]: AMT_TABLETYPE_ATOM,1: APC表
// 2: AGC表
// 3: AFC表(Reserved)
// data[1]: AMT_DATAADDR_ATOM, 表中偏移地址
// data[2]:AMT_DATALENGTH_ATOM, Data length,單位為Byte
//輸出:*Buf:讀取到的表值
// *errinfo
//備注:
case RDFTBL: ////讀物理層碼表
amt_set_commandtype(cmdbuf,AMT_READTABLE_FLASH_CMD); //set command type
amt_set_int(cmdbuf,AMT_TABLETYPE_ATOM,data[0]); //para 1
amt_set_int(cmdbuf,AMT_DATAADDR_ATOM,data[1]); //para 2
amt_set_int(cmdbuf,AMT_DATALENGTH_ATOM,data[2]); //para 3
//DataType=AMT_DATA_ATOM;
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_READTABLE_FLASH_RSPCMD) //
{
*errinfo=ComRspTypeErr; //command type error
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
if(*errinfo!=0)break;
MsgLen=amt_get_bytes(cmdbuf,AMT_DATA_ATOM,Buf,0); //
amt_get_bytes(cmdbuf,AMT_DATA_ATOM,Buf,MsgLen); //
break;
//寫Flash中物理層碼表
//輸入:data[0]: AMT_TABLETYPE_ATOM,1: APC表
// 2: AGC表
// 3: AFC表(Reserved)
// data[1]: AMT_DATAADDR_ATOM, 表中偏移地址
// data[2]:AMT_DATALENGTH_ATOM, Data length,單位為Byte
// *Buf:待寫入的表值
//輸出:*errinfo
//備注:
case WRFTBL: ////寫物理層碼表
amt_set_commandtype(cmdbuf,AMT_WRITETABLE_FLASH_CMD);
amt_set_int(cmdbuf,AMT_TABLETYPE_ATOM,data[0]); // start address
amt_set_int(cmdbuf,AMT_DATAADDR_ATOM,data[1]); //表中偏移地址
//amt_set_int(cmdbuf,AMT_DATALENGTH_ATOM,data[2]); //
amt_set_bytes(cmdbuf,AMT_DATA_ATOM,Buf,data[2]); //data
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -