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

📄 ptcpowerdc.cpp

📁 电信机房MDF、电源柜监控源码,主要用在通信机房配线设备监控、电源柜监控
💻 CPP
字号:
#include "stdafx.h"
#include "ptcpowerdc.h"

//extern CMDFApp theApp;

CPtcPowerDC::CPtcPowerDC(void)
{
	//m_pAdoDB = theApp.m_pAdoDB;
}

CPtcPowerDC::~CPtcPowerDC(void)
{
}
int CPtcPowerDC::SetParent(CWnd * m_wnd)
{
	if (m_wnd)
	{
		m_pWnd = m_wnd;
		return 0;
	}else
	{
		return -1;
	}
}

int CPtcPowerDC::DataAnalyse(CInfoFrame frame)
{
	//分析直流电源柜协议数据
	
	char cBuf[4096];
	int iSub = 0;
	int iSample = 0;
	int iVoltage = 0;
	int iRet = 0;
	int iLen = 0;
	BYTE cData[5];
	CString strBuf;
	BYTE bt ;
	iLen = frame.nRLen; 
	memcpy(cBuf,frame.ucBuf ,iLen);

	//校验数据的合法性
	//if (!((BYTE)cBuf[0] == 0x7e && (BYTE)cBuf[iLen] == 0x0D))
		//return -1;
	
	
	tyPowerDC m_curData;
	//取得地址码
	strBuf = cBuf[3];
	strBuf += cBuf[4];
	sscanf(strBuf.GetBuffer(),"%X",&(m_curData.m_Addr));

	strBuf = cBuf[7];
	strBuf += cBuf[8];
	sscanf(strBuf.GetBuffer(),"%X",&iRet);
	if (iRet == 2)
		return(-1);

	//取得支路空开告警信息
	strBuf = cBuf[13];
	strBuf += cBuf[14];
	sscanf(strBuf.GetBuffer(),"%X",&(m_curData.m_subAlarm));
	


	//取得电压电流告警信息
	strBuf = cBuf[15];
	strBuf += cBuf[16];
	sscanf(strBuf.GetBuffer(),"%X",&(m_curData.m_Alarm));

	//主路电压
	memcpy(cData,&(cBuf[17]),4);
	cData[4] = '\0';
	sscanf((char *)cData,"%X",&(m_curData.m_majorPower));

	//备路电压
	memcpy(cData,&(cBuf[21]),4);
	cData[4] = '\0';
	sscanf((char *)cData,"%X",&(m_curData.m_minorPower));
	//主路电流
	memcpy(cData,&(cBuf[25]),4);
	cData[4] = '\0';
	sscanf((char *)cData,"%X",&(m_curData.m_majorCarrent));	

	//备路电流
	memcpy(cData,&(cBuf[29]),4);
	cData[4] = '\0';
	sscanf((char *)cData,"%X",&(m_curData.m_minorCarrent));	
	m_curData.m_time = CTime::GetCurrentTime();
	//送出告警信息
	



	//刷新电源柜界面图
	/*
	m_Power1.SetValue((float)m_curData.m_majorPower /1000);
	m_Power2.SetValue((float)m_curData.m_minorPower /1000);
	m_Power3.SetValue((float)m_curData.m_majorCarrent /100);
	m_Power4.SetValue((float)m_curData.m_minorCarrent /100);
	*/
	/*
	memset(m_curData.m_sub,0,sizeof(m_curData.m_sub));
	if (m_curData.m_subAlarm == 0)
	{
		memset(m_subStatus,0,sizeof(m_subStatus));	
		
	}else
	{
		m_curData.m_sub[m_curData.m_subAlarm-1] = 1;
		m_subStatus[m_curData.m_subAlarm - 1] = 1;
	}
	*/
	
	/*设置支路状态
	CWnd * m_wndSub = GetDlgItem(IDC_STASUB);
	CRect rect;
	m_wndSub->GetWindowRect(&rect);
	ScreenToClient(&rect);
	this->InvalidateRect(&rect,0);
	SetDeviceStatus(m_curData);
	*/

	//保存数据

	if (m_pWnd)
	{
		SendMessage(m_pWnd->m_hWnd, WM_DEVICE_ALARM,(WPARAM)&m_curData,NULL);
	}

	return -1;
}

⌨️ 快捷键说明

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