IC读卡器闲工夫一段时间后读卡无反应,必须重新插拔才可以,附有源码

IC读卡器空闲一段时间后读卡无反应,必须重新插拔才可以,附有源码
本帖最后由 buleysh 于 2014-08-23 15:52:56 编辑
int CKxIDReader::ICXKP_select(unsigned char *pCardData)
{
unsigned char nRecvBuf[33];
DWORD dwBytesWrite;
bool rStat;

int ICKeyMode = 0;
int ICSector = 10;
CString ICKey = _T("A0B1C2D3E4F5");

unsigned char key[7];
memset(key,0,7);
a_hex(ICKey.GetBuffer(12),key,12);
ICKey.ReleaseBuffer();

rf_reset(m_hPort,5);//射频头复位

if (rf_load_key(m_hPort,ICKeyMode,ICSector,key))
return IC_COMM_CHKSUM_ERR;//装载密码失败

unsigned long snr;
if (rf_card(m_hPort,1,&snr))
return IC_COMM_NO_DATA_RECV;//选卡失败

if (rf_authentication(m_hPort,ICKeyMode,ICSector))
return IC_COMM_CHKSUM_ERR;//密码错误

unsigned char temp[33];
memset(temp,0,33);

rf_beep(m_hPort,10);
if (rf_read(m_hPort,ICSector*4+1,temp))
return IC_COMM_DATA_ERR;//读取失败
//rf_beep(m_hPort,100);


hex_a(temp,(char*)nRecvBuf,16);

int i ;
for ( i = 0;nRecvBuf[i] != 'f'&&nRecvBuf[i] != 'F';i++)
{
m_RecvBuf[i] = nRecvBuf[i];
}

//dwBytesWrite = i;
rf_halt(m_hPort);
return IC_COMM_SUCCESS;
}



明华澳汉IC卡读卡器,当程序运行一段时间没有刷卡,再刷卡读卡器没有反应,必须重新插拔才能再次读卡,是什么原因?与射频头复位有关吗?
------解决方案--------------------
不能追踪一下程序么?
------解决方案--------------------
外置设备不都应该隔一段时间给它发个心跳包的吗?也有可能设备会自动给电脑发心跳包~~~
------解决方案--------------------
外部设备在长时间不使用的情况下会被windows关闭以节约电源。
我的电脑-右键-管理-设备管理-找到目标设备-右键-属性-电源管理-取消“允许计算机关闭此设备以节约电源”的勾选-确定
------解决方案--------------------
我好奇怪哦,
这些问题,第一反应不是应该问供应商吗?