📄 dlg15693.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 + -