MyException - 我的异常网
当前位置:我的异常网» VC/MFC » 怎样让身份证读卡器(神思二代)保持正常读卡状态?

怎样让身份证读卡器(神思二代)保持正常读卡状态?OnTimer()有关问题

www.myexceptions.net  网友分享于:2013-04-10  浏览:27次
怎样让身份证读卡器(神思二代)保持正常读卡状态?OnTimer()问题
现有程序是这样的:

void CIdCardDlg::OnTimer(UINT nIDEvent) 
{
userReadCard() ;//读身份证信息
UpdateData(FALSE);

CDialog::OnTimer(nIDEvent);
}
计时器设定为:SetTimer( MAIN_SEEKED_CARD_TIMER, 7000, NULL ) 

结果是:
         读卡器不管有没有放身份证,工作灯一直闪烁,不断在读卡;



我希望实现的效果是:
    
       1、读卡器进入读卡状态
       2、放卡时,读卡器读取身份证信息;只要卡不拿走,读卡器就不作出反应;
       3、卡拿走时,读卡器进入读卡状态
       4、重复2、3步骤
OnTimer()  身份证读卡器 神思二代 OnTimer() 刷卡

------解决方案--------------------
根据复位是否成功来判断有没有卡。
------解决方案--------------------

while(true)
{
    do
    {  //判断卡的状态 没有卡,延时一下,循环。
     }while(x)
    do
     {
          //读取卡信息,返回所需要的值
     }while(false)
    do
    {
      // 判断卡的状态,有卡 延时一下,在这里循环
    }while(X)

}

我觉的单独放一条线程还是比较好的
------解决方案--------------------
这样是不行的,
人家硬件设置好了,读卡时间限制的!
多长时间没读到卡会失败的!
每两次读卡时间间隔设置

------解决方案--------------------
void CIdCardDlg::OnTimer(UINT nIDEvent) 
{
  switch (iState)
 {
   case 1:
    {
    iState=XX
    }
   case 2:
   {
    iState=XX

    }
   case 3:
  {
   iState=XX

  }
  }
}
维护 卡iState 状态  根据不同状态做不同的处理  

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有