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

📄 setcurrent.cpp

📁 最近做的一款温湿度变送器的上位软件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// SetCurrent.cpp : implementation file
//

#include "stdafx.h"
#include "SHT11Transmit.h"
#include "SetCurrent.h"
#include "SHT11TransmitDlg.h"
#include "PCOMM.H"

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

/////////////////////////////////////////////////////////////////////////////
// SetCurrent property page

IMPLEMENT_DYNCREATE(SetCurrent, CPropertyPage)

SetCurrent::SetCurrent() : CPropertyPage(SetCurrent::IDD)
{
	//{{AFX_DATA_INIT(SetCurrent)
	m_SetCurrent_Frequency = 0;
	//}}AFX_DATA_INIT
}

SetCurrent::~SetCurrent()
{
}

void SetCurrent::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(SetCurrent)
	DDX_Control(pDX, IDC_COMBO2, m_RHCurrent);
	DDX_Control(pDX, IDC_COMBO1, m_CurrentSet);
	DDX_Text(pDX, IDC_EDIT1, m_SetCurrent_Frequency);
	DDV_MinMaxUInt(pDX, m_SetCurrent_Frequency, 0, 65535);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(SetCurrent, CPropertyPage)
	//{{AFX_MSG_MAP(SetCurrent)
	ON_WM_CTLCOLOR()
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_CBN_EDITCHANGE(IDC_COMBO1, OnEditchangeCombo1)
	ON_WM_TIMER()
	ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
	ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
	ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
	ON_CBN_EDITCHANGE(IDC_COMBO2, OnEditchangeCombo2)
	ON_CBN_SELCHANGE(IDC_COMBO2, OnSelchangeCombo2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// SetCurrent message handlers

BOOL SetCurrent::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	m_CurrentSet.AddString(_T("不标定"));
	m_CurrentSet.AddString(_T("TC_4mA"));
	m_CurrentSet.AddString(_T("TC_6mA"));
	m_CurrentSet.AddString(_T("TC_8mA"));
	m_CurrentSet.AddString(_T("TC_10mA"));
	m_CurrentSet.AddString(_T("TC_12mA"));
	m_CurrentSet.AddString(_T("TC_14mA"));
	m_CurrentSet.AddString(_T("TC_16mA"));
	m_CurrentSet.AddString(_T("TC_18mA"));
	m_CurrentSet.AddString(_T("TC_20mA"));		
	m_CurrentSet.AddString(_T("Test_TC_5mA"));//5
	m_CurrentSet.AddString(_T("Test_TC_7mA"));//
	m_CurrentSet.AddString(_T("Test_TC_9mA"));//
	m_CurrentSet.AddString(_T("Test_TC_11mA"));
	m_CurrentSet.AddString(_T("Test_TC_13mA"));//
	m_CurrentSet.AddString(_T("Test_TC_15mA"));
	m_CurrentSet.AddString(_T("Test_TC_17mA"));//
	m_CurrentSet.AddString(_T("Test_TC_19mA"));//

	
	m_CurrentSet.SetCurSel(0);

	m_RHCurrent.AddString(_T("不标定"));
	m_RHCurrent.AddString(_T("RH_4mA"));
	m_RHCurrent.AddString(_T("RH_6mA"));
	m_RHCurrent.AddString(_T("RH_8mA"));
	m_RHCurrent.AddString(_T("RH_10mA"));
	m_RHCurrent.AddString(_T("RH_12mA"));
	m_RHCurrent.AddString(_T("RH_14mA"));
	m_RHCurrent.AddString(_T("RH_16mA"));
	m_RHCurrent.AddString(_T("RH_18mA"));
	m_RHCurrent.AddString(_T("RH_20mA"));	
	m_RHCurrent.AddString(_T("Test_RH_5mA"));//12
	m_RHCurrent.AddString(_T("Test_RH_7mA"));//
	m_RHCurrent.AddString(_T("Test_RH_9mA"));//
	m_RHCurrent.AddString(_T("Test_RH_11mA"));
	m_RHCurrent.AddString(_T("Test_RH_13mA"));//
	m_RHCurrent.AddString(_T("Test_RH_15mA"));
	m_RHCurrent.AddString(_T("Test_RH_17mA"));//
	m_RHCurrent.AddString(_T("Test_RH_19mA"));//

	m_RHCurrent.SetCurSel(0);


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

HBRUSH SetCurrent::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
	
	// TODO: Return a different brush if the default is not desired
	return hbr;
}

void SetCurrent::OnButton2() 
{
	// TODO: Add your control notification handler code here
	char TX_check = 0X00;
	if(RHFlag == 1)//标定湿度电流
	{
		PWMNum = m_RHCurrent.GetCurSel();		
	if((PWMNum == 0)	|| (PWMNum >= 10) )//没有选择标定
	{
			AfxMessageBox("请先选择标定选项");
			return;
	}

	if(m_SetCurrent_Frequency < ADMaxvalue) 
		m_SetCurrent_Frequency ++;
	else
	{
		AfxMessageBox("请调整硬件!");
		return;
	}	
	if(SetCommData.ret_open != SIO_OK)
	{
	    AfxMessageBox("串口没有打开,请打开串口");
		return;
	}
	else
    { 
			int Num,i;
			Num = 0;
			PWMNum += 0x20;
			SetCommData.TxBuff[Num++]  = (char)0xFF;
			SetCommData.TxBuff[Num++]  = (char)0x03;
			SetCommData.TxBuff[Num++]  = (char)0x04;
			SetCommData.TxBuff[Num++]  = (char)PWMNum;
			SetCommData.TxBuff[Num++]  = (char)0xAA;
							
			TX0.fl = (float)m_SetCurrent_Frequency;
			SendFloatV(Num);
			
			Num +=4;
			TX_check = 0x00;
			for(i = 1; i < Num; i++)
			{
				TX_check ^= SetCommData.TxBuff[i];
			}				
			SetCommData.TxBuff[Num++] = (TX_check >>4) & 0x0F;
			SetCommData.TxBuff[Num++] = TX_check & 0x0F;
			SetCommData.TxBuff[Num++]  = (char)0xFE;
			SetCommData.TxBuff[Num++]  = (char)0xFD;
			sio_write(SetCommData.port,SetCommData.TxBuff,Num);  //把输出缓冲区中的数据发送出去
	}	
	}
    else  if(RHFlag == 0)
	{
		PWMNum = m_CurrentSet.GetCurSel();		
	if((PWMNum == 0)	|| (PWMNum >= 10) )//没有选择标定
	{
			AfxMessageBox("请先选择标定选项");
			return;
	}

	if(m_SetCurrent_Frequency < ADMaxvalue) 
		m_SetCurrent_Frequency ++;
	else
	{
		AfxMessageBox("请调整硬件!");
		return;
	}	
	if(SetCommData.ret_open != SIO_OK)
	{
	    AfxMessageBox("串口没有打开,请打开串口");
		return;
	}
	else
    { 
			int Num,i;
			Num = 0;

			SetCommData.TxBuff[Num++]  = (char)0xFF;
			SetCommData.TxBuff[Num++]  = (char)0x03;
			SetCommData.TxBuff[Num++]  = (char)0x04;
			SetCommData.TxBuff[Num++]  = (char)PWMNum;
			SetCommData.TxBuff[Num++]  = (char)0xAA;
							
			TX0.fl = (float)m_SetCurrent_Frequency;
			SendFloatV(Num);
			
			Num +=4;
			TX_check = 0x00;
			for(i = 1; i < Num; i++)
			{
				TX_check ^= SetCommData.TxBuff[i];
			}				
			SetCommData.TxBuff[Num++] = (TX_check >>4) & 0x0F;
			SetCommData.TxBuff[Num++] = TX_check & 0x0F;
			SetCommData.TxBuff[Num++]  = (char)0xFE;
			SetCommData.TxBuff[Num++]  = (char)0xFD;
			sio_write(SetCommData.port,SetCommData.TxBuff,Num);  //把输出缓冲区中的数据发送出去
	}	
	}
	else
	{
		AfxMessageBox("请先选择标定选项");
			return;
	}

	
}

void SetCurrent::OnButton1() 
{
	// TODO: Add your control notification handler code here
	char TX_check = 0X00;
	if(RHFlag == 1)//标定湿度电流
	{
		PWMNum = m_RHCurrent.GetCurSel();		
		if((PWMNum == 0)	|| (PWMNum >= 10) )//没有选择标定
		{
			AfxMessageBox("请先选择标定选项");
			return;
		}

		if(m_SetCurrent_Frequency > ADMinvalue ) 
		m_SetCurrent_Frequency --;
		else
		{
			AfxMessageBox("请调整硬件!");
			return;
		}

		if(SetCommData.ret_open != SIO_OK)
		{
			AfxMessageBox("串口没有打开,请打开串口");
			return;
		}
		else
		{ 
			int Num,i;
			Num = 0;
			PWMNum += 0x20;
			SetCommData.TxBuff[Num++]  = (char)0xFF;
			SetCommData.TxBuff[Num++]  = (char)0x03;
			SetCommData.TxBuff[Num++]  = (char)0x04;
			SetCommData.TxBuff[Num++]  = (char)PWMNum;
			SetCommData.TxBuff[Num++]  = (char)0xAA;
							
			TX0.fl = (float)m_SetCurrent_Frequency;
			SendFloatV(Num);
			
			Num +=4;
			TX_check = 0x00;
			for(i = 1; i < Num; i++)
			{
				TX_check ^= SetCommData.TxBuff[i];
			}				
			SetCommData.TxBuff[Num++] = (TX_check >>4) & 0x0F;
			SetCommData.TxBuff[Num++] = TX_check & 0x0F;
			SetCommData.TxBuff[Num++]  = (char)0xFE;
			SetCommData.TxBuff[Num++]  = (char)0xFD;
			sio_write(SetCommData.port,SetCommData.TxBuff,Num);  //把输出缓冲区中的数据发送出去
		}	
	
	}
	else if(RHFlag == 0)
	{
		PWMNum = m_CurrentSet.GetCurSel();		
		if((PWMNum == 0)	|| (PWMNum >= 10) )//没有选择标定
		{
			AfxMessageBox("请先选择标定选项");
			return;
		}

		if(m_SetCurrent_Frequency > ADMinvalue ) 
		m_SetCurrent_Frequency --;
		else
		{
			AfxMessageBox("请调整硬件!");
			return;
		}

	

		CString str;
		str.Empty();
		str.Format("%4d",m_SetCurrent_Frequency);
		//SetDlgItemText(IDC_EDIT1,str);


	
		if(SetCommData.ret_open != SIO_OK)
		{
			AfxMessageBox("串口没有打开,请打开串口");
			return;
		}
		else
		{ 
			int Num,i;
			Num = 0;

			SetCommData.TxBuff[Num++]  = (char)0xFF;
			SetCommData.TxBuff[Num++]  = (char)0x03;
			SetCommData.TxBuff[Num++]  = (char)0x04;
			SetCommData.TxBuff[Num++]  = (char)PWMNum;
			SetCommData.TxBuff[Num++]  = (char)0xAA;
							
			TX0.fl = (float)m_SetCurrent_Frequency;

⌨️ 快捷键说明

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