?? com_driver.c
字號:
?
+
if(*errinfo!=0) break;
CommType=amt_get_commandtype(cmdbuf);
if(CommType!=AMT_WRITETABLE_FLASH_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
/*temp=amt_get_int(cmdbuf,AMT_DATALENGTH_ATOM); //get written data length
if(temp!=data[2]) //written length or data not correct?
{
*errinfo=5;
}*/
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
//讀取當前終端溫度ADC值
//*Buf: NULL
//輸入:無
//輸出:*data(data[0]) 讀取到的溫度ADC值
// *errinfo
//備注:
case RDTMP: ////讀取當前終端溫度ADC值
amt_set_commandtype(cmdbuf,AMT_TEMPERATURE_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); //
if(CommType!=AMT_TEMPERATURE_RSPCMD) //
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
if(*errinfo!=0) break;
//temp=amt_get_string(cmdbuf,AMT_TEMPERATURE_ATOM,Buf,0);
//amt_get_string(cmdbuf,AMT_TEMPERATURE_ATOM,Buf,temp);
*data=amt_get_int(cmdbuf,AMT_TEMPERATURE_ATOM); //read temperature ADC value
break;
//讀取射頻芯片電壓ADC值
//*Buf: NULL
//輸入:無
//輸出:*data(data[0]) 讀取到的射頻芯片電壓ADC值
// *errinfo
//備注:
case RDRFADC: ////讀取射頻芯片電壓ADC值
amt_set_commandtype(cmdbuf,AMT_READ_RFADC_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); //
if(CommType!=AMT_READ_RFADC_RSPCMD) //
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
if(*errinfo!=0) break;
//temp=amt_get_string(cmdbuf,AMT_TEMPERATURE_ATOM,Buf,0);
//amt_get_string(cmdbuf,AMT_TEMPERATURE_ATOM,Buf,temp);
*data=amt_get_int(cmdbuf,AMT_ADC_ATOM); //read ADC value
break;
//MMI初始化
//目前不支持
/* case MMISET:
WriteCommandType(enFaceCmd);
for(i=0;i<3;i++)
{
*errinfo=ComRw();
if(*errinfo==enNoneErr) break;
}
if(*errinfo!=0) break;
CommType=ReadCommandType();
if(CommType!=enFaceRspCmd)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=GetInt(enErrorCodeAtom);
break; */
//讀取IMEI號碼
//輸入:無
//輸出:*data(data[0]) IMEI號碼長度
// *Buf 讀到的IMEI號碼
// *errinfo
//備注:
case RDIMEI:////讀取IMEI號碼
amt_set_commandtype(cmdbuf,AMT_READIMEI_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); //
if(CommType!=AMT_READIMEI_RSPCMD) //
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
if(*errinfo!=0) break;
temp=amt_get_bytes(cmdbuf,AMT_IMEI_ATOM,Buf,0); //IMEI length
amt_get_bytes(cmdbuf,AMT_IMEI_ATOM,Buf,temp); //read IMEI number
//*data=temp;
break;
//寫IMEI號碼
//*data: NULL
//輸入:*Buf 待寫入的IMEI號碼
//輸出:*errinfo
//備注:
case WRIMEI: ////寫IMEI 號碼
amt_set_commandtype(cmdbuf,AMT_WRITEIMEI_CMD); //get command type
amt_set_bytes(cmdbuf,AMT_IMEI_ATOM,Buf,15); // Write imei
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_WRITEIMEI_RSPCMD) //
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
//讀取按鍵值
//*data: NULL
//輸入:無
//輸出:*rult: 讀取被按下的按鍵值,ASCII字符串型
// *errinfo
//備注:此功能需在KEYBD功能執行成功,開啟了按鍵測試后方可進行
case KBVAL: ////讀取鍵盤按鍵值
*errinfo=Com_Rd(0.01); //read key value from COM port
if(*errinfo!=0) break;
//amt_set_commandtype(cmdbuf,AMT_KEYVALUE_CMD);
CommType=amt_get_commandtype(cmdbuf); //read command type from UE
if(CommType!=AMT_KEYVALUE_CMD) //if command type is wrong
{
*errinfo=ComRspTypeErr; //return error number
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
if(*errinfo!=0) break; //there is error,then break
temp=amt_get_string(cmdbuf,AMT_KEYVALUE_ATOM,Buf,0); //get key value
amt_get_string(cmdbuf,AMT_KEYVALUE_ATOM,Buf,temp); //
break;
//COM口測試
/*case COMTEST:
Com_test();
// *errinfo=Com_Rd(50);
break;
*/
//鍵盤背光測試
//輸入:*data(data[0]) 開始停止 Boolean True-開啟
// False-關閉
//*rult: NULL
//輸出:*errinfo
//備注:
case BKLIGHT: ////鍵盤背光測試
amt_set_commandtype(cmdbuf,AMT_BACKLIGHT_CMD); //set command type
amt_set_bool(cmdbuf,AMT_START_ATOM,data[0]); //set bool value to cmdbuf
for(i=0;i<3;i++)
{
*errinfo=ComRw(); //send command and read response
if(*errinfo==enNoneErr) break; //no error, break
}
if(*errinfo!=0) break; //fail to run this test for three times,break
CommType=amt_get_commandtype(cmdbuf); //read response command type
if(CommType!=AMT_BACKLIGHT_RSPCMD) //
{
*errinfo=ComRspTypeErr; //command type not correct
break; //
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//讀DSP Memory中物理層碼表
//輸入: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 RDMTBL: //讀物理層碼表
amt_set_commandtype(cmdbuf,AMT_READTABLE_MEMORY_CMD); // set command type
amt_set_int(cmdbuf,AMT_TABLETYPE_ATOM,data[0]); //para 1 : table kind
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
//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_MEMORY_RSPCMD)
{
*errinfo=ComRspTypeErr; //
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); //get data length
amt_get_bytes(cmdbuf,AMT_DATA_ATOM,Buf,MsgLen); //get data
break;
//寫DSP Memory中物理層碼表
//輸入: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 WRMTBL: //寫物理層碼表
amt_set_commandtype(cmdbuf,AMT_WRITETABLE_MEMORY_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]);
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_WRITETABLE_MEMORY_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
/*temp=amt_get_int(cmdbuf,AMT_DATALENGTH_ATOM); //get written data length
if(temp!=data[2])
{
*errinfo=5; //written data length error
}*/
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
//讀取電池電壓ADC表
//*rult: NULL
//輸入:*data:data[0] AMT_MINMAX_ADC_ATOM 0-最小值
// 1-最大值
//輸出:*data:data[1] 讀取到的表值
// *errinfo
//備注:
case RDBADC: ////讀取電池電壓ADC表
amt_set_commandtype(cmdbuf,AMT_READ_BATTERYADC_CMD); //set command type
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_READ_BATTERYADC_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
if(*errinfo!=0)break;
temp=amt_get_bytes(cmdbuf,AMT_ADC_ATOM,data,0);
amt_get_bytes(cmdbuf,AMT_ADC_ATOM,data,temp);
break;
//寫電池電壓ADC表
//*rult: NULL
//輸入:*data: data[0] a
//
// data[1] b
//輸出:*errinfo
//備注:
case WRBADC: ////寫電池ADC表
amt_set_commandtype(cmdbuf,AMT_WRITE_BATTERYADC_CMD); //set command type
amt_set_bytes(cmdbuf,AMT_ADC_ATOM,data,8);
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_BATTERYADC_RSPCMD)
{
*errinfo=ComRspTypeErr; //command type error
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
case RCURADC: ////電池current值讀取
amt_set_commandtype(cmdbuf,AMT_READ_CURRENT_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_READ_CURRENT_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_BATTERYVALUE_ATOM);
break;
break;
case RCURADCDAC16:
amt_set_commandtype(cmdbuf,AMT_READ_CURRENT_ADC16_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_READ_CURRENT_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_BATTERYVALUE_ATOM);
break;
case RCURADCDAC64:
amt_set_commandtype(cmdbuf,AMT_READ_CURRENT_ADC64_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_READ_CURRENT_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_BATTERYVALUE_ATOM);
break;
case RTEMADC: ////電池電壓temperature值讀取
amt_set_commandtype(cmdbuf,AMT_READ_TEMPERATURE_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_READ_TEMPERATURE_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_BATTERYVALUE_ATOM);
break;
case RFLASHCURADC: ////讀取電池current ADC表
amt_set_commandtype(cmdbuf,AMT_READ_BATCURRENTADC_CMD); //set command type
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_READ_BATCURRENTADC_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -