?? com_driver.c
字號:
*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] AMT_MINMAX_ADC_ATOM 0-最小值
// 1-最大值
// data[1] 待寫入的表值
//輸出:*errinfo
//備注:
case WFLASHCURADC: ////寫電池ADC表
amt_set_commandtype(cmdbuf,AMT_WRIT_BATCURRENTADC_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_WRIT_BATCURRENTADC_RSPCMD)
{
*errinfo=ComRspTypeErr; //command type error
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
case RFLASHTEMADC: ////讀取電池temperature ADC表
amt_set_commandtype(cmdbuf,AMT_READ_BATTEMERATUREADC_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_BATTEMERATUREADC_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] AMT_MINMAX_ADC_ATOM 0-最小值
// 1-最大值
// data[1] 待寫入的表值
//輸出:*errinfo
//備注:
case WFLASHTEMADC: ////寫電池 temperature ADC表
amt_set_commandtype(cmdbuf,AMT_WRIT_BATTEMERATUREADC_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_WRIT_BATTEMERATUREADC_RSPCMD)
{
*errinfo=ComRspTypeErr; //command type error
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
case ACCCCHG :
amt_set_commandtype(cmdbuf,AMT_AC_CC_CHG_CMD); //set command type
amt_set_int(cmdbuf,AMT_AC_CC_CHG_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_AC_CC_CHG_RSPCMD)
{
*errinfo=ComRspTypeErr; //command type error
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
case ACINDETECTE:
amt_set_commandtype(cmdbuf,AMT_AC_IN_DETECTE_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_AC_IN_DETECTE_RSPCMD)
{
*errinfo=ComRspTypeErr; //command type error
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
temp=amt_get_int(cmdbuf,AMT_AC_IN_DETECTE_ATOM);
data[0]=0;
data[1]=0;
if(temp==1)
data[0]=1;
if(temp==2)
data[1]=1;
break;
case ACINDEINIT:
amt_set_commandtype(cmdbuf,AMT_AC_IN_DETECTE_INIT_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_AC_IN_DETECTE_INIT_RSPCMD)
{
*errinfo=ComRspTypeErr; //command type error
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
case HEADSETDTEST:
amt_set_commandtype(cmdbuf,AMT_HEADSET_DETECTE_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_HEADSET_DETECTE_RSPCMD)
{
*errinfo=ComRspTypeErr; //command type error
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
temp=amt_get_int(cmdbuf,AMT_HEADSET_DETECTE_ATOM);
data[0]=0;
data[1]=0;
if(temp==1)
data[0]=1;
if(temp==2)
data[1]=1;
break;
case HEADSETINIT:
amt_set_commandtype(cmdbuf,AMT_HEADSET_DETECTE_INIT_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_HEADSET_DETECTE_INIT_RSPCMD)
{
*errinfo=ComRspTypeErr; //command type error
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
//讀取出廠日期
//*data: NULL
//輸入:無
//輸出:*Buf 讀取到的出廠日期,ASCII字符串
// *errinfo
//備注:此出廠日期從Flash中讀出
case RDOUTDATE: ////讀取出廠日期
amt_set_commandtype(cmdbuf,AMT_READ_OUTDATE_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_OUTDATE_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_DATE_ATOM,Buf,0);
amt_get_string(cmdbuf,AMT_DATE_ATOM,Buf,temp);
break;
//寫取出廠日期
//*data: NULL
//輸入:*Buf 待寫入的出廠日期,ASCII字符串
//輸出:*errinfo
//備注:將出廠日期寫入Flash
case WROUTDATE: ////寫出廠日期
amt_set_commandtype(cmdbuf,AMT_WRITE_OUTDATE_CMD); //set command type
amt_set_string(cmdbuf,AMT_DATE_ATOM,Buf); //
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_OUTDATE_RSPCMD)
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //get error code
break;
//讀取Flash燒錄日期
//*data: NULL
//輸入:無
//輸出:*Buf 讀取到的燒錄日期,ASCII字符串
// *errinfo
//備注:
case RDFLUSHDATE: ////讀取燒入日期
amt_set_commandtype(cmdbuf,AMT_READ_FLUSHDATE_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_FLUSHDATE_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_DATE_ATOM,Buf,0); //
amt_get_string(cmdbuf,AMT_DATE_ATOM,Buf,temp); //get flush date
break;
//退出生產測試模式
//*data: NULL
//*Buf: NULL
//輸入:無
//輸出:*errinfo
//備注:
case EXIT: //退出生產測試模式
amt_set_commandtype(cmdbuf,AMT_EXIT_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; //fail for three times,break
CommType=amt_get_commandtype(cmdbuf); //get response command type
if(CommType!=AMT_EXIT_RSPCMD) //response command type correct?
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//設置生產測試模式允許
//*Buf: NULL
//輸入:*data(data[0]) Mode info 0x31-AMT_MODE1
// 0x32-AMT_MODE2
// 0x33-AMT_MODE3
//輸出:*errinfo
//備注:
case WRCTL: ////設置生產測試模式允許
amt_set_commandtype(cmdbuf,AMT_WRITE_CONTROL_CMD); //set command type
//SetString(enIMEIAtom,rult);
amt_set_int(cmdbuf,AMT_CONTROL_BYTE_ATOM,data[0]); //set mode info
// amt_set_string(cmdbuf,AMT_CONTROL_BYTE_ATOM,Buf); //需要寫入的是什么類型
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_CONTROL_RSPCMD) //
{
*errinfo=ComRspTypeErr; //
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//讀取生產測試模式允許
//*data: NULL
//輸入:無
//輸出:*Buf 讀取到的控制Byte
// *errinfo
//備注:
case RDCTL: //讀取生產測試模式允許
amt_set_commandtype(cmdbuf,AMT_READ_CONTROL_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_CONTROL_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_CONTROL_BYTE_ATOM,Buf,0); //
amt_get_bytes(cmdbuf,AMT_CONTROL_BYTE_ATOM,Buf,temp); //
break;
//改變音頻輸入增益
//*Buf: NULL
//輸入:*data(data[0]) AMT_GAININ_ATOM,待寫入的增益值
//輸出:*errinfo
//備注:
case WTGAININ: ////改變音頻輸入增益
amt_set_commandtype(cmdbuf,AMT_WRITE_GAININ_CMD);
amt_set_int(cmdbuf,AMT_GAININ_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_GAININ_RSPCMD)
{
*errinfo=ComRspTypeErr;
break;
}
*errinfo=amt_get_int(cmdbuf,AMT_ERRORCODE_ATOM); //read error code
break;
//讀取音頻輸入增益
//*Buf: NULL
//輸入:無
//輸出:*data(data[0]) AMT_GAININ_ATOM,讀到的增益值
// *errinfo
//備注:
case RDGAININ: //讀取音頻輸入增益
amt_set_commandtype(cmdbuf,AMT_READ_GAININ_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_GAININ_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_GAININ_ATOM); //read gain value
break;
//Read Board No.
//*data: NULL
//輸入:無
//輸出:*Buf 讀取到的Board No. ASCII字符串
// *errinfo
//備注:
case RDBODNO: ////讀取Board No.
amt_set_commandtype(cmdbuf,AMT_READ_BOARD_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_BOARD_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_BOARD_ATOM,Buf,0); //
amt_get_string(cmdbuf,AMT_BOARD_ATOM,Buf,temp); //get flash data
break;
//寫Board No.
//*data: NULL
//輸入:*Buf 待寫入的Board No. ASCII字符串
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -