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,7 +204,6 @@ void SNBase::UpdateUICountResult(WriteNvram_Status_e eWriteStatus)
204 g_pMainDlg->SetDlgItemText(IDC_COUNT_FAIL, strFail); 204 g_pMainDlg->SetDlgItemText(IDC_COUNT_FAIL, strFail);
205 205
206 #if 1 206 #if 1
207 -  
208 g_pMainDlg->SetDlgItemText(IDC_RSLT_SW, g_pMainDlg->myrslt_sw); 207 g_pMainDlg->SetDlgItemText(IDC_RSLT_SW, g_pMainDlg->myrslt_sw);
209 g_pMainDlg->SetDlgItemText(IDC_RSLT_CFT, g_pMainDlg->myrslt_cft); 208 g_pMainDlg->SetDlgItemText(IDC_RSLT_CFT, g_pMainDlg->myrslt_cft);
210 g_pMainDlg->SetDlgItemText(IDC_RSLT_SMT, g_pMainDlg->myrslt_smt); 209 g_pMainDlg->SetDlgItemText(IDC_RSLT_SMT, g_pMainDlg->myrslt_smt);
@@ -401,10 +400,14 @@ bool SNBase::Check_some_barcode(const char* strBarcode) @@ -401,10 +400,14 @@ bool SNBase::Check_some_barcode(const char* strBarcode)
401 { 400 {
402 g_pMainDlg->myrslt_cft =_T("PASS"); 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 g_pMainDlg->myrslt_cft =_T("Fail"); 405 g_pMainDlg->myrslt_cft =_T("Fail");
407 } 406 }
  407 + else
  408 + {
  409 + g_pMainDlg->myrslt_cft =_T("UnTested");
  410 + }
408 411
409 return true; 412 return true;
410 413
@@ -100,6 +100,49 @@ void SmartPhoneSN::SPInit() @@ -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 META_RESULT SmartPhoneSN::WriteNvramLoop() 146 META_RESULT SmartPhoneSN::WriteNvramLoop()
104 { 147 {
105 MTRACE (g_hEBOOT_DEBUG, "SmartPhoneSN::WriteNvramLoop() start..."); 148 MTRACE (g_hEBOOT_DEBUG, "SmartPhoneSN::WriteNvramLoop() start...");
@@ -219,12 +262,14 @@ META_RESULT SmartPhoneSN::WriteNvramLoop() @@ -219,12 +262,14 @@ META_RESULT SmartPhoneSN::WriteNvramLoop()
219 char a_imei_ary2[16]; 262 char a_imei_ary2[16];
220 char tmpBuf1[20] = {0}; 263 char tmpBuf1[20] = {0};
221 char tmpBuf2[20] = {0}; 264 char tmpBuf2[20] = {0};
222 - 265 + CString IMEI1_validity;
  266 + CString IMEI2_validity;
  267 +
223 iRet = REQ_ReadModem_NVRAM_Start(WRITE_IMEI, tmpBuf1, 1); 268 iRet = REQ_ReadModem_NVRAM_Start(WRITE_IMEI, tmpBuf1, 1);
224 iRet2 = REQ_ReadModem_NVRAM_Start(WRITE_IMEI, tmpBuf2, 2); 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 if (iRet == META_SUCCESS || iRet2 == META_SUCCESS) 275 if (iRet == META_SUCCESS || iRet2 == META_SUCCESS)
@@ -246,13 +291,53 @@ META_RESULT SmartPhoneSN::WriteNvramLoop() @@ -246,13 +291,53 @@ META_RESULT SmartPhoneSN::WriteNvramLoop()
246 } 291 }
247 a_imei_ary[15] = 0; 292 a_imei_ary[15] = 0;
248 a_imei_ary2[15] = 0; 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 spNextStage = SP_END_STAGE; 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 else 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 UpdateUIMsg("IMEI read fail"); 341 UpdateUIMsg("IMEI read fail");
257 spNextStage = SP_END_STAGE; 342 spNextStage = SP_END_STAGE;
258 } 343 }
@@ -66,6 +66,7 @@ protected: @@ -66,6 +66,7 @@ protected:
66 virtual META_RESULT SwitchMDByIndex(UINT MDIndex); 66 virtual META_RESULT SwitchMDByIndex(UINT MDIndex);
67 67
68 virtual int GetSPModemInfo_Ex(); 68 virtual int GetSPModemInfo_Ex();
  69 + virtual int getLastIMEIdigit(CString strIMEI);
69 virtual SPMETA_DLL::META_RESULT QueryDBFromDUT(); 70 virtual SPMETA_DLL::META_RESULT QueryDBFromDUT();
70 virtual SPMETA_DLL::META_RESULT GetAPDBFromDUT(); 71 virtual SPMETA_DLL::META_RESULT GetAPDBFromDUT();
71 virtual SPMETA_DLL::META_RESULT GetMDDBFromDUT(); 72 virtual SPMETA_DLL::META_RESULT GetMDDBFromDUT();
Please register or login to post a comment