📄 dlgreaddata.cpp
字号:
// DlgReadData.cpp : 实现文件
//
#include "stdafx.h"
#include "Temperature.h"
#include "DlgReadData.h"
#include "DeviceClient.h"
#include "ErrorCode.h"
#include "CommonMacro.h"
#include "ResultDlg.h"
// CDlgReadData 对话框
extern CTemperatureApp theApp;
IMPLEMENT_DYNAMIC(CDlgReadData, CDialog)
CDlgReadData::CDlgReadData(CWnd* pParent /*=NULL*/)
: CDialog(CDlgReadData::IDD, pParent)
, m_strName(_T(""))
, m_manufacturer(_T(""))
, m_date1(_T(""))
, m_date2(_T("")),
m_pDeviceClient(NULL),
m_nDlgType( 0 )
, m_group(_T(""))
, m_nRadio(0)
, m_SelectData(0)
, m_IsCheckGroup(FALSE)
{
}
CDlgReadData::~CDlgReadData()
{
}
void CDlgReadData::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_COMBO1, m_strName);
DDX_Text(pDX, IDC_COMBO2, m_manufacturer);
DDX_Text(pDX, IDC_RD_DATE1, m_date1);
DDX_Text(pDX, IDC_RD_DATE2, m_date2);
DDX_Control(pDX, IDC_COMBO1, m_combo1);
DDX_Control(pDX, IDC_COMBO2, m_combo2);
DDX_Control(pDX, IDC_COMBO3, m_combo3);
DDX_CBString(pDX, IDC_COMBO3, m_group);
DDV_MaxChars(pDX, m_date1, 6);
DDV_MaxChars(pDX, m_date2, 2);
DDX_Radio(pDX, IDC_RADIO1, m_nRadio);
DDX_Control(pDX, IDC_COMBO4, m_combo);
DDX_Check(pDX, IDC_CHECK1, m_IsCheckGroup);
}
BEGIN_MESSAGE_MAP(CDlgReadData, CDialog)
ON_BN_CLICKED(ID_READ, &CDlgReadData::OnBnClickedRead)
ON_BN_CLICKED(IDCANCEL, &CDlgReadData::OnBnClickedCancel)
ON_BN_CLICKED(IDC_RADIO1, &CDlgReadData::OnBnClickedRadio1)
ON_BN_CLICKED(IDC_RADIO2, &CDlgReadData::OnBnClickedRadio2)
ON_BN_CLICKED(IDC_CHECK1, &CDlgReadData::OnBnClickedCheck1)
END_MESSAGE_MAP()
// CDlgReadData 消息处理程序
extern CTemperatureApp theApp;
void CDlgReadData::OnBnClickedRead()
{
LOG_DATA_MEM LogData;
TCHAR ch[128];
BOOL bRet;
char* pStr;
TCHAR* lpStr;
LogData.CardID = m_SelectCardID;
U32 u32Ret = 0;
if( m_nDlgType == 0 )
{
if( m_pDeviceClient )
{
INT_DATA_CARD Data;
if( m_nRadio == 1 && m_IsCheckGroup )
{
DWORD dw = m_combo.GetItemData( m_combo.GetCurSel() );
//Data.
u32Ret = m_pDeviceClient->ReadRecordData( m_SelectCardID, &Data, sizeof(Data) );
}
else
{
u32Ret = m_pDeviceClient->ReadCardData( m_SelectCardID, 1, &Data, sizeof(Data) );
}
if( u32Ret == RETURN_NO_ERROR )
{
UINT nUnknowID = theApp.m_Lang == 0 ? IDS_STRUNKNOWN_CH : IDS_STRUNKNOWN;
// Product name
U32 u32Val = MAKE_U32( Data.u8Data[0], Data.u8Data[1], Data.u8Data[2], Data.u8Data[3] );
LogData.ValProduct = u32Val;
bRet = theApp.GetCardProductName( u32Val, &pStr );
if( bRet )
{
memset( ch, 0, sizeof(ch) );
//MultiByteToWideChar( CP_ACP, 0, pStr, strlen(pStr), ch, 128 );
strcpy( ch, pStr );
m_strName.Format( _T("%s"), ch );
}
else
{
m_strName.LoadString( nUnknowID );
}
// manufacture
u32Val = MAKE_U32( Data.u8Data[4], Data.u8Data[5], Data.u8Data[6], Data.u8Data[7] );
LogData.ValManufacture = u32Val;
bRet = theApp.GetCardManufactureName( u32Val, &pStr );
if( bRet )
{
memset( ch, 0, sizeof(ch) );
//MultiByteToWideChar( CP_ACP, 0, pStr, strlen(pStr), ch, 128 );
strcpy( ch, pStr );
m_manufacturer.Format( _T("%s"), ch );
}
else
{
m_manufacturer.LoadString( nUnknowID );
}
// group
U8 Property[2];
Property[0] = 0xFF;
Property[1] = 0xFF;
u32Ret = m_pDeviceClient->GetTagProperty( m_SelectCardID,&Property[0], &Property[1] );
u32Val = MAKE_U32( Property[0], Property[1], 0 , 0 );
LogData.ValGroup = u32Val;
bRet = theApp.GetCardGroup( u32Val, &pStr );
if( bRet )
{
memset( ch, 0, sizeof(ch) );
//MultiByteToWideChar( CP_ACP, 0, pStr, strlen(pStr), ch, 128 );
strcpy( ch, pStr );
m_group.Format( _T("%s"), ch );
}
else
{
m_group.LoadString( nUnknowID );
}
if( ( (Data.u8Data[8] <= '9' && Data.u8Data[8] >= '0') || Data.u8Data[8] == 0 ) &&
( (Data.u8Data[9] <= '9' && Data.u8Data[9] >= '0') || Data.u8Data[9] == 0 ) &&
( (Data.u8Data[10] <= '9' && Data.u8Data[10] >= '0') || Data.u8Data[10] == 0 ) &&
( (Data.u8Data[11] <= '9' && Data.u8Data[11] >= '0') || Data.u8Data[11] == 0 ) &&
( (Data.u8Data[12] <= '9' && Data.u8Data[12] >= '0') || Data.u8Data[12] == 0 ) &&
( (Data.u8Data[13] <= '9' && Data.u8Data[13] >= '0') || Data.u8Data[13] == 0 ) )
{
m_date1.Format( _T("%c%c%c%c%c%c"),
Data.u8Data[8], Data.u8Data[9], Data.u8Data[10], Data.u8Data[11],
Data.u8Data[12], Data.u8Data[13] );
_stscanf( m_date1, _T("%d"), &(LogData.ManufactureDate) );
}
else
{
m_date1.LoadString( nUnknowID );
}
if( ( (Data.u8Data[14] <= '9' && Data.u8Data[8] >= '0') || Data.u8Data[15] == 0 ) &&
( (Data.u8Data[14] <= '9' && Data.u8Data[8] >= '0') || Data.u8Data[15] == 0 ) )
{
m_date2.Format( _T("%c%c"), Data.u8Data[14], Data.u8Data[15] );
_stscanf( m_date2, _T("%d"), &(LogData.ExpirationData) );
}
else
{
m_date2.LoadString( nUnknowID );
}
UpdateData( FALSE );
}
UINT nRCLang;
if( u32Ret == RETURN_NO_ERROR )
{
nRCLang = theApp.m_Lang == 0 ? IDS_STR_READ_DATA_S_CH : IDS_STR_READ_DATA_S;
}
else
{
nRCLang = theApp.m_Lang == 0 ? IDS_STR_READ_DATA_F_CH : IDS_STR_READ_DATA_F;
}
CString strMessageBox;
strMessageBox.LoadString( nRCLang );
MessageBox( strMessageBox );
}
}
else if( m_nDlgType == 1 )
{
UpdateData();
char ch[64];
INT_WRITE_CARD_DATA WriteData;
RECORD_DATA WriteData2;
WriteData.u8UnitCount = 1;
WriteData.WriteData[0].u8SectorID[0] = 0;
WriteData.WriteData[0].u8SectorID[1] = 1;
DWORD dw = m_combo1.GetItemData( m_combo1.GetCurSel() );
WriteData.WriteData[0].u8Data[0] = GET_U320( dw );
WriteData.WriteData[0].u8Data[1] = GET_U321( dw );
WriteData.WriteData[0].u8Data[2] = GET_U322( dw );
WriteData.WriteData[0].u8Data[3] = GET_U323( dw );
WriteData2.u8ProductName[0] = WriteData.WriteData[0].u8Data[0];
WriteData2.u8ProductName[1] = WriteData.WriteData[0].u8Data[1];
WriteData2.u8ProductName[2] = WriteData.WriteData[0].u8Data[2];
WriteData2.u8ProductName[3] = WriteData.WriteData[0].u8Data[3];
LogData.ValProduct = dw;
dw = m_combo2.GetItemData( m_combo2.GetCurSel() );
WriteData.WriteData[0].u8Data[4] = GET_U320( dw );
WriteData.WriteData[0].u8Data[5] = GET_U321( dw );
WriteData.WriteData[0].u8Data[6] = GET_U322( dw );
WriteData.WriteData[0].u8Data[7] = GET_U323( dw );
WriteData2.u8ManufactureName[0] = WriteData.WriteData[0].u8Data[4];
WriteData2.u8ManufactureName[1] = WriteData.WriteData[0].u8Data[5];
WriteData2.u8ManufactureName[2] = WriteData.WriteData[0].u8Data[6];
WriteData2.u8ManufactureName[3] = WriteData.WriteData[0].u8Data[7];
LogData.ValManufacture = dw;
dw = m_combo3.GetItemData( m_combo3.GetCurSel() );
LogData.ValGroup = dw;
lpStr = m_date1.GetBuffer();
_stscanf( m_date1, _T("%d"), &(LogData.ManufactureDate) );
//WideCharToMultiByte(CP_ACP,0,lpStr,-1,ch,64,NULL,NULL);
strcpy( ch, lpStr );
memcpy( &(WriteData.WriteData[0].u8Data[8]), ch, 6 );
memcpy( &(WriteData2.u8ManufactureDate[0]), ch, 6 );
lpStr = m_date2.GetBuffer();
_stscanf( m_date2, _T("%d"), &(LogData.ExpirationData) );
//WideCharToMultiByte(CP_ACP,0,lpStr,-1,ch,64,NULL,NULL);
strcpy( ch, lpStr );
memcpy( &(WriteData.WriteData[0].u8Data[14]), ch, 2 );
memcpy( &(WriteData2.u8ExpirationTime[0]), ch, 2 );
if( m_nRadio == 1 && m_IsCheckGroup )
{
U32 CardID;
U8 IsOver = FALSE;
CResultDlg dlg;
DWORD dwRet = m_combo.GetItemData( m_combo.GetCurSel() );
WriteData2.u8CardProperty[0] = (U8)( (dwRet & 0x0000FF00) >> 8 );
WriteData2.u8CardProperty[1] = (U8)( dwRet & 0x000000FF );
u32Ret = m_pDeviceClient->WriteRecordData( m_SelectCardID, &WriteData2 );
if( u32Ret == RETURN_NO_ERROR )
{
/*CResultDlg dlg;
Sleep(10*1000);
while ( 1 )
{
u32Ret = m_pDeviceClient->GetTagPropertyCardID( &CardID, &IsOver );
if( u32Ret == RETURN_NO_ERROR && IsOver == FALSE )
{
dlg.AddCard( CardID );
}
else
{
break;
}
}
dlg.DoModal();
*/
}
}
else
{
u32Ret = m_pDeviceClient->WriteCardData( m_SelectCardID, &WriteData );
}
UINT nRCLang;
if( u32Ret == RETURN_NO_ERROR )
{
nRCLang = theApp.m_Lang == 0 ? IDS_STR_WRITE_DATA_S_CH : IDS_STR_WRITE_DATA_S;
}
else
{
nRCLang = theApp.m_Lang == 0 ? IDS_STR_WRITE_DATA_F_CH : IDS_STR_WRITE_DATA_F;
}
CString strMessageBox;
strMessageBox.LoadString( nRCLang );
MessageBox( strMessageBox );
}
else
{
}
if( u32Ret == RETURN_NO_ERROR )
{
theApp.AddLogData( m_SelectCardID, &LogData );
}
}
void CDlgReadData::SetDevice(CDeviceClient* pClient )
{
m_pDeviceClient = pClient;
}
BOOL CDlgReadData::OnInitDialog()
{
CDialog::OnInitDialog();
SetLang( theApp.m_Lang );
InitCombo();
InitialCombo();
EnableLEDCtrl();
EnableCombox( );
if( m_nDlgType == 1 )
{
SetWindowText( _T("Write Data") );
}
if( theApp.m_Lang == 0 )
{
if( m_nDlgType == 0 )
{
SetWindowText( _T("读数据") );
}
else
{
SetWindowText( _T("写数据" ) );
GetDlgItem( IDC_COMBO3 )->EnableWindow( FALSE );
}
}
return TRUE;
}
void CDlgReadData::OnBnClickedCancel()
{
UpdateData( TRUE );
//OnCancel();
EndDialog( 5 );
}
void CDlgReadData::InitCombo()
{
int j=0;
TCHAR ch[128];
char* pStr;
int nNew;
for( int i=0; i<MAX_ITEM; i++ )
{
if( theApp.m_ProductList[i].CardData.CardID != 0 )
{
pStr = (char*)theApp.m_ProductList[i].CardData.CardName;
memset( ch, 0, sizeof(ch) );
//MultiByteToWideChar( CP_ACP, 0, pStr, strlen(pStr), ch, 128 );
strcpy( ch, pStr );
nNew = m_combo1.InsertString( j, ch );
m_combo1.SetItemData( nNew, theApp.m_ProductList[i].CardData.CardID );
m_combo1.SetCurSel( nNew );
j++;
}
else
{
continue;
}
}
j = 0;
for( int i=0; i<MAX_ITEM; i++ )
{
if( theApp.m_ManufactureList[i].CardData.CardID != 0 )
{
pStr = (char*)theApp.m_ManufactureList[i].CardData.CardName;
memset( ch, 0, sizeof(ch) );
//MultiByteToWideChar( CP_ACP, 0, pStr, strlen(pStr), ch, 128 );
strcpy( ch, pStr );
nNew = m_combo2.InsertString( j, ch );
m_combo2.SetItemData( nNew, theApp.m_ManufactureList[i].CardData.CardID );
m_combo2.SetCurSel( nNew );
j++;
}
else
{
continue;
}
}
j = 0;
for( int i=0; i<MAX_ITEM; i++ )
{
if( theApp.m_GroupList[i].CardData.CardID != 0 )
{
pStr = (char*)theApp.m_GroupList[i].CardData.CardName;
memset( ch, 0, sizeof(ch) );
//MultiByteToWideChar( CP_ACP, 0, pStr, strlen(pStr), ch, 128 );
strcpy( ch, pStr );
nNew = m_combo3.InsertString( j, ch );
m_combo3.SetItemData( nNew, theApp.m_GroupList[i].CardData.CardID );
m_combo3.SetCurSel( nNew );
j++;
}
else
{
continue;
}
}
}
void CDlgReadData::SetLang( char ch )
{
if( ch == 0 )
{
CString str;
str.LoadString( IDS_STR_PRODUCT_CH );
GetDlgItem( IDC_STATIC_11 )->SetWindowText( str );
str.LoadString( IDS_STR_MANUFACTURE_CH );
GetDlgItem( IDC_STATIC_22 )->SetWindowText( str );
str.LoadString( IDS_STR_GROUP_CH );
GetDlgItem( IDC_STATIC_33 )->SetWindowText( str );
str.LoadString( IDS_STR_PRODUCT_DATE_CH );
GetDlgItem( IDC_STATIC_44 )->SetWindowText( str );
str.LoadString( IDS_STR_TIME_CH );
GetDlgItem( IDC_STATIC_55 )->SetWindowText( str );
str.LoadString( IDS_STR_OK );
GetDlgItem( ID_READ )->SetWindowText( str );
str.LoadString( IDS_STR_CANCEL );
GetDlgItem( IDCANCEL )->SetWindowText( str );
str.LoadString(IDS_STR_LED_OPTION_CH);
GetDlgItem( IDC_STATIC_GROUP )->SetWindowText( str );
str.LoadString( IDS_STR_GROUP_CHECK_CH );
GetDlgItem( IDC_CHECK1 )->SetWindowText( str );
}
}
void CDlgReadData::OnBnClickedRadio1()
{
UpdateData();
EnableLEDCtrl();
}
void CDlgReadData::OnBnClickedRadio2()
{
UpdateData();
EnableLEDCtrl();
}
void CDlgReadData::InitialCombo()
{
TCHAR ch[128];
char* pStr;
int nNew;
int j = 0;
for( int i=0; i<MAX_ITEM; i++ )
{
if( theApp.m_GroupList[i].CardData.CardID != 0 )
{
pStr = (char*)theApp.m_GroupList[i].CardData.CardName;
memset( ch, 0, sizeof(ch) );
//MultiByteToWideChar( CP_ACP, 0, pStr, strlen(pStr), ch, 128 );
strcpy( ch, pStr );
nNew = m_combo.InsertString( j, ch );
m_combo.SetItemData( nNew, theApp.m_GroupList[i].CardData.CardID );
m_combo.SetCurSel( nNew );
m_SelectData = theApp.m_GroupList[i].CardData.CardID;
j++;
}
else
{
continue;
}
}
if( j==0 )
{
nNew = m_combo.InsertString( 0, _T("Unknown") );
m_combo.SetItemData( nNew, 0 );
m_SelectData = nNew;
m_combo.SetCurSel( nNew );
}
}
void CDlgReadData::OnBnClickedCheck1()
{
UpdateData( );
EnableCombox( );
}
void CDlgReadData::EnableLEDCtrl()
{
BOOL IsEnable = m_nRadio == 0 ? 0 : 1;
BOOL IsEnableCombo = FALSE;
GetDlgItem( IDC_CHECK1 )->EnableWindow( IsEnable );
IsEnableCombo = IsEnable & m_IsCheckGroup;
GetDlgItem( IDC_COMBO4 )->EnableWindow( IsEnableCombo );
}
void CDlgReadData::EnableCombox( )
{
GetDlgItem( IDC_COMBO4 )->EnableWindow( m_IsCheckGroup );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -