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