⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deviceinfo.cpp

📁 磁卡读写器编程
💻 CPP
字号:
/*********************************************************************
 *   Designed by xiaohuiyang 2002.03.15    E-mail: yxh2001@21cn.com  * 
 *********************************************************************/
// DeviceInfo.cpp: implementation of the CDeviceInfo class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "DeviceInfo.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
extern void TraceDebug(char *pchData, int len);

CDeviceInfo::CDeviceInfo()
{
	InitingKDE = 0;
}

CDeviceInfo::~CDeviceInfo()
{
	InitingKDE = 0;
}

short CDeviceInfo::CheckKD6006(char TrackMode)
{
    short ret;
	static char ClrBuf = 0;

	ret = KD6006.zWaitReadTrack(TrackMode);
	if(ret == _OK_RCV)
	{
		strcpy(chTrack2, KD6006.Track2);
		strcpy(chTrack3, KD6006.Track3);
		mDeviceType = _DEV_KD6006_OK;
	}
	else if(ret != _NO_DATA)
	{
		mDeviceType = _DEV_KD6006_ERR;
	}

	if(ret != _OK_RCV)
	{
		ClrBuf = 1;
		if(ClrBuf)
		{
			memset(chTrack2, '\0', 256);
			memset(chTrack3, '\0', 256);
			ClrBuf = 0;
		}
	}
	
	return ret;
}

short CDeviceInfo::InitKDE4787()
{
	short ret;
	static keep = 0;
	char  KDEInfo[50];

	ret = kde4787.gOpenKDMCom();

	memset(KDEInfo, '\0', 50);
	sprintf(KDEInfo, "Open KDE COM ret=%d", ret);
	TraceDebug(KDEInfo, 0);

	if(ret == _NO_DEVICE)
	{
		return ret;
	}
	else if(ret)
	{
		return ret;  //_ERR_KDE;
	}

	if(InitingKDE)
	{
		return _DEV_OK;
	}

	ret = kde4787.KDM_Initial();
	if(ret < _DEV_OK)
	{
		TraceDebug("KDM initial fail!", 0);
		return ret;  //_ERR_KDE;
	}
	TraceDebug("KDM initial OK!", 0);

	InitingKDE = 1;
	return _DEV_OK;
}

short CDeviceInfo::CheckKDE4787()
{
    short ret = -1;
	char Trk1[256];

	ret = kde4787.MagneticRead123(0, Trk1, chTrack2, chTrack3);
	if(ret == _DEV_OK)
		mDeviceType = _DEV_KDE4787_OK;
	else 
	{
		mDeviceType = _DEV_KDE4787_ERR;
		memset(chTrack2, '\0', 256);
		memset(chTrack3, '\0', 256);
	}
	return ret;
}

short CDeviceInfo::CheckICKDE4787()
{
    short ret, ret1 = -1;
	char ATR[128];
	memset(ATR, '\0', 128);

    ret = kde4787.KDMStatusRequest();
	if(ret == _KDE_CARD_INSIDE)
    {
	    ret1 = kde4787.IcCardPower(1, ATR);
	    if(ret1 >= _DEV_OK)
	        mDeviceType = _DEV_KDE4787_OK;
	}
	else if(ret == _KDE_CARD_ATGATE)
	{
    	ret1 = kde4787.KDM_EntryCard(2);
		if(ret1 == _KDE_CARD_INSIDE)
        {
		    ret1 = kde4787.IcCardPower(1, ATR);
		    if(ret1 >= _DEV_OK)
			{
		        mDeviceType = _DEV_KDE4787_OK;
			}
		}
	}
	else 
	{
		mDeviceType = _DEV_KDE4787_ERR;
	}

	return ret;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -