?? com_driver.c
字號:
//輸出:*errinfo
//備注:
case WTBODNO: ////寫Board No.
amt_set_commandtype(cmdbuf,AMT_WRITE_BOARD_CMD); //Set command type
amt_set_string(cmdbuf,AMT_BOARD_ATOM,Buf); // Write Board No.
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_WRITE_BOARD_RSPCMD) //
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
//Read Test result
//輸入:*data: data[0] 測試站點序列號
//輸出:*data: data[1] 測試結果 0-未測試
// 1-PASS
// 2-FAIL
// *Buf 讀取到的描述信息,ASCII字符串
// *errinfo
//備注:
case RDFLAG: ////讀取生產測試相關信息
amt_set_commandtype(cmdbuf,AMT_READ_TEST_RESULT_CMD); //set command type
amt_set_int(cmdbuf,AMT_SITE_ATOM, data[0]); //set station no.
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 command type
if(CommType!=AMT_READ_TEST_RESULT_RSPCMD) //
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
if(*errinfo!=0) break;
data[1]=amt_get_int(cmdbuf,AMT_RESULT_ATOM); //get test result
temp=amt_get_string(cmdbuf,AMT_DESCRIPTION_ATOM,Buf,0); //get the length of test description
amt_get_string(cmdbuf,AMT_DESCRIPTION_ATOM,Buf,temp); //get test description
break;
//寫入測試結果
//輸入:*data: data[0] 測試站點序列號
// data[1] 測試結果 0-未測試
// 1-PASS
// 2-FAIL
// *Buf 待寫入的描述信息,ASCII字符串
//輸出:*errinfo
//備注:
case WTFLAG: ////寫生產測試結果和相關信息
amt_set_commandtype(cmdbuf,AMT_WRIET_TEST_RESULT_CMD); //set command type
amt_set_int(cmdbuf,AMT_SITE_ATOM, data[0]); //set station no.
amt_set_int(cmdbuf,AMT_RESULT_ATOM,data[1]); //set test result
amt_set_string(cmdbuf,AMT_DESCRIPTION_ATOM,Buf); // set test description
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_WRITE_TEST_RESULT_RSPCMD) //
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
//改變麥克風的參數
//*Buf: NULL
//輸入:*data(data[0]) 待寫入的MIC參數
//輸出:*errinfo
//備注:
case WTMIC: ////改變麥克風的參數
amt_set_commandtype(cmdbuf,AMT_WRITE_MIC_CMD);
amt_set_int(cmdbuf,AMT_MIC_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_WRITE_MIC_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//讀取麥克風的參數
//*Buf: NULL
//輸入:無
//輸出:*data(data[0]) 讀取到的MIC參數
// *errinfo
//備注:
case RDMIC: //讀取麥克風的參數
amt_set_commandtype(cmdbuf,AMT_READ_MIC_CMD); //set command type
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and check response from UE
if(*errinfo==enNoneErr) break; //there is error,try three times .or break
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_READ_MIC_RSPCMD) //
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
if(*errinfo!=0) break;
*data=amt_get_int(cmdbuf,AMT_MIC_ATOM); //read ADC value
break;
//USIM檢測
//*Buf: NULL
//輸入:無
//輸出:*data(data[0]) 檢測結果 0-檢測不到USIM
// 1-成功檢測到USIM
//
// *errinfo
//備注:
case USIMCHECK: //讀取USIM卡狀態
amt_set_commandtype(cmdbuf,AMT_USIMCHECK_CMD); //set command type
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and check response from UE
if(*errinfo==enNoneErr) break; //there is error,try three times .or break
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_USIMCHECK_RSPCMD) //
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
if(*errinfo!=0) break;
*data=amt_get_bool(cmdbuf,AMT_USIMPRESENT_ATOM); //read ADC value
break;
//將DSP Memory中的碼表更新到Flash
//*data: NULL
//*Buf: NULL
//輸入:無
//輸出:*errinfo
//備注:
case UPDATEFTBL: ////更新FLASH中的碼表
amt_set_commandtype(cmdbuf,AMT_REFRESHTABLE_FLASH_CMD);
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_REFRESHTABLE_FLASH_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//GPIO測試
//*輸入:*data: data[0] Start/Stop 0-停止
// 1-開始
// data[1] 置為高電平的GPIO組 1-組1置高
// 2-組2置高
//*Buf: NULL
//輸出:*errinfo
//備注:
case GPIOMES:
amt_set_commandtype(cmdbuf,AMT_GPIO_CMD);
amt_set_bool(cmdbuf,AMT_START_ATOM,data[0]);
amt_set_int(cmdbuf,AMT_GPIOGROUP_ATOM, data[1]); //GPIO組號
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_GPIO_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//GSM透傳命令
//*輸入:*data: data[0] 需透傳的GSM Control command ID
// data[1] 需透傳的GSM命令的總長度
// *Buf: 需透傳的GSM命令
//輸出: *Buf: DSP反饋命令
// *errinfo
//備注: GSM Control command ID的具體定義參見Comm.h中ADIL1CAL_PRIMITIVES的定義
case GSMCOMMAND:
Buf[0] = data[0]&0xFF;
Buf[1] = (data[0]>>8)&0xFF;
Buf[2] = (data[0]>>16)&0xFF;
Buf[3] = (data[0]>>24)&0xFF;
amt_set_commandtype(cmdbuf,AMT_GSM_TRANSPARENT_CONTROL_CMD);
amt_set_bytes(cmdbuf,AMT_GSM_CONTROLCMD_ATOM,Buf,data[1]);
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
//if(*errinfo==enNoneErr) break; //
if(*errinfo!=-1) break;
}
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_GSM_TRANSPARENT_CONTROL_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
if(*errinfo) break;
memset(Buf,0,sizeof(Buf));
temp=amt_get_bytes(cmdbuf,AMT_GSM_CONTROLCMD_ATOM,Buf,0); //
amt_get_bytes(cmdbuf,AMT_GSM_CONTROLCMD_ATOM,Buf,temp); //
MsgLen=(unsigned char)Buf[0]+((unsigned char)Buf[1]<<8)+((unsigned char)Buf[2]<<16)+((unsigned char)Buf[3]<<24); //獲取Configure信息中的CommandId
if(MsgLen!=data[0]+1) *errinfo=DspRspTypeErr;//比較CommandId
break;
//復制NVRAM到共享內存
//*data: NULL
//*Buf: NULL
//*輸入:無
//輸出:*errinfo
//備注:將所有GSM碼表從NVRAM復制到共享內存中
case GSMCPFTOM:
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_GSM_READTABLE_FLASH_TO_MEMORY_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//讀取GSM碼表flag(NVRAM)
//*Buf: NULL
//*輸入:無
//輸出:*data(data[0]) flag(bool)
// *errinfo
//備注:此flag決定DSP是否在啟動時從NVRAM更新碼表
case GSMRDFLAG:
amt_set_commandtype(cmdbuf,AMT_GSM_READTABLE_FLAG_FLASH_CMD);
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_GSM_READTABLE_FLAG_FLASH_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
if(*errinfo) break;
*data=amt_get_bool(cmdbuf,AMT_GSM_TABLEFLAG_ATOM); //read flag
break;
//更新GSM碼表
//*Buf: NULL
//*輸入:*data(data[0]) flag 0- DSP啟動時不需要從NVRAM更新GSM碼表
// 1- DSP啟動時需要從NVRAM更新GSM碼表
//輸出:*errinfo
//備注: 將所有GSM碼表從共享內存復制到NVRAM中
case GSMUPDATE:
amt_set_commandtype(cmdbuf,AMT_GSM_REFRESHTABLE_MEMORY_TO_FLASH_CMD);
amt_set_bool(cmdbuf,AMT_GSM_TABLEFLAG_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_GSM_REFRESHTABLE_MEMORY_TO_FLASH_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//讀GSM碼表(共享內存)
//輸入:*data: data[0]: AMT_GSM_TABLETYPE_ATOM, 1:GSM AFC表
// 2:GSM TXSCAL表
// 3:GSM RXGAIN表
// 4:GSM TXFREQ表
// 5:GSM RXFREQ表
// 6:GSM POWPROFILE表
// data[1]: AMT_DATAADDR_ATOM, 表中偏移地址
// data[2]: AMT_DATALENGTH_ATOM, Data length,單位為Byte
//輸出:*Buf:讀取到的表值
//備注:
case GSMRDMTBL:
amt_set_commandtype(cmdbuf,AMT_GSM_READTABLE_MEMORY_CMD); // set command type
amt_set_int(cmdbuf,AMT_GSM_TABLETYPE_ATOM,data[0]); //para 1 : table type
amt_set_int(cmdbuf,AMT_DATAADDR_ATOM,data[1]); //para 2 : offset address
amt_set_int(cmdbuf,AMT_DATALENGTH_ATOM,data[2]); //para 3 : data length
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_GSM_READTABLE_MEMORY_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
if(*errinfo!=0)break;
memset(Buf,0,sizeof(Buf));
MsgLen=amt_get_bytes(cmdbuf,AMT_DATA_ATOM,Buf,0); //get data length
amt_get_bytes(cmdbuf,AMT_DATA_ATOM,Buf,MsgLen); //get data
break;
//寫GSM碼表(共享內存)
//輸入:*data: data[0]: AMT_GSM_TABLETYPE_ATOM, 1:GSM AFC表
// 2:GSM TXSCAL表
// 3:GSM RXGAIN表
// 4:GSM TXFREQ表
// 5:GSM RXFREQ表
// 6:GSM POWPROFILE表
// data[1]: AMT_DATAADDR_ATOM, 表中偏移地址
// data[2]: AMT_DATALENGTH_ATOM, Data length,單位為Byte
// *Buf:待寫入的表值
//輸出:*errinfo
//備注:
case GSMWRMTBL:
amt_set_commandtype(cmdbuf,AMT_GSM_WRITETABLE_MEMORY_CMD); //set command type
amt_set_int(cmdbuf,AMT_GSM_TABLETYPE_ATOM,data[0]); //para 1 : 表類型
amt_set_int(cmdbuf,AMT_DATAADDR_ATOM,data[1]); //para 2 : 表中偏移地址
amt_set_bytes(cmdbuf,AMT_DATA_ATOM,Buf,data[2]); //para 3 : 數據
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_GSM_WRITETABLE_MEMORY_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
/*Wang Hong Ren modified 2007.09.05 begin*/
#if 0
case LCD_EXTRA_PATTERN_SET:
amt_set_commandtype(cmdbuf,AMT_FLEX_CMD);
amt_set_int(cmdbuf,AMT_FLEX_EXTRA_MODULE_ATOM,data[0]);
amt_set_int(cmdbuf,AMT_LCD_EXTRA_PATTERN_ATOM,data[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_FLEX_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -