Commit 855fdc2165429acf67eba24b9282b1ef349375f7
1 parent
457582ed
1.cft的状态:10P:pass;01F:fail;other:untested;2.判断IMEI校验合法:pass不合法为:Fail,为空时:Untested,
Showing
3 changed files
with
97 additions
and
8 deletions
| ... | ... | @@ -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