📄 vcsampledlg.cpp
字号:
{
XCPowerOff ( hCom );
int Result = XCClose ( hCom );
if ( Result == 1 )
{
if ( IsReadId == TRUE )
{
KillTimer(1);
KillTimer(2);
KillTimer(3);
IsReadId = FALSE;
}
IsHaveOpened = FALSE;
m_Status1Ctl.SetWindowText ( "Disconnect successfully!" );
m_Status2Ctl.SetWindowText ( "" );
if( strcmp(m_strComMode,"TCP")==0 )
{
m_IpCtl.EnableWindow(true);
}
else
{
m_IpCtl.EnableWindow ( false );
}
m_ComModelCtl.EnableWindow ( true );
m_EditScansTimesEPC.EnableWindow ( false );
m_AntennaCombCtl.EnableWindow(false);
m_AffirmCombCtl.EnableWindow(false);
m_EditScansTimesEPC.EnableWindow(false);
UpdateData(false);
}
else
{
strStatusDemo = "Disconnect failed!";
CString sz;
sz = theApp.Error_800 ( Result );
if ( sz != "" )
{
strStatusDemo += "(" + sz + ")";
}
m_Status1Ctl.SetWindowText ( strStatusDemo );
}
}
else
{
m_Status1Ctl.SetWindowText ( "The reader has been disconnected!" );
}
KillTimer ( 1 );
KillTimer ( 2 );
KillTimer ( 3 );
}
//Read EPC
void CVCsampleDlg::OnMenuReadEpc()
{
// TODO: Add your command handler code here
strStatusDemo = "";
CString strTempQ;
if ( IsHaveOpened == TRUE )
{
if ( IsReadId == FALSE )
{
m_EditScansTimesEPC.EnableWindow ( false );
m_AffirmCombCtl.EnableWindow ( false );
m_AntennaCombCtl.EnableWindow(false);
int len;
unsigned char ucTimes;
CString szTemp;
iTagNum=0;
m_EditScansTimesEPC.GetWindowText ( szTemp );
szTemp.TrimLeft();
szTemp.TrimRight();
len = szTemp.GetLength();
if ( len == 0 )
{
szTemp = "";
m_EditScansTimesEPC.SetWindowText ( szTemp );
AfxMessageBox( "Read Tag Num error.Please input again!" );
m_EditScansTimesEPC.EnableWindow ( true );
return;
}
UpdateData ( TRUE );
int x = m_uiScanTimesEPC;//50.0
double a = 2.0;
double y1;
double y2;
double z;
if ( x < 1 || x > 8192 )
{
AfxMessageBox("Please input 1--8192 number,Please input again!");
m_EditScansTimesEPC.EnableWindow ( true );
return;
}
switch ( x )
{
case 1:
z=0;
break;
case 2:
z=2;
break;
case 3:
case 4:
z=3;
break;
default:
y1 = log10( x );
y2 = log10( a );
z = y1/y2 + 2;
break;
}
ucTimes = (int)z;
int iTemp = 0;
iTemp = m_AffirmCombCtl.GetCurSel ( );
InitReportListHead ( );
strStatusDemo = _T( "" );
m_Status1Ctl.SetWindowText ( strStatusDemo );
m_Status2Ctl.SetWindowText ( "Begin to read EPC Code!" );
OnCleanDispbuff ( );
unsigned char ucAnId = GetTianXianId () ;
strTempQ.Format( "%02x ", ucTimes );
unsigned char ucScanTimes = Asc2Hex((unsigned char*)strTempQ.GetBuffer (2));
unsigned char isDoAffirm = iTemp;
if (hCom==NULL)
{
return;
}
int result = XCIdentifyEpcCode ( hCom, ucAnId, ucScanTimes, isDoAffirm );
if ( 0 == result )
{
AfxMessageBox ( "Read EPC Code failed!" );
return ;
}
else
{
SetTimer ( 2, 0, NULL );
IsReadId = TRUE;
dwStartTime = GetTickCount ( );
}
}
}
else
{
AfxMessageBox ( "Please connect reader successfully first!" );
}
}
void CVCsampleDlg::InitReportListHead()
{
m_IdList.ModifyStyle (NULL,WS_VISIBLE);
m_IdList.Invalidate();
}
unsigned char CVCsampleDlg::Asc2Hex(unsigned char *Asci_Info)
{
unsigned char Asc;
if((Asci_Info[0]>=0x30)&&(Asci_Info[0]<=0x39)&&(Asci_Info[1]>=0x30)&&(Asci_Info[1]<=0x39))
Asc=(Asci_Info[0]-0x30)*16+(Asci_Info[1]-0x30);
else if((Asci_Info[0]>='a')&&(Asci_Info[0]<='f')&&(Asci_Info[1]>=0x30)&&(Asci_Info[1]<=0x39))
Asc=(Asci_Info[0]-0x61+10)*16+(Asci_Info[1]-0x30);
else if((Asci_Info[0]>='0')&&(Asci_Info[0]<='9')&&(Asci_Info[1]>='a')&&(Asci_Info[1]<='f'))
Asc=(Asci_Info[0]-0x30)*16+(Asci_Info[1]-0x61+10);
else if((Asci_Info[0]>='a')&&(Asci_Info[0]<='f')&&(Asci_Info[1]>='a')&&(Asci_Info[1]<='f'))
Asc=(Asci_Info[0]-0x61+10)*16+(Asci_Info[1]-0x61+10);
return Asc;
}
void CVCsampleDlg::OnCleanDispbuff()
{
ResetArray();
InitRectTimesArray();
m_IdList.DeleteAllItems ();
}
//Get antenna No
unsigned char CVCsampleDlg::GetTianXianId()
{
UpdateData(TRUE);
for(int i=0;i<4;i++)
{
if(m_strAntenna == strTianXian[i])
return i+1;
}
for(i=4;i<7;i++)
{
if(m_strAntenna == strTianXian[i])
return 0;
}
return -1;
}
//Read TID
void CVCsampleDlg::OnMenuReadTid()
{
// TODO: Add your command handler code here
m_AntennaCombCtl.EnableWindow ( false );
if ( IsHaveOpened ==TRUE )
{
if ( IsReadId == FALSE )
{
m_EditScansTimesEPC.EnableWindow ( false );
m_AffirmCombCtl.EnableWindow ( false );
InitReportListHead ( );
m_Status2Ctl.SetWindowText ( "Begin to read TID Code!" );
OnCleanDispbuff ( );
int len;
unsigned char ucTimes;
CString szTemp;
m_EditScansTimesEPC.GetWindowText ( szTemp );
szTemp.TrimLeft();
szTemp.TrimRight();
len = szTemp.GetLength();
if ( len == 0 )
{
szTemp = "";
m_EditScansTimesEPC.SetWindowText ( szTemp );
AfxMessageBox( "Read Tag Num error.Please input again!" );
m_EditScansTimesEPC.EnableWindow ( true );
return;
}
UpdateData ( TRUE );
int x = m_uiScanTimesEPC;//50.0
double a = 2.0;
double y1;
double y2;
double z;
if ( x < 1 || x > 8192 )
{
AfxMessageBox( "Please input 1--8192 number,Please input again!" );
m_EditScansTimesEPC.EnableWindow ( true );
return;
}
switch ( x )
{
case 1:
z=0;
break;
case 2:
z=2;
break;
case 3:
case 4:
z=3;
break;
default:
y1 = log10( x );
y2 = log10( a );
z = y1/y2 + 2;
break;
}
ucTimes = (int)z;
int iTemp = 0;
iTemp = m_AffirmCombCtl.GetCurSel ( );
unsigned char ucAnId = GetTianXianId ( );
unsigned char ucScanTimes = ucTimes;
unsigned char isDoAffirm = iTemp;
unsigned char ucPsw [ 4 ];
memset ( ucPsw, 0, 4 );
int result = XCIdentifyTIDCode ( hCom, ucAnId
, ucScanTimes, isDoAffirm, ucPsw);
if ( 0 == result )
{
AfxMessageBox ( "Read TID Code failed!" );
return ;
}
else
{
SetTimer ( 3, 0, NULL );
IsReadId = TRUE;
dwStartTime = GetTickCount ( );
}
}
}
else
{
AfxMessageBox("Please connect reader successfully first!");
}
}
//Stop reading tag
void CVCsampleDlg::OnMenuStopRead()
{
// TODO: Add your command handler code here
strStatusDemo = "";
if ( IsHaveOpened == TRUE )
{
if ( IsReadId == TRUE )
{
KillTimer ( 2 );
KillTimer ( 3 );
IsReadId = FALSE;
}
int Result = XCPowerOff ( hCom );
if ( Result == 1 )
{
m_Status1Ctl.SetWindowText ( "Stop reading successfully!" );
m_AntennaCombCtl.EnableWindow(true);
m_EditScansTimesEPC.EnableWindow ( true );
m_AntennaCombCtl.EnableWindow(true);
m_AffirmCombCtl.EnableWindow(true);
KillTimer ( 1 );
KillTimer ( 2 );
KillTimer ( 3 );
}
else
{
strStatusDemo = "Stop reading failed!";
CString sz;
sz = theApp.Error_800 ( Result );
if ( sz != "" )
{
strStatusDemo += "(" + sz + ")";
}
m_Status1Ctl.SetWindowText ( strStatusDemo );
}
}
else
{
AfxMessageBox ( "Please connect reader successfully first!" );
}
m_Status2Ctl.SetWindowText ( "" );
}
//Write EPC
void CVCsampleDlg::OnMenuWriteEpc()
{
// TODO: Add your command handler code here
memset ( ucEPCPassword, 0, 4 );
memset ( ucEPCData, 0, 12 );
if ( IsHaveOpened == TRUE )
{
CWriteEPC WriteEPCDataDlg;
uAntennaID=GetTianXianId();
WriteEPCDataDlg.m_AntennaID=uAntennaID;
WriteEPCDataDlg.m_hCom = this -> hCom;
WriteEPCDataDlg.DoModal ( );
}
else
{
AfxMessageBox ( "Please connect reader successfully first!" );
}
}
//Read user data
void CVCsampleDlg::OnMenuReadUserdata()
{
// TODO: Add your command handler code here
if ( IsHaveOpened == TRUE )
{
CReadData EPCReadUserDataDlg;
EPCReadUserDataDlg.m_hCom = hCom;
uAntennaID=GetTianXianId();
EPCReadUserDataDlg.m_AntennaID=uAntennaID;
EPCReadUserDataDlg.DoModal ( );
}
else
{
AfxMessageBox("Please connect reader successfully first!");
}
}
//Write user data
void CVCsampleDlg::OnMenuWriteUserdata()
{
// TODO: Add your command handler code here
if ( IsHaveOpened == TRUE )
{
CWriteData EPCWriteUserDataDlg;
EPCWriteUserDataDlg.m_hCom = hCom;
uAntennaID=GetTianXianId();
EPCWriteUserDataDlg.m_AntennaID=uAntennaID;
EPCWriteUserDataDlg.DoModal ( );
}
else
{
AfxMessageBox("Please connect reader successfully first!");
}
}
//Config network parameter
void CVCsampleDlg::OnMenuIpSet()
{
// TODO: Add your command handler code here
UpdateData ( TRUE );
strStatusDemo = "";
CString strPrgPath;
strPrgPath = m_strSysit;
if ( IsHaveOpened == TRUE )
{
CSetIP NetDlg;
NetDlg.m_hCom = hCom;
CString strIp, strMask, strGetWay;
CString ConfigstrIp, ConfigstrMask, ConfigstrGetWay;
ConfigstrIp = MemLoadStr ( strPrgPath
, "XCRF-800 Series Reader"
, "XC_HOST_NAME" );
ConfigstrMask = MemLoadStr ( strPrgPath
, "XCRF-800 Series Reader"
, "XC_SUBNET" );
ConfigstrGetWay = MemLoadStr ( strPrgPath
, "XCRF-800 Series Reader"
, "XC_GATE" );
NetDlg.strIp = ConfigstrIp;
NetDlg.strMask = ConfigstrMask;
NetDlg.strGetWay = ConfigstrGetWay;
if ( NetDlg.DoModal ( ) == IDOK )
{
strIp = NetDlg.strIp ;
strMask = NetDlg.strMask;
strGetWay = NetDlg.strGetWay ;
char strPwd[ ] = "YWGIT";
int Result = XCNetAddrSet ( hCom
, strPwd
, "XCRF-800 Series Reader"
, strIp.GetBuffer ( 6 )
, strMask.GetBuffer ( 6 )
, strGetWay.GetBuffer ( 6 ) );
if ( 1 == Result )
{
m_IpCtl.SetWindowText ( strIp );
strStatusDemo = "configure network parameter successful!";
m_Status1Ctl.SetWindowText ( strStatusDemo );
if ( m_strComMode == _T ( "TCP" ) )
{
Sleep ( 100 );
OnMenuDisconnect ( );
Sleep ( 300 );
OnMenuConnect ( );
}
}
else
{
strStatusDemo = "configure network parameter failed!";
CString sz;
sz = theApp.Error_800 ( Result );
if ( sz != "" )
{
strStatusDemo += "(" + sz + ")";
}
AfxMessageBox ( strStatusDemo );
}
}
}
else
{
AfxMessageBox("Please connect reader successfully first!");
}
}
//Config antenna power
void CVCsampleDlg::OnMenuPowerSet()
{
// TODO: Add your command handler code here
if(IsHaveOpened==TRUE)
{
CSetPower Dlg;
uAntennaID=GetTianXianId();
Dlg.m_AntennaID=uAntennaID;
Dlg.m_hCom = hCom;
Dlg.DoModal();
}
else
{
AfxMessageBox("Please connect reader successfully first!");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -