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

📄 dlg15693.cpp

📁 基于wince系统的RFID识别程序 支持多种RFID协议自动转化
💻 CPP
字号:
// Dlg15693.cpp : implementation file
//

#include "stdafx.h"
#include "mf_pad_demo.h"
#include "Dlg15693.h"
#include "mi.h"

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

/////////////////////////////////////////////////////////////////////////////
// Dlg15693 dialog


Dlg15693::Dlg15693(CWnd* pParent /*=NULL*/)
	: CDialog(Dlg15693::IDD, pParent)
{
	//{{AFX_DATA_INIT(Dlg15693)
	m_strTransmit = _T("");
	//}}AFX_DATA_INIT
}


void Dlg15693::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Dlg15693)
	DDX_Control(pDX, IDC_EDIT_DISP, m_editDisp);
	DDX_Text(pDX, IDC_EDIT_DISP, m_strTransmit);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Dlg15693, CDialog)
	//{{AFX_MSG_MAP(Dlg15693)
	ON_BN_CLICKED(IDC_BTN_INVENTORY, OnBtnInventory)
	ON_BN_CLICKED(IDC_BTN_READ, OnBtnRead)
	ON_BN_CLICKED(IDC_BTN_WRITE, OnBtnWrite)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Dlg15693 message handlers
extern HANDLE g_hComm;

void Dlg15693::OnBtnInventory() 
{
	// TODO: Add your control notification handler code here
	int receive;
	int DeviceAddress = 0;
	unsigned char snr[100],Cardnumber;
	CString strDsp,strTmp;

	if(g_hComm == INVALID_HANDLE_VALUE) 
	{
		m_editDisp.SetWindowText(_T("Pls open serial port first!"));
		return ;
	}

	receive=ISO15693_Inventory(g_hComm, DeviceAddress,
                                (unsigned char *)&Cardnumber,
                                (unsigned char *)snr);
	if(	receive)
	{
		m_editDisp.SetWindowText(_T("ISO15693_Inventory error\r\n!"));
		return;
	}else {
		m_editDisp.SetWindowText(_T("ISO15693_Inventory ok\r\n!"));
		m_editDisp.GetWindowText(strDsp);
		strTmp.Format(_T("Cardnumber:%d\r\n"),Cardnumber);
		strDsp += strTmp;
		strTmp.Format(_T("SN:%02x%02x%02x%02x\r\n"),snr[0],snr[1],snr[2],snr[3]);
		strDsp += strTmp;
		m_editDisp.SetWindowText(strDsp);
		return;
	}
}

void Dlg15693::OnBtnRead() 
{
	// TODO: Add your control notification handler code here
	int ret;
	int DeviceAddress = 0;
	unsigned char inf_mode = 0x01; //Idle模式
	unsigned char snr[100],Cardnumber;
	unsigned char     flags = 0x02;//  不带uid
	CString strDsp,strTmp;
	unsigned char     blk_addr = 0;
	unsigned char     num_blk = 1;
	unsigned char uid[4+1];
	unsigned char buffer[100];

	if(g_hComm == INVALID_HANDLE_VALUE) 
	{
		m_editDisp.SetWindowText(_T("Pls open serial port first!"));
		return ;
	}

	ret = API_ISO15693Read(g_hComm ,DeviceAddress,flags,blk_addr,num_blk,
                          (unsigned char *)uid, (unsigned char*)buffer);
	if(	ret)
	{
		m_editDisp.SetWindowText(_T("API_ISO15693Read error\r\n!"));
		return;
	}else {
		m_editDisp.SetWindowText(_T("API_ISO15693Read ok\r\n!"));
		m_editDisp.GetWindowText(strDsp);
		strTmp.Format(_T("Flag:%d\r\n"),buffer[0]);
		strDsp += strTmp;
		strTmp.Format(_T("SN:%02x%02x%02x%02x\r\n"),buffer[1],buffer[2],buffer[3],buffer[4]);
		strDsp += strTmp;
		m_editDisp.SetWindowText(strDsp);
		return;
	}
}

CString remove_space(CString str)
{
	CString ret_str,ret_str1;
	int i,len;
	int pos;
	len = str.GetLength();
	for(i=0,pos=0;i<len;i++)
	{
		if(str.GetAt(i)!=' ')
		{
		   ret_str +=str.GetAt(i) ;
		}
	}
	//while(ret_str.Find("||",0)!=-1) 
	//	ret_str.Replace("||","|0|");
    return ret_str;
}

void Dlg15693::OnBtnWrite() 
{
	// TODO: Add your control notification handler code here
	int ret;
	int DeviceAddress = 0;
	unsigned char inf_mode = 0x01; //Idle模式
	unsigned char snr[100],Cardnumber;
	unsigned char     flags = 0x02;//  不带uid
	CString strDsp,strTmp;
	unsigned char     blk_addr = 0;
	unsigned char     num_blk = 1;
	unsigned char uid[4+1];
	unsigned char buf[100];

	DWORD dwCharToWrite=0;
	int i,j;
	int HexSend = 1;
	CString	m_strTransmit;

	if(g_hComm == INVALID_HANDLE_VALUE) 
	{
		m_editDisp.SetWindowText(_T("Pls open serial port first!"));
		return ;
	}
	GetDlgItemText(IDC_EDIT_DISP,m_strTransmit);
	m_strTransmit = remove_space(m_strTransmit);
	if(!HexSend)
	{
		dwCharToWrite=(DWORD)m_strTransmit.GetLength();
	}
	else
	{
		for(i=0;i<m_strTransmit.GetLength()/2;i++)
		{
			if(((m_strTransmit.GetAt(i*2)>='0'&&m_strTransmit.GetAt(i*2)<='9')||(m_strTransmit.GetAt(i*2)>='A'&&m_strTransmit.GetAt(i*2)<='F'))&&((m_strTransmit.GetAt(i*2+1)>='0'&&m_strTransmit.GetAt(i*2+1)<='9')||(m_strTransmit.GetAt(i*2+1)>='A'&&m_strTransmit.GetAt(i*2+1)<='F')))
			{
				dwCharToWrite++;
			}
		}
	}
	
	if(dwCharToWrite!=0)
	{
		if(!HexSend)
		{			
			for(i=0;i<(int)dwCharToWrite;i++)
			{
				buf[i]=(char)m_strTransmit.GetAt(i);
			}
		}
		else
		{
			j=0;
			for(i=0;i<m_strTransmit.GetLength()/2;i++)
			{
				if(((m_strTransmit.GetAt(i*2)>='0'&&m_strTransmit.GetAt(i*2)<='9')||(m_strTransmit.GetAt(i*2)>='A'&&m_strTransmit.GetAt(i*2)<='F'))&&((m_strTransmit.GetAt(i*2+1)>='0'&&m_strTransmit.GetAt(i*2+1)<='9')||(m_strTransmit.GetAt(i*2+1)>='A'&&m_strTransmit.GetAt(i*2+1)<='F')))
				{
					if(m_strTransmit.GetAt(i*2+1)>='0'&&m_strTransmit.GetAt(i*2+1)<='9')
					{
						buf[j]=m_strTransmit.GetAt(i*2+1)-48;
					}
					else
					{
						buf[j]=m_strTransmit.GetAt(i*2+1)-55;
					}
					if(m_strTransmit.GetAt(i*2)>='0'&&m_strTransmit.GetAt(i*2)<='9')
					{
						buf[j]+=(m_strTransmit.GetAt(i*2)-48)*16;
					}
					else
					{
						buf[j]+=(m_strTransmit.GetAt(i*2)-55)*16;
					}
					j++;
				}
			}
		}
		ret = API_ISO15693Write(g_hComm ,DeviceAddress,flags,blk_addr,num_blk,
							  (unsigned char *)uid, (unsigned char*)buf);
		if(	ret)
		{
			m_editDisp.SetWindowText(_T("API_ISO15693Write error\r\n!"));
			return;
		}else {
			m_editDisp.SetWindowText(_T("API_ISO15693Write ok\r\n!"));
			return;
		}
	}else {
		m_editDisp.SetWindowText(_T("Please input valid data\r\n!"));
	}
}

⌨️ 快捷键说明

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