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("端口未打开!"));

}

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