?? rwtagdlg.cpp
字號:
// RWTagDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Mifare.h"
#include "RWTagDlg.h"
#include "zlg500.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRWTagDlg dialog
CRWTagDlg::CRWTagDlg(CWnd* pParent /*=NULL*/)
: CDialog(CRWTagDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CRWTagDlg)
m_form = 1;
//}}AFX_DATA_INIT
szpwd[0] = 0xff;
szpwd[1] = 0xff;
szpwd[2] = 0xff;
szpwd[3] = 0xff;
szpwd[4] = 0xff;
szpwd[5] = 0xff;
szpwd[6] = 0xff;
}
void CRWTagDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRWTagDlg)
DDX_Control(pDX, IDC_COMBO3, m_ComboBlockNum2);
DDX_Control(pDX, IDC_COMBO2, m_ComboBlockNum);
DDX_Control(pDX, IDC_COMBO1, m_ComboReader);
DDX_Radio(pDX, IDC_RADIO1, m_form);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRWTagDlg, CDialog)
//{{AFX_MSG_MAP(CRWTagDlg)
ON_BN_CLICKED(IDC_TAG_INIT, OnTagInit)
ON_BN_CLICKED(IDC_TAG_WRITE, OnTagWrite)
ON_BN_CLICKED(IDC_TAG_READ, OnTagRead)
ON_BN_CLICKED(IDC_LIGHT, OnLight)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRWTagDlg message handlers
BOOL CRWTagDlg::OnInitDialog()
{
CDialog::OnInitDialog();
if(zlg500_ReadAddr(cardaddrlen,cardaddr)==1) //取得線上的讀卡器的地址
{
AfxMessageBox("取得線上的讀卡器的地址失敗!"); //如果失敗則返回
}
CString str;
for(int i=0;i<cardaddrlen;i++)
{
str.Format("%x",cardaddr[i]);
m_ComboReader.AddString(str);
}
m_ComboReader.SetCurSel(0);
CString str2;
for(int j=0;j<64;j++)
{
str2.Format("%d",j);
m_ComboBlockNum.AddString(str2);
}
m_ComboBlockNum.SetCurSel(1);
for(j=0;j<64;j++)
{
str2.Format("%d",j);
m_ComboBlockNum2.AddString(str2);
}
m_ComboBlockNum2.SetCurSel(1);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CRWTagDlg::OnTagInit()
{
// TODO: Add your control notification handler code here
for(int i=0;i<16;i++)
{
if(zlg500_LoadPwd(cardaddr[0],0,i,szpwd)==1) //往第0 密鑰區裝載密鑰A
{
MessageBox("加載密鑰失敗!");
}
Sleep(2);
}
if(zlg500_Request(cardaddr[0],1,type)==1) //對第一個讀卡器進行操作
{
if(zlg500_Request(cardaddr[0],1,type)==1)
{
MessageBox("請求讀卡器失敗!");
}
}
Sleep(2);
if(zlg500_Anticoll(cardaddr[0],0,snr)==1) //進行防碰撞選擇成功則返回卡號
{
MessageBox("防碰撞失敗!");
}
Sleep(2);
if(zlg500_Select(cardaddr[0],snr,size)==1) //選擇卡
{
MessageBox("選擇標簽失敗!");
}
Sleep(2);
/* if(zlg500_AuthenPwd(cardaddr[0],0,0)==1) //驗證第0 扇區的密鑰A
{
MessageBox("驗證密鑰失敗!");
}*/
}
void CRWTagDlg::OnTagWrite()
{
// TODO: Add your control notification handler code here
writeblocknum = m_ComboBlockNum.GetCurSel();
m_ComboBlockNum2.SetCurSel(writeblocknum);
if(zlg500_Request(cardaddr[0],1,type)==1) //對第一個讀卡器進行操作
{
if(zlg500_Request(cardaddr[0],1,type)==1)
{
MessageBox("無法和讀卡器建立連接!");
zlg500_SetControl(cardaddr[0],0x07,10,10,10);
}
}
Sleep(2);
if(zlg500_Anticoll(cardaddr[0],0,snr)==1) //進行防碰撞選擇成功則返回卡號
{
MessageBox("防碰撞失敗!");
}
Sleep(2);
if(zlg500_Select(cardaddr[0],snr,size)==1) //選擇卡
{
MessageBox("選擇標簽失敗!");
}
Sleep(2);
int KeyBlock;
KeyBlock = writeblocknum/4;
if(zlg500_AuthenPwd(cardaddr[0],0,KeyBlock)==1) //驗證第0 扇區的密鑰A
{
MessageBox("驗證密鑰失敗!");
}
char szdata[100];
int tmp;
char sztmp[3]={0};
GetDlgItem(IDC_EDIT1)->GetWindowText(szdata,99);
for(int i=0;i<16;i++)
{
memcpy(sztmp,szdata+i*3,2);
sscanf(sztmp,"%x",&tmp);
writedata[i]=tmp;
}
// GetDlgItem(IDC_EDIT1)->GetWindowText(writedata,16);
Sleep(2);
writeblocknum = m_ComboBlockNum.GetCurSel();
if(zlg500_WriteBlock(cardaddr[0],writeblocknum,writedata)==1) //往第二塊寫入數據
{
MessageBox("寫入數據失敗!");
zlg500_SetControl(cardaddr[0],0x07,10,10,10);
}
Sleep(2);
}
void CRWTagDlg::OnTagRead()
{
// TODO: Add your control notification handler code here
readblocknum = m_ComboBlockNum2.GetCurSel();
writeblocknum = m_ComboBlockNum.GetCurSel();
/* if(zlg500_Request(cardaddr[0],1,type)==1) //對第一個讀卡器進行操作
{
if(zlg500_Request(cardaddr[0],1,type)==1)
{
MessageBox("請求讀卡器失敗!");
}
}
Sleep(2);
if(zlg500_Anticoll(cardaddr[0],0,snr)==1) //進行防碰撞選擇成功則返回卡號
{
MessageBox("防碰撞失敗!");
}
Sleep(2);
if(zlg500_Select(cardaddr[0],snr,size)==1) //選擇卡
{
MessageBox("選擇標簽失敗!");
}
Sleep(2);*/
// if(readblocknum != writeblocknum)
// {
int KeyBlock;
KeyBlock = readblocknum/4;
if(zlg500_AuthenPwd(cardaddr[0],0,KeyBlock)==1) //驗證第0 扇區的密鑰A
{
MessageBox("驗證密鑰失敗!");
}
// }
// readblocknum = m_ComboBlockNum2.GetCurSel();
if(zlg500_ReadBlock(cardaddr[0],readblocknum,readdata)==1) //讀取第二塊的數據
{
MessageBox("讀取數據失敗!");
zlg500_SetControl(cardaddr[0],0x07,10,10,10);
}
CString str1;
CString str = "";
UpdateData();
if(m_form == 0)
{
for(int i=0;i<16;i++)
{
str1.Format("%d",readdata[i]);
str += str1;
str += " ";
}
}
if(m_form == 1)
{
for(int i=0;i<16;i++)
{
str1.Format("%x",readdata[i]);
str += str1;
str += " ";
}
}
// MessageBox(str);
GetDlgItem(IDC_EDIT2)->SetWindowText(str);
}
void CRWTagDlg::OnLight()
{
// TODO: Add your control notification handler code here
zlg500_SetControl(cardaddr[0],0x07,10,10,10);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -