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

📄 readreg.cpp

📁 一个很好的VC++程序
💻 CPP
字号:
// ReadReg.cpp : implementation file
//

#include "stdafx.h"
#include "SMT5K.h"
#include "ReadReg.h"
#include "SM5000.h"
#include "SerialPort.h"
#include "SMT5KDoc.h"
#include "SMT5KView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern CSerialPort m_ComPort; 
extern CString m_strRXDataCOM1; //COM1接收数据
extern CString m_strTXDataCOM1; //COM1发送数据
extern CDialog * pRegTestDlg;

/////////////////////////////////////////////////////////////////////////////
// CReadReg dialog


CReadReg::CReadReg(CWnd* pParent /*=NULL*/)
	: CDialog(CReadReg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CReadReg)
	m_CurrentRReg = -1;
	m_count = 0;
	//}}AFX_DATA_INIT
}


void CReadReg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CReadReg)
	DDX_CBIndex(pDX, IDC_COMBO_RREG, m_CurrentRReg);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CReadReg, CDialog)
	//{{AFX_MSG_MAP(CReadReg)
	ON_MESSAGE(WM_SM5K_DATA_READ, OnSm5kDataRead)
	ON_CBN_CLOSEUP(IDC_COMBO_RREG, OnCloseupComboRreg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CReadReg message handlers


void CReadReg::OnCloseupComboRreg() 
{
	// TODO: Add your control notification handler code here
	m_CurrentRReg = ((CComboBox*)GetDlgItem(IDC_COMBO_RREG))->GetCurSel();
	m_count = 0;

	m_strTXDataCOM1.Empty();

	switch(m_CurrentRReg)
	{
	case 0:
			ReadReg (0);
			break;
	case 1:
			ReadReg (1, 1,0,0,0);
			break;
	case 2:
			ReadReg (1, 0,1,0,0);
			break;
	case 3:
			ReadReg (1, 0,0,1,0);
			break;
	case 4:
			ReadReg (1, 0,0,0,1);
			break;
	case 5:
			ReadReg (2, 1,0,0,0);
			break;
	case 6:
			ReadReg (2, 0,1,0,0);
			break;
	case 7:
			ReadReg (2, 0,0,1,0);
			break;
	case 8:
			ReadReg (2, 0,0,0,1);
			break;
	case 9:
			ReadReg (3, 1,0,0,0);
			break;
	case 10:
			ReadReg (3, 0,1,0,0);
			break;
	case 11:
			ReadReg (3, 0,0,1,0);
			break;
	case 12:
			ReadReg (3, 0,0,0,1);
			break;
	case 13:
			ReadReg (4);
			break;
	case 14:
			ReadReg (5);
			break;
	case 15:
			ReadReg (6);
			break;
	case 16:
			ReadReg (7);
			break;
	case 17:
			ReadReg (10);
			break;
	case 18:
			ReadReg (11, 1,0,0,0);
			break;
	case 19:
			ReadReg (11, 0,1,0,0);
			break;
	case 20:
			ReadReg (11, 0,0,1,0);
			break;
	case 21:
			ReadReg (11, 0,0,0,1);
			break;
	case 22:
			ReadReg (12, 1,0,0,0);
			break;
	case 23:
			ReadReg (12, 0,1,0,0);
			break;
	case 24:
			ReadReg (12, 0,0,1,0);
			break;
	case 25:
			ReadReg (12, 0,0,0,1);
			break;
	case 26:
			ReadReg (13, 1,0,0,0);
			break;
	case 27:
			ReadReg (13, 0,1,0,0);
			break;
	case 28:
			ReadReg (13, 0,0,1,0);
			break;
	case 29:
			ReadReg (13, 0,0,0,1);
			break;
	case 30:
			ReadReg (14);
			break;
	case 31:
			ReadReg (15);
			break;
	case 32:
			ReadReg (16);
			break;
	case 33:
			ReadReg (17);
			break;
	case 34:
			ReadParam (0, 1,0,0,0);
			break;
	case 35:
			ReadParam (0, 0,1,0,0);
			break;
	case 36:
			ReadParam (0, 0,0,1,0);
			break;
	case 37:
			ReadParam (0, 0,0,0,1);
			break;
	case 38:
			ReadParam (1, 1,0,0,0);
			break;
	case 39:
			ReadParam (1, 0,1,0,0);
			break;
	case 40:
			ReadParam (1, 0,0,1,0);
			break;
	case 41:
			ReadParam (1, 0,0,0,1);
			break;
	case 42:
			ReadParam (2, 1,0,0,0);
			break;
	case 43:
			ReadParam (2, 0,1,0,0);
			break;
	case 44:
			ReadParam (2, 0,0,1,0);
			break;
	case 45:
			ReadParam (2, 0,0,0,1);
			break;
	case 46:
			ReadParam (3, 1,0,0,0);
			break;
	case 47:
			ReadParam (3, 0,1,0,0);
			break;
	case 48:
			ReadParam (3, 0,0,1,0);
			break;
	case 49:
			ReadParam (3, 0,0,0,1);
			break;
	default:
			break;
	}

	m_ComPort.WriteToPort((LPCTSTR)m_strTXDataCOM1);
}


VOID ReadTime(VOID)
{
	char str[50];
	SYSTEMTIME st;
	while(1) {
		GetSystemTime(&st);
		sprintf(str,"%u:%u:%u", st.wHour, st.wMinute, st.wSecond);
		SetDlgItemText(pRegTestDlg->m_hWnd,IDC_WriteDrvCmd,str);
		Sleep (1000); // 延遲一秒。
		}
}

BOOL CReadReg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	/*
	HANDLE hThread;
	DWORD ThreadID;
	hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ReadTime,
							NULL, 0, &ThreadID);
	*/	

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

LONG CReadReg::OnSm5kDataRead(WPARAM wData, LPARAM lData)
{
	CString str;

	if(	(m_CurrentRReg== 0 && wData==  0 ) ||
		(m_CurrentRReg== 1 && wData==  1 ) ||
		(m_CurrentRReg== 2 && wData==101 ) || 
		(m_CurrentRReg== 3 && wData==201 ) ||
		(m_CurrentRReg== 4 && wData==301 ) ||
		(m_CurrentRReg== 5 && wData==  2 ) ||
		(m_CurrentRReg== 6 && wData==102 ) || 
		(m_CurrentRReg== 7 && wData==202 ) ||
		(m_CurrentRReg== 8 && wData==302 ) ||
		(m_CurrentRReg== 9 && wData==  3 ) ||
		(m_CurrentRReg==10 && wData==103 ) || 
		(m_CurrentRReg==11 && wData==203 ) ||
		(m_CurrentRReg==12 && wData==303 ) ||
		(m_CurrentRReg==13 && wData==  4 ) ||
		(m_CurrentRReg==14 && wData==  5 ) ||
		(m_CurrentRReg==15 && wData==  6 ) ||
		(m_CurrentRReg==16 && wData==  7 ) ||
		(m_CurrentRReg==17 && wData== 10 ) ||
		(m_CurrentRReg==18 && wData== 11 ) ||
		(m_CurrentRReg==19 && wData==111 ) ||
		(m_CurrentRReg==20 && wData==211 ) || 
		(m_CurrentRReg==21 && wData==311 ) ||
		(m_CurrentRReg==22 && wData== 12 ) ||
		(m_CurrentRReg==23 && wData==112 ) || 
		(m_CurrentRReg==24 && wData==212 ) ||
		(m_CurrentRReg==25 && wData==312 ) ||
		(m_CurrentRReg==26 && wData== 13 ) ||
		(m_CurrentRReg==27 && wData==113 ) || 
		(m_CurrentRReg==28 && wData==213 ) ||
		(m_CurrentRReg==29 && wData==313 ) ||
		(m_CurrentRReg==30 && wData== 14 ) ||
		(m_CurrentRReg==31 && wData== 15 ) ||
		(m_CurrentRReg==32 && wData== 16 ) ||
		(m_CurrentRReg==33 && wData== 17 ) ||
		(m_CurrentRReg==34 && wData== 20 ) ||
		(m_CurrentRReg==35 && wData==120 ) ||
		(m_CurrentRReg==36 && wData==220 ) ||
		(m_CurrentRReg==37 && wData==320 ) ||
		(m_CurrentRReg==38 && wData== 21 ) ||
		(m_CurrentRReg==39 && wData==121 ) ||
		(m_CurrentRReg==40 && wData==221 ) ||
		(m_CurrentRReg==41 && wData==321 ) ||
		(m_CurrentRReg==42 && wData== 22 ) ||
		(m_CurrentRReg==43 && wData==122 ) ||
		(m_CurrentRReg==44 && wData==222 ) ||
		(m_CurrentRReg==45 && wData==322 ) ||
		(m_CurrentRReg==46 && wData== 23 ) ||
		(m_CurrentRReg==47 && wData==123 ) ||
		(m_CurrentRReg==48 && wData==223 ) ||
		(m_CurrentRReg==49 && wData==323 ) )

	{
		m_count++;
		str.Format("%d(%d)",lData,m_count);
		SetDlgItemText( IDC_REG_DATA_DISP, str);
	}
	return 0;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -