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

📄 uploaddata.cpp

📁 电压监测后台管理程序,数据是通过GPRS传到因特网的
💻 CPP
字号:
// uploaddata.cpp : implementation file
//

#include "stdafx.h"
#include "rectvinfo.h"
#include "uploaddata.h"

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

/////////////////////////////////////////////////////////////////////////////
// uploaddata dialog

CRectvinfoApp* theUpDlgApp;

uploaddata::uploaddata(CWnd* pParent /*=NULL*/)
	: CDialog(uploaddata::IDD, pParent)
{
	//{{AFX_DATA_INIT(uploaddata)
	m_md = 1;
	m_statictxt = _T("月份:");
	//}}AFX_DATA_INIT
}


void uploaddata::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(uploaddata)
	DDX_Control(pDX, IDC_COMBO_TERMID, m_termid);
	DDX_Control(pDX, IDC_COMBO_DATATYPE, m_datatype);
	DDX_Text(pDX, IDC_EDIT_MD, m_md);
	DDV_MinMaxByte(pDX, m_md, 1, 50);
	DDX_Text(pDX, IDC_STATIC_MD, m_statictxt);
	DDV_MaxChars(pDX, m_statictxt, 20);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(uploaddata, CDialog)
	//{{AFX_MSG_MAP(uploaddata)
	ON_CBN_SELCHANGE(IDC_COMBO_DATATYPE, OnSelchangeComboDatatype)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// uploaddata message handlers

BOOL uploaddata::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CString str;
//	str.Format(_T("所有DSP"));
//	m_datatype.InsertString(0,(LPCTSTR)str);
	str.Format(_T("查询月统计数据"),0);
	m_datatype.InsertString(0,(LPCTSTR)str);
	str.Format(_T("查询本月日统计"),1);
	m_datatype.InsertString(1,(LPCTSTR)str);
	str.Format(_T("查询上月日统计"),2);
	m_datatype.InsertString(2,(LPCTSTR)str);
	str.Format(_T("查询掉电数据"),3);
	m_datatype.InsertString(3,(LPCTSTR)str);
	str.Format(_T("查询实时电压"),4);
	m_datatype.InsertString(4,(LPCTSTR)str);
	str.Format(_T("查询实时时钟"),5);
	m_datatype.InsertString(5,(LPCTSTR)str);
	str.Format(_T("查询仪器参数"),6);
	m_datatype.InsertString(6,(LPCTSTR)str);
	str = _T("下载实时时钟");
	m_datatype.InsertString(7,(LPCTSTR)str);
	str = _T("下载仪器参数");
	m_datatype.InsertString(8,(LPCTSTR)str);

	m_datatype.SetCurSel(0);

	theUpDlgApp = (CRectvinfoApp*)AfxGetApp();

	int i,ti=0;
	char * telnum;
	SOCKET ts;

	for (i=0;i<MAXCLIENTNUM;i++)
	{
		telnum = theUpDlgApp->GetSocketTel(i);
		ts = theUpDlgApp->GetSocket(i);
		if((strlen(telnum)==4)&&(ts!=NULL))
		{
			m_termid.InsertString(ti,(LPCTSTR)telnum);
			route[ti] = i;
			ti++;
		}
	}
	m_termid.SetCurSel(0);


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

void uploaddata::OnOK() 
{
	// TODO: Add extra validation here
	unsigned int order,j,i;
	SYSTEMTIME loctime;
	DWORD twoparam;

	UpdateData(TRUE);
	if (m_termid.GetCount()==0) MessageBox("目前没有联机的终端!");
	else
	{
		order = m_datatype.GetCurSel();
		if (order==0)
		{
			if ((m_md<1)||(m_md>12))
			{
				MessageBox("月份错误!");
				return;
			}
		}
		else if (order<3)
		{
			GetLocalTime(&loctime);
			if (loctime.wMonth==2)
			{
				if (loctime.wYear%4==0) j = 29;
				else j = 28;
			}
			else if ((loctime.wMonth==4)||(loctime.wMonth==6)||(loctime.wMonth==9)||(loctime.wMonth==10)||(loctime.wMonth==12))
			{
				j = 30;
			}
			else j = 31;
			if ((m_md<1)||(m_md>j)) 
			{
				MessageBox("日期错误!");
				return;
			}
		}
		else if (order==3)
		{
/*			if ((m_md<1)||(m_md>50)) 
			{
				MessageBox("记录序号错误!");
				return;
			}*/
		}
		else m_md = 0x11;
		if (order<5) order+=3;
		else if (order<7) order+=8;
		else order += 0x26;
		j = (m_md/10)*16+m_md%10;
		twoparam = order | (j<<16);
		i = m_termid.GetCurSel();
		i = route[i];
//		i=0;
		if ((i>=MAXCLIENTNUM)||(i<0)) MessageBox("严重错误!");
		else
		{
			if (theUpDlgApp->CommPtr->GetSocketCommState(i) != 0)
			{
				MessageBox("这个终端的前次通信尚未结束!请稍等再试!");
				return;
			}
			theUpDlgApp->CommPtr->PostThreadMessage(UPLOADDATA, WPARAM(twoparam), LPARAM(i));
		}
	}
	
	CDialog::OnOK();
}

void uploaddata::OnSelchangeComboDatatype() 
{
	// TODO: Add your control notification handler code here
	int ti;

	ti = m_datatype.GetCurSel();
	if (ti>3)
	{
		m_statictxt.Empty();
	}
	else if (ti==3) m_statictxt = _T("记录序号:");
	else if (ti==0)
	{
		m_statictxt = _T("月份:");
	}
	else m_statictxt = _T("日期:");
	UpdateData(FALSE);
	
}

⌨️ 快捷键说明

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