for()循環嵌套while()循環

void  ReadMsr()

{

if(comFlag)     //端口判斷,(bool取值false和true,是0和1的區別;BOOL取值FALSE和TRUE,是0和非0的區別)
    {
        //循環次數
        CString num;
        GetDlgItem(IDC_EDIT_NUM1)->GetWindowTextW(num);    
        int a=_ttoi(num);
        for(int i=0;i<a;i++)
        {
            bool flag=true;
            int flagPaper;
            char beel[]={0x07};//響鈴
            char duiqi[]={0x1b,0x7d,0x30,0x50};//對齊
            int    startTime1 = GetTickCount();   //獲取當前系統時間
            flagPaper = PaperStatus(); ////獲取紙張狀態
            while (flagPaper != 4)                //打印介質沒有完全插入機內,進入循環
            {
                Sleep(500);
                command(beel, sizeof(beel));  //發送響鈴
                flagPaper = PaperStatus();
                if (flagPaper == 2 || flagPaper == 3)      //打印介質沒有完全插入機內
                {
                    InsertPaper();
                    flag = true;
                    break;
                }
                if(flagPaper==4)
                {
                    flag = true;
                    break;
                }

                if (GetTickCount() - startTime1 > 30*1000)   //超時,返回超時信息,並報打印機接收命令失敗
                {
                    MessageBox(_T("等待超時!"));
                    flag = false;
                    break;
                }
             }
            
            Sleep(500);
            command(beel, sizeof(beel));  //響鈴
            command(duiqi, sizeof(duiqi));  //對齊
            char rData[200]={0};
            CString data;
            if(flag)
            {
                if(!MSR(0,rData,sizeof(rData)))
                {
                    GetDlgItem(IDC_RESULT)->SetWindowTextW(_T("讀取數據失敗!"));
                }
                else
                {
                    CheckPrinterStatus(1);
                    data = rData;
                    GetDlgItem(IDC_MSR2_DATA)->SetWindowTextW(data);
                    GetDlgItem(IDC_RESULT)->SetWindowTextW(_T("讀取數據成功!"));
                    RetreatPaper();
                }
            }
        }

    }else
        GetDlgItem(IDC_RESULT)->SetWindowTextW(_T("端口未打開!"));

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章