📄 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 + -