📄 writeepc.cpp
字号:
// WriteEPC.cpp : implementation file
//
#include "stdafx.h"
#include "VCsample.h"
#include "WriteEPC.h"
#include "XCRFAPI.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CWriteEPC dialog
CWriteEPC::CWriteEPC(CWnd* pParent /*=NULL*/)
: CDialog(CWriteEPC::IDD, pParent)
{
//{{AFX_DATA_INIT(CWriteEPC)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CWriteEPC::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CWriteEPC)
DDX_Control(pDX, IDCANCEL, m_btnCancelCtl);
DDX_Control(pDX, IDOK, m_btnOKCtl);
DDX_Control(pDX, IDC_STATIC_INFO, m_stcInfoCtl);
DDX_Control(pDX, IDC_EDIT_PASSWORD_WriteEPCData, m_edEpcPswCtl);
DDX_Control(pDX, IDC_EDIT_INFO_WriteEPCData, m_edWriteEpcDataCtl);
DDX_Control(pDX, IDC_COMBO_WRITEEPCLEN, m_cboWriteEpcLenCtl);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CWriteEPC, CDialog)
//{{AFX_MSG_MAP(CWriteEPC)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWriteEPC message handlers
void CWriteEPC::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
m_stcInfoCtl.SetWindowText ( "" );
int i;
CString szTemp, sz;
int len;
m_edWriteEpcDataCtl.GetWindowText ( szTemp );
szTemp.TrimLeft();
szTemp.TrimRight();
if ( szTemp.GetLength ( ) % 4 != 0
|| szTemp.GetLength ( ) == 0 )
{
sz = "Input data should be double-byte character (4 hexadecimal alphanumeric characters),Please input again!";//英文 2006-04-25
::AfxMessageBox ( sz );
szTemp = "";
m_edWriteEpcDataCtl.SetWindowText ( szTemp );
return;
}
len = szTemp.GetLength ( );
i = m_edWriteEpcDataCtl.GetLimitText ( );
if ( len != i )
{
sz = "Length error!Write data length is different from the data length in fact";
::AfxMessageBox ( sz );
szTemp = "";
m_edWriteEpcDataCtl.SetWindowText ( szTemp );
return;
}
m_edEpcPswCtl.GetWindowText ( szTemp );
szTemp.TrimLeft ( );
szTemp.TrimRight ( );
len = szTemp.GetLength();
if ( len != 8 )
{
sz = "The length of password error,Please input again!";
::AfxMessageBox ( sz );
szTemp = "";
m_edEpcPswCtl.SetWindowText ( szTemp );
return;
}
for ( i = 0; i < len ; i++ )
{
if ( theApp._atoi_j ( szTemp [ i ] ) == -1 )
{
sz = "Please input hexadecimal characters.";
::AfxMessageBox ( sz );
szTemp = "";
m_edEpcPswCtl.SetWindowText ( szTemp );
return;
}
}
memset ( m_pchPSW, 0, 5 );
m_edEpcPswCtl.GetWindowText ( szTemp );
szTemp.TrimLeft ( );
szTemp.TrimRight ( );
int ret = theApp.sz20x ( &szTemp, ( char * ) m_pchPSW );
if ( ret == -1 )
{
sz = "Please input hexadecimal characters.";
::AfxMessageBox ( sz );
szTemp = "";
m_edEpcPswCtl.SetWindowText ( szTemp );
return;
}
m_edWriteEpcDataCtl.GetWindowText ( szTemp );
szTemp.TrimLeft ( );
szTemp.TrimRight ( );
memset ( m_pchEPCData, 0 , sizeof ( m_pchEPCData ) );
ret = theApp.sz20x ( &szTemp, ( char * ) m_pchEPCData );
if ( ret == -1 )
{
sz = "Please input hexadecimal characters.";
::AfxMessageBox ( sz );
szTemp = "";
m_edWriteEpcDataCtl.SetWindowText ( szTemp );
return;
}
m_ucWriteEPCLen = ret/2;
SetEPCData ( );
// CDialog::OnOK();
}
BOOL CWriteEPC::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
int i;
CString szTemp;
m_cboWriteEpcLenCtl.ResetContent();
for ( i = 0; i < 0x0C; i = i + 2 )
{
szTemp.Format ( "%02d", 0x0C - i );
m_cboWriteEpcLenCtl.AddString ( szTemp ) ;
}
m_cboWriteEpcLenCtl.SetCurSel ( 0 );
m_edWriteEpcDataCtl.SetLimitText ( 24 );
m_edEpcPswCtl.SetLimitText ( 8 );
m_edWriteEpcDataCtl.EnableWindow ( true );
m_cboWriteEpcLenCtl.EnableWindow ( false );
m_btnCancelCtl.EnableWindow ( true );
m_edEpcPswCtl.EnableWindow ( true );
m_btnOKCtl .EnableWindow ( true );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//Send write EPC command
void CWriteEPC::SetEPCData()
{
if ( m_hCom == NULL )
{
AfxMessageBox ( "unexpected error!" );
return;
}
BeginWaitCursor();
CString szTemp;
int result = XCSetEpcCode ( m_hCom
, m_AntennaID
, ( unsigned char * ) m_pchPSW
,0x00
, m_ucWriteEPCLen
, ( unsigned char * ) m_pchEPCData );
if ( 1 != result )
{
szTemp = theApp.Error_800 ( result );
m_stcInfoCtl.SetWindowText ( szTemp );
}
else
{
m_stcInfoCtl.SetWindowText ( "Write EPC Data succeed!" );
}
}
void CWriteEPC::OnCancel()
{
// TODO: Add extra cleanup here
if ( m_hCom != NULL )
{
XCPowerOff ( m_hCom );
}
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -