身份证读卡器标准接口使用

#ifndef __READ_CARD_INFO_H
#define __READ_CARD_INFO_H
#include <string>

class CardInfo
{
public:
	std::wstring name;
	std::wstring sex;
	std::wstring national;
	std::wstring birthData;
	std::wstring residenceAddress;
	std::wstring identityCardNo;
	std::wstring organIssue;
	std::wstring validStartDay;
	std::wstring validEndDay;
};
class ReadCardInfo 
{
public:
	ReadCardInfo();
	~ReadCardInfo();

	std::wstring GetNationName(int number);

	bool ReadCard(CardInfo &info);
private:
	void InitNationName();
	void GetCardInfo(unsigned char *Msg, int MsgLen);
	void WltChangeToBmpFile(unsigned char* pphotoMsg, int len);

public:
	bool m_bExit;
	bool m_bReadCardSucc;
	CardInfo m_cardInfo;

private:
	int m_commPort;
	bool m_bClosePort;
	std::wstring m_nationNameVec[100];
};
#endif


#include "stdafx.h"
#include "ReadCardInfo.h"
#include "log.h"
#include "sdtapi.h"
#include "WltRS.h"

ReadCardInfo::ReadCardInfo() 
{

	m_bExit = false;
	m_bClosePort = true;
	m_commPort = 1001; // usb口1001

	InitNationName();
}

ReadCardInfo::~ReadCardInfo()
{
	m_bExit = true;
}

bool ReadCardInfo::ReadCard(CardInfo &info)
{
	int ret = -1;
	if (m_bClosePort)
	{
		ret = SDT_OpenPort(m_commPort);
		if (ret == 0x90) //打开成功
		{
			m_bClosePort = false;
		}
	}

	int iIfOpen = 0; //是否需要打开端口 
	unsigned char pucManaInfo[4] = { 0 }; //证件芯片管理号
	ret = SDT_StartFindIDCard(m_commPort, pucManaInfo, iIfOpen);
	if (ret != 0x9f) 
	{
		m_bReadCardSucc = false;
		return false;
	}

	unsigned char pucManaMsg[8] = 
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值