⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgreaddata.cpp

📁 RFID温度签的源码
💻 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 + -