📄 atpte.c
字号:
ParameterStructInit(paramArray, 1);
result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );
if((result != DIDIT) || (paramArray[0].Value != 1))
return AT_ECMDERROR;
/* Tx Power calibration data update Start */
GSMstrcpy(str,"\nGSM Power Cal Table");
ATSendReply( str );
for( i= 0 ; i < NO_GSM_RAMPS ; i++ )
{
TxConfigRampData = (_RF_RAMP_CONFIG_S *)&HWCalibrationData.GSMPowerRampTables[i][0];
GSMsprintf(str,"[%d]%d ", i+5, TxConfigRampData->ramp.level);
GSMsprintf(str_temp,"%d(%d) ", TxConfigRampData->lower_adjust.level_adjust, TxConfigRampData->ramp.level + TxConfigRampData->lower_adjust.level_adjust);
GSMstrcat(str,str_temp);
GSMsprintf(str_temp,"%d(%d)", TxConfigRampData->upper_adjust.level_adjust,TxConfigRampData->ramp.level + (INT8)TxConfigRampData->upper_adjust.level_adjust);
GSMstrcat(str,str_temp);
ATSendReply( str );
}
GSMstrcpy(str,"\nDCS Power Cal Table");
ATSendReply( str );
for( i= 0 ; i < NO_DCS_RAMPS ; i++ )
{
TxConfigRampData = (_RF_RAMP_CONFIG_S *)&HWCalibrationData.DCSPowerRampTables[i][0];
GSMsprintf(str,"[%d]%d ", i, TxConfigRampData->ramp.level);
GSMsprintf(str_temp,"%d(%d) ", TxConfigRampData->lower_adjust.level_adjust, TxConfigRampData->ramp.level + TxConfigRampData->lower_adjust.level_adjust);
GSMstrcat(str,str_temp);
GSMsprintf(str_temp,"%d(%d)", TxConfigRampData->upper_adjust.level_adjust, TxConfigRampData->ramp.level + (INT8)TxConfigRampData->upper_adjust.level_adjust);
GSMstrcat(str,str_temp);
ATSendReply( str );
}
/* Tx Power calibration data update end */
/* Gain calibration data update Start */
for(i=0; i<60; i++)
local_rx_gain_cal_val.Hw_Rf_Gain_Cal_Table[i] = HWCalibrationData.Hw_Rf_Gain_Cal_Table[i];
GSMsprintf(str,"\nPGA stage\n");
for( i=0; i<6; i++ )
{
if(i&1)
{
GSMsprintf(str_temp,"%d/100(x%02x) ",local_rx_gain_cal_val.rf_gain_cal_s.bb_cal.comp_pga[i>>1].upper * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.bb_cal.comp_pga[i>>1].upper);
GSMstrcat(str,str_temp);
}
else
{
GSMsprintf(str_temp,"%d/100(x%02x) ",local_rx_gain_cal_val.rf_gain_cal_s.bb_cal.comp_pga[i>>1].lower * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.bb_cal.comp_pga[i>>1].lower);
GSMstrcat(str,str_temp);
}
}
ATSendReply( str );
GSMsprintf(str,"mixer2 stage\n");
GSMsprintf(str_temp,"%d/100(x%02x) %d/100(x%02x)",local_rx_gain_cal_val.rf_gain_cal_s.bb_cal.mixer2.lower * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.bb_cal.mixer2.lower
,local_rx_gain_cal_val.rf_gain_cal_s.bb_cal.mixer2.upper * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.bb_cal.mixer2.upper);
GSMstrcat(str,str_temp);
ATSendReply( str );
GSMsprintf(str,"\ngsm_lna_cal stage\n");
GSMsprintf(str_temp,"%d/100(x%02x)\n",local_rx_gain_cal_val.rf_gain_cal_s.gsm_lna_cal.gain_lna_on * 100 / 16
,(UINT16)local_rx_gain_cal_val.rf_gain_cal_s.gsm_lna_cal.gain_lna_on);
GSMstrcat(str,str_temp);
ATSendReply( str );
GSMsprintf(str,"frequency compansation\n");
for( i=0; i<8; i++ )
{
if(i&1)
{
GSMsprintf(str_temp,"%d/100(x%02x) ",local_rx_gain_cal_val.rf_gain_cal_s.gsm_lna_cal.comp_lna_on[i>>1].upper * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.gsm_lna_cal.comp_lna_on[i>>1].upper);
GSMstrcat(str,str_temp);
}
else
{
GSMsprintf(str_temp,"%d/100(x%02x) ",local_rx_gain_cal_val.rf_gain_cal_s.gsm_lna_cal.comp_lna_on[i>>1].lower * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.gsm_lna_cal.comp_lna_on[i>>1].lower);
GSMstrcat(str,str_temp);
}
}
ATSendReply( str );
GSMsprintf(str,"mixer1 stage\n");
GSMsprintf(str_temp,"%d/100(x%02x) %d/100(x%02x)",local_rx_gain_cal_val.rf_gain_cal_s.gsm_lna_cal.mixer1.lower * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.gsm_lna_cal.mixer1.lower
,local_rx_gain_cal_val.rf_gain_cal_s.gsm_lna_cal.mixer1.upper * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.gsm_lna_cal.mixer1.upper);
GSMstrcat(str,str_temp);
ATSendReply( str );
GSMsprintf(str,"\ndcs_lna_cal stage\n");
GSMsprintf(str_temp,"%d/100(x%04x)\n",local_rx_gain_cal_val.rf_gain_cal_s.dcs_lna_cal.gain_lna_on * 100 / 16
,(UINT16)local_rx_gain_cal_val.rf_gain_cal_s.dcs_lna_cal.gain_lna_on);
GSMstrcat(str,str_temp);
ATSendReply( str );
GSMsprintf(str,"frequency compansation\n");
for( i=0; i<8; i++ )
{
if(i&1)
{
GSMsprintf(str_temp,"%d/100(x%02x) ",local_rx_gain_cal_val.rf_gain_cal_s.dcs_lna_cal.comp_lna_on[i>>1].upper * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.dcs_lna_cal.comp_lna_on[i>>1].upper);
GSMstrcat(str,str_temp);
}
else
{
GSMsprintf(str_temp,"%d/100(x%02x) ",local_rx_gain_cal_val.rf_gain_cal_s.dcs_lna_cal.comp_lna_on[i>>1].lower * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.dcs_lna_cal.comp_lna_on[i>>1].lower);
GSMstrcat(str,str_temp);
}
}
ATSendReply( str );
GSMsprintf(str,"mixer1 stage\n");
GSMsprintf(str_temp,"%d/100(x%02x) %d/100(x%02x)\n",local_rx_gain_cal_val.rf_gain_cal_s.dcs_lna_cal.mixer1.lower * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.dcs_lna_cal.mixer1.lower
,local_rx_gain_cal_val.rf_gain_cal_s.dcs_lna_cal.mixer1.upper * 100 / 16
,(UINT8)local_rx_gain_cal_val.rf_gain_cal_s.dcs_lna_cal.mixer1.upper);
GSMstrcat(str,str_temp);
ATSendReply( str );
/* Gain calibration data update End */
/* AFC Calibration Value Display Start */
GSMsprintf( str, "AFC DAC start value, %d\n", HWCalibrationData.AFCDACStartValue );
ATSendReply( str );
/* AFC Calibration Value Display End*/
/* Battery Calubration data update Start */
GSMsprintf(str,"\nBatt Calibration Data");
ATSendReply( str );
if( ReadBattData( battlevel ) )
{
GSMsprintf( str," Type I " );
for( i = 0; i < 4 ; i++ )
{
GSMsprintf( str_temp,"%d ",battlevel[i] );
GSMstrcat( str,str_temp);
}
ATSendReply( str );
GSMsprintf( str," Type II " );
for( ; i < 8 ; i++ )
{
GSMsprintf( str_temp,"%d ",battlevel[i] );
GSMstrcat( str,str_temp);
}
ATSendReply( str );
}
else
ATSendReply( " check sum error!!" );
/* Battery Calubration data update End */
GSMFree( str );
GSMFree( str_temp );
#endif /* SILABS_RF */
//ATSendReply( "SecCaldatalist:DONE" );
return DIDIT;
}
/*- Local Functions --------------------------------------------------------- */
/* Command for AvailableHW
/* Name: HndlATsAVAILABLEHW
/* Type: Set
/* Using : AT+AVAILABLEHW = value
/* Desc :
/* Returns: OK or ERROR
/* Note : value 狼 蔼捞 1牢 版快俊父 悼累茄促.
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsAVAILABLEHW(INT8 *paramStrPtr)
{
extern const SECHwBoardList sechwboardlist[DEFAULT_HWID+1];
extern void HWNVMGetHWIdString( UINT8 * putItHere );
INT8 *str = ( INT8 * ) GSMMalloc( 512 );
INT8 *hwIdBuffer = ( INT8 * ) GSMMalloc( 121 );
UINT8 hwid = HW_ID_NOT_FOUND;
UINT8 i;
UINT8 nFinal;
ATCMD_RESULT result;
PARAMETER_RECORD paramArray[1];
ParameterStructInit(paramArray, 1);
result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );
if((result != DIDIT) || (paramArray[0].Value != 1))
return AT_ECMDERROR;
/* this has to come from somewhere else*/
#if 0
HWNVMGetHWIdString( hwIdBuffer );
#else
*hwIdBuffer = '\0';
#endif
for( i = 0; i < sizeof(sechwboardlist)/sizeof(SECHwBoardList) ; i++ )
{
GSMsprintf( str, "[%d] %s,", i, sechwboardlist[i].HWIDString );
ATSendReply( str );
if( GSMstrncmp( sechwboardlist[i].HWIDString, hwIdBuffer, HWIDSTRING_LEN ) == 0 )
{
hwid = sechwboardlist[i].HWID;
}
}
GSMsprintf(str,"NVM saved Hw id [%d] %s", hwid, sechwboardlist[hwid].HWIDString);
ATSendReply( str );
GSMFree( hwIdBuffer );
GSMFree( str );
//ATSendReply( "AvailableHW:DONE" );
return DIDIT;
}
/*- Local Functions --------------------------------------------------------- */
/* Command for ClearWap
/* Name: HndlATsCLEARWAP
/* Type: Set
/* Using : AT+AVAILABLEHW= <Value>
/* Desc : Setting等 wap csd gprs狼 proxy 沥焊甫 NULL肺 檬扁拳 茄促.
/* Returns: OK or ERROR
/* Note : Value狼 蔼捞 1牢 版快俊父 悼累窍档废 窃.
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsCLEARWAP(INT8 *paramStrPtr)
{
int i;
UINT8 NvmGoodBlock = NVM_GOOD_BLOCK ;
ProxyInfo *ptrProxyInfo = (UINT8 *)GSMMalloc(sizeof(ProxyInfo));
UINT8 nFinal;
ATCMD_RESULT result;
PARAMETER_RECORD paramArray[1];
ParameterStructInit(paramArray, 1);
result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );
if((result != DIDIT) || (paramArray[0].Value != 1))
return AT_ECMDERROR;
// Clear UPServer;
GSMmemset(ptrProxyInfo, 0x00 , sizeof(ProxyInfo));
for( i=0 ; i < kNumWAPProxies ; i++)
{
NVM_Write( E2P_UPSERVER(UP_SIMIndex, i), ptrProxyInfo );
GSMmemcpy(&NW_Proxies[i], ptrProxyInfo, sizeof(ProxyInfo));
}
NVM_Write( E2P_CHECK_UP(0), &NvmGoodBlock );
GSMFree(ptrProxyInfo);
return DIDIT;
}
/*- Local Functions --------------------------------------------------------- */
/* Command for Hardware ID
/* Name: HndlATrHWID
/* Type: Read
/* Using : AT+HWID?
/* Desc : Hardware ID 甫 佬绢柯促.
/* Returns: OK or ERROR
/* Note :
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATrHWID(void)
{
INT8 *str0 = ( INT8 * ) GSMMalloc( 125 );
NVM_Read( E2P_HWID, str0 );
str0[16]='\0';
ATSendReply( str0 );
GSMFree( str0 );
// ATSendReply( "GetHWId:DONE" );
return DIDIT;
}
/*- Local Functions --------------------------------------------------------- */
/* Command for Hardware ID
/* Name: HndlATsHWID
/* Type: Set
/* Using : AT+HWID = "<HW ID>"
/* Desc : Hardware ID 甫 技泼茄促.
/* Returns: OK or ERROR
/* Note : <HW ID> -String
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsHWID(INT8 *paramStrPtr)
{
UINT16 stringLen;
NVMMmiCal_t MmiCal;
UINT8 buff;
UINT8 nFinal;
ATCMD_RESULT result;
PARAMETER_RECORD paramArray[1];
ParameterStructInit(paramArray, 1);
result = ParseForNOptIntAndString( paramStrPtr, 1, paramArray, &nFinal );
if((result != DIDIT) || (paramArray[0].ParamType != ATCMD_PARAMTYPE_STRING))
return AT_ECMDERROR;
stringLen = paramArray[0].String.Len;
if ( stringLen > sizeof(MmiCal.HWId) )
stringLen = sizeof(MmiCal.HWId);
GSMmemset(MmiCal.HWId, 0x00, sizeof(MmiCal.HWId)); /* garbage value reset */
GSMmemcpy(MmiCal.HWId, paramArray[0].String.Buffer, stringLen);
NVM_Write(E2P_HWID,MmiCal.HWId);
// ATSendReply( "SetHWId:DONE" );
return DIDIT;
}
/*- Local Functions --------------------------------------------------------- */
/* Command for Hardware Rev.
/* Name: HndlATrHWREV
/* Type: Read
/* Using : AT+HWREV?
/* Desc : Hardware version 阑 佬绢柯促.
/* Returns: OK or ERROR
/* Note :
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATrHWREV(void)
{
INT8 *str0 = ( INT8 * ) GSMMalloc( 125 );
INT8 *str1 = ( INT8 * ) GSMMalloc( 125 );
NVM_Read( E2P_HWREV, str0 );
str0[8]='\0';
GSMsprintf(str1,"hwrev:%s", str0);
ATSendReply( str0 );
GSMFree( str0 );
GSMFree( str1 );
// ATSendReply( "GetHWRev:DONE" );
return DIDIT;
}
/*- Local Functions --------------------------------------------------------- */
/* Command for Hardware Rev.
/* Name: HndlATsHWREV
/* Type: Set
/* Using : AT+HWREV="<value1>", <value2>
/* Desc : Hardware version 阑 setting 茄促.
/* Returns: OK or ERROR
/* Note : <value1> - String
/* <value2> - Number
/* ------------------------------------------------------------------------*/
ATCMD_RESULT HndlATsHWREV(INT8 *paramStrPtr)
{
UINT16 stringLen;
NVMMmiCal_t MmiCal;
UINT8 buff;
UINT8 nFinal;
ATCMD_RESULT result;
PARAMETER_RECORD paramArray[2];
ParameterStructInit(paramArray, 2);
result = ParseForNOptIntAndString( paramStrPtr, 2, paramArray, &nFinal );
if((paramArray[0].ParamType != ATCMD_PARAMTYPE_STRING) || \
(paramArray[1].ParamType != ATCMD_PARAMTYPE_NUMERIC))
return AT_ECMDERROR;
stringLen = paramArray[0].String.Len;
if ( stringLen > sizeof(MmiCal.HWRev) )
stringLen = sizeof(MmiCal.HWRev);
GSMmemset(MmiCal.HWRev, 0x00, sizeof(MmiCal.HWRev)); /* garbage value reset */
GSMmemcpy(MmiCal.HWRev, paramArray[0].String.Buffer, stringLen);
NVM_Write(E2P_HWREV,MmiCal.HWRev);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -