Commit 855fdc2165429acf67eba24b9282b1ef349375f7

Authored by Echo
1 parent 457582ed

1.cft的状态:10P:pass;01F:fail;other:untested;2.判断IMEI校验合法:pass不合法为:Fail,为空时:Untested,

... ... @@ -204,7 +204,6 @@ void SNBase::UpdateUICountResult(WriteNvram_Status_e eWriteStatus)
204 204 g_pMainDlg->SetDlgItemText(IDC_COUNT_FAIL, strFail);
205 205
206 206 #if 1
207   -
208 207 g_pMainDlg->SetDlgItemText(IDC_RSLT_SW, g_pMainDlg->myrslt_sw);
209 208 g_pMainDlg->SetDlgItemText(IDC_RSLT_CFT, g_pMainDlg->myrslt_cft);
210 209 g_pMainDlg->SetDlgItemText(IDC_RSLT_SMT, g_pMainDlg->myrslt_smt);
... ... @@ -401,10 +400,14 @@ bool SNBase::Check_some_barcode(const char* strBarcode)
401 400 {
402 401 g_pMainDlg->myrslt_cft =_T("PASS");
403 402 }
404   - else
  403 + else if(strBarcode[60] == '0' && strBarcode[61] == '1' && strBarcode[62] == 'F')
405 404 {
406 405 g_pMainDlg->myrslt_cft =_T("Fail");
407 406 }
  407 + else
  408 + {
  409 + g_pMainDlg->myrslt_cft =_T("UnTested");
  410 + }
408 411
409 412 return true;
410 413
... ...
... ... @@ -100,6 +100,49 @@ void SmartPhoneSN::SPInit()
100 100 }
101 101 }
102 102
  103 +int SmartPhoneSN::getLastIMEIdigit(CString strIMEI)
  104 +{
  105 + int imei1 = (strIMEI[0]-'0');
  106 + int imei2 = 2*(strIMEI[1]-'0');
  107 + int imei3 = (strIMEI[2]-'0');
  108 + int imei4 = 2*(strIMEI[3]-'0');
  109 + int imei5 = (strIMEI[4]-'0');
  110 + int imei6 = 2*(strIMEI[5]-'0');
  111 + int imei7 = (strIMEI[6]-'0');
  112 + int imei8 = 2*(strIMEI[7]-'0');
  113 + int imei9 = (strIMEI[8]-'0');
  114 + int imei10 = 2*(strIMEI[9]-'0');
  115 + int imei11 = (strIMEI[10]-'0');
  116 + int imei12 = 2*(strIMEI[11]-'0');
  117 + int imei13 = (strIMEI[12]-'0');
  118 + int imei14 = 2*(strIMEI[13]-'0');
  119 +
  120 + int ret = imei1 +
  121 + (imei2/10)+
  122 + (imei2%10)+
  123 + imei3+
  124 + (imei4/10)+
  125 + (imei4%10)+
  126 + imei5+
  127 + (imei6/10)+
  128 + (imei6%10)+
  129 + imei7+
  130 + (imei8/10)+
  131 + (imei8%10)+
  132 + imei9+
  133 + (imei10/10)+
  134 + (imei10%10)+
  135 + imei11+
  136 + (imei12/10)+
  137 + (imei12%10)+
  138 + imei13+
  139 + (imei14/10)+
  140 + (imei14%10);
  141 +
  142 + return (10 - ret % 10) % 10;
  143 +}
  144 +
  145 +
103 146 META_RESULT SmartPhoneSN::WriteNvramLoop()
104 147 {
105 148 MTRACE (g_hEBOOT_DEBUG, "SmartPhoneSN::WriteNvramLoop() start...");
... ... @@ -219,12 +262,14 @@ META_RESULT SmartPhoneSN::WriteNvramLoop()
219 262 char a_imei_ary2[16];
220 263 char tmpBuf1[20] = {0};
221 264 char tmpBuf2[20] = {0};
222   -
  265 + CString IMEI1_validity;
  266 + CString IMEI2_validity;
  267 +
223 268 iRet = REQ_ReadModem_NVRAM_Start(WRITE_IMEI, tmpBuf1, 1);
224 269 iRet2 = REQ_ReadModem_NVRAM_Start(WRITE_IMEI, tmpBuf2, 2);
225 270
226   - if(tmpBuf1[0]== -1) iRet = META_FAILED;
227   - if(tmpBuf2[0]== -1) iRet2 =META_FAILED;
  271 + if(tmpBuf1[0]== -1) iRet = META_FAILED;
  272 + if(tmpBuf2[0]== -1) iRet2 =META_FAILED;
228 273
229 274
230 275 if (iRet == META_SUCCESS || iRet2 == META_SUCCESS)
... ... @@ -246,13 +291,53 @@ META_RESULT SmartPhoneSN::WriteNvramLoop()
246 291 }
247 292 a_imei_ary[15] = 0;
248 293 a_imei_ary2[15] = 0;
249   - g_pMainDlg->GetDlgItem(IDC_RSLT_WRITE_IMEI)->SetWindowText(CString(a_imei_ary)+","+CString(a_imei_ary2));
250   - UpdateUIMsg("IMEI read success!!!");
  294 +
  295 + if(iRet == META_SUCCESS)
  296 + {
  297 + if((a_imei_ary[14]-'0') == getLastIMEIdigit(CString(a_imei_ary)))
  298 + {
  299 + IMEI1_validity = _T("PASS");
  300 + }
  301 + else
  302 + {
  303 + IMEI1_validity = _T("Fail");
  304 + }
  305 + }
  306 + else
  307 + {
  308 + IMEI1_validity = _T("UnTested");;
  309 + }
  310 +
  311 + if(iRet2 == META_SUCCESS )
  312 + {
  313 + if((a_imei_ary2[14]-'0') ==getLastIMEIdigit(CString(a_imei_ary2)))
  314 + {
  315 + IMEI2_validity = _T("PASS");
  316 + }
  317 + else
  318 + {
  319 + IMEI2_validity = _T("Fail");
  320 + }
  321 + }
  322 + else
  323 + {
  324 + IMEI2_validity = _T("UnTested");;
  325 + }
  326 +
  327 + g_pMainDlg->GetDlgItem(IDC_RSLT_WRITE_IMEI)->SetWindowText(IMEI1_validity+","+IMEI2_validity);
  328 +
  329 +
  330 + // UpdateUIMsg("IMEI read success!!!");
251 331 spNextStage = SP_END_STAGE;
252 332 }
  333 + else if (iRet == META_FAILED && iRet2 == META_FAILED)
  334 + {
  335 + g_pMainDlg->GetDlgItem(IDC_RSLT_WRITE_IMEI)->SetWindowText("UnTested,UnTested");
  336 + spNextStage = SP_END_STAGE;
  337 + }
253 338 else
254 339 {
255   - g_pMainDlg->GetDlgItem(IDC_RSLT_WRITE_IMEI)->SetWindowText("fail!!!");
  340 + g_pMainDlg->GetDlgItem(IDC_RSLT_WRITE_IMEI)->SetWindowText("Fail");
256 341 UpdateUIMsg("IMEI read fail");
257 342 spNextStage = SP_END_STAGE;
258 343 }
... ...
... ... @@ -66,6 +66,7 @@ protected:
66 66 virtual META_RESULT SwitchMDByIndex(UINT MDIndex);
67 67
68 68 virtual int GetSPModemInfo_Ex();
  69 + virtual int getLastIMEIdigit(CString strIMEI);
69 70 virtual SPMETA_DLL::META_RESULT QueryDBFromDUT();
70 71 virtual SPMETA_DLL::META_RESULT GetAPDBFromDUT();
71 72 virtual SPMETA_DLL::META_RESULT GetMDDBFromDUT();
... ...
Please register or login to post a comment