📄 netcmd_dvrinfo.cpp
字号:
#include ".\netcmd_dvrinfo.h"
#define SUCCESS 0
NetCmd_DvrInfo::NetCmd_DvrInfo(void)
{
this->m_DiskFreeSize ="0";
this->m_VideoCount=0;
}
NetCmd_DvrInfo::~NetCmd_DvrInfo(void)
{
}
void NetCmd_DvrInfo::SetDiskFreeSize(CString fsize)
{
this->m_DiskFreeSize =fsize;
}
void NetCmd_DvrInfo::SetVideoCount(short icount)
{
this->m_VideoCount =icount;
}
void NetCmd_DvrInfo::SetText(CString strText)
{
this->m_Text =strText;
}
void NetCmd_DvrInfo::SetAvailPhys(DWORD dwAvailPhys)
{
this->m_AvailPhys=dwAvailPhys;
}
void NetCmd_DvrInfo::SetTotalPhys(DWORD dwTotalPhys)
{
this->m_TotalPhys=dwTotalPhys;
}
void NetCmd_DvrInfo::SetCpuUsePercent(DWORD dwCpuUsePercent)
{
this->m_CpuUsePercent=dwCpuUsePercent;
}
void NetCmd_DvrInfo::SetHardFreeBytes(DWORD dwFreeBytes)
{
this->m_HardFreeBytes =dwFreeBytes;
}
void NetCmd_DvrInfo::SetHardTotalBytes(DWORD dwTotalBytes)
{
this->m_HardTotalBytes=dwTotalBytes;
}
void NetCmd_DvrInfo::SetDateTime(CString strDateTime)
{
this->m_DateTime =strDateTime;
}
CString NetCmd_DvrInfo::GetDiskFreeSize()
{
return this->m_DiskFreeSize;
}
short NetCmd_DvrInfo::GetVideoCount()
{
return this->m_VideoCount;
}
CString NetCmd_DvrInfo::GetText()
{
return this->m_Text;
}
DWORD NetCmd_DvrInfo::GetTotalPhys()
{
return this->m_TotalPhys;
}
DWORD NetCmd_DvrInfo::GetAvailPhys()
{
return this->m_AvailPhys;
}
DWORD NetCmd_DvrInfo::GetCpuUsePercent()
{
return this->m_CpuUsePercent;
}
DWORD NetCmd_DvrInfo::GetHardFreeBytes()
{
return this->m_HardFreeBytes;
}
DWORD NetCmd_DvrInfo::GetHardTotalBytes()
{
return this->m_HardTotalBytes;
}
CString NetCmd_DvrInfo::GetDateTime()
{
return this->m_DateTime;
}
void NetCmd_DvrInfo::XmlDeSerialize(BSTR strDvrInfoXml)
{
IXMLDOMDocument *pDoc;
if(SUCCEEDED(CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER,
IID_IXMLDOMDocument, (void**)&pDoc) ))
{
VARIANT_BOOL success;
pDoc->loadXML(strDvrInfoXml,&success);
if (success==VARIANT_TRUE)
{
IXMLDOMNode *pCmdNode=NULL;
HRESULT hr_cmd=pDoc->selectSingleNode(_bstr_t("Cmd"),&pCmdNode);
if (hr_cmd==SUCCESS)
{
IXMLDOMNode *pDvrInfoNode = NULL;
BSTR bstrSS =_bstr_t("DvrInfo");
HRESULT hr_DvrInfo = pCmdNode->selectSingleNode(bstrSS,&pDvrInfoNode);
if (hr_DvrInfo==SUCCESS)
{
IXMLDOMNamedNodeMap *pAttrs = NULL; //属性链表
pDvrInfoNode->get_attributes(&pAttrs);
IXMLDOMNode *pVideoCountAttr=NULL; //视频数属性
HRESULT hr_VideoCount= pAttrs->getNamedItem(_bstr_t("VideoCount"),&pVideoCountAttr);
if (hr_VideoCount==SUCCESS)
{
VARIANT bstrCount_obj;
pVideoCountAttr->get_nodeValue(&bstrCount_obj);
this->m_VideoCount = atoi((CString)bstrCount_obj);
}
IXMLDOMNode *pDiskFreeSizeAttr=NULL; //待用*
HRESULT hr_DiskFreeSize=pAttrs->getNamedItem(_bstr_t("DiskFreeSize"),&pDiskFreeSizeAttr);
if (hr_DiskFreeSize==SUCCESS)
{
VARIANT bstr_obj;
pDiskFreeSizeAttr->get_nodeValue(&bstr_obj);
this->m_DiskFreeSize =(CString)bstr_obj;
}
IXMLDOMNode *pTotalPhys=NULL; //物理内存
HRESULT hr_TotalPhys=pAttrs->getNamedItem(_bstr_t("TotalPhys"),&pTotalPhys);
if (hr_TotalPhys==SUCCESS)
{
VARIANT bstr_obj_TotalPhys;
pTotalPhys->get_nodeValue(&bstr_obj_TotalPhys);
this->m_TotalPhys =atoi((CString)bstr_obj_TotalPhys);//(DWORD)bstr_obj;
}
IXMLDOMNode *pAvailPhys=NULL; //可用物理内存
HRESULT hr_AvailPhys=pAttrs->getNamedItem(_bstr_t("AvailPhys"),&pAvailPhys);
if (hr_AvailPhys==SUCCESS)
{
VARIANT bstr_obj_AvailPhys;
pAvailPhys->get_nodeValue(&bstr_obj_AvailPhys);
this->m_AvailPhys =atoi((CString)bstr_obj_AvailPhys);
}
IXMLDOMNode *pHardFreeBytes=NULL; //硬盘可用空间
HRESULT hr_HardFreeBytes=pAttrs->getNamedItem(_bstr_t("HardFreeBytes"),&pHardFreeBytes);
if (hr_HardFreeBytes=SUCCESS)
{
VARIANT bstr_obj_HardFreeBytes;
pHardFreeBytes->get_nodeValue(&bstr_obj_HardFreeBytes);
this->m_HardFreeBytes =atoi((CString)bstr_obj_HardFreeBytes);
}
IXMLDOMNode *pHardTotalBytes=NULL; //硬盘容间
HRESULT hr_HardTotalBytes=pAttrs->getNamedItem(_bstr_t("HardTotalBytes"),&pHardTotalBytes);
if (hr_HardTotalBytes==SUCCESS)
{
VARIANT bstr_obj_HardTotalBytes;
pHardTotalBytes->get_nodeValue(&bstr_obj_HardTotalBytes);
this->m_HardTotalBytes =atoi((CString)bstr_obj_HardTotalBytes);
}
IXMLDOMNode *pCpuUsePercent=NULL; //CPU使用百分比
HRESULT hr_CpuUsePercent=pAttrs->getNamedItem(_bstr_t("CpuUsePercent"),&pCpuUsePercent);
if (hr_CpuUsePercent==SUCCESS)
{
VARIANT bstr_obj_CpuUsePercent;
pCpuUsePercent->get_nodeValue(&bstr_obj_CpuUsePercent);
this->m_CpuUsePercent =atoi((CString)bstr_obj_CpuUsePercent);
}
}
}
}
pDoc->Release();
}
else
{
pDoc->Release();
}
}
CString NetCmd_DvrInfo::XmlSerialize()
{
BSTR bstrXml;
CString strHeader="<Cmd><DvrInfo VideoCount=\"0\" DiskFreeSize=\"none\" TotalPhys=\"0\" AvailPhys=\"0\" HardFreeBytes=\"0\" HardTotalBytes=\"0\" CpuUsePercent=\"0\" DateTime=\"2000-01-01\"></DvrInfo></Cmd>";
bstrXml=_bstr_t(strHeader);
IXMLDOMDocument *pDoc;
if(SUCCEEDED(CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER,
IID_IXMLDOMDocument, (void**)&pDoc) ))
{
VARIANT_BOOL success;
pDoc->loadXML(bstrXml,&success);
if (success==VARIANT_TRUE)
{
IXMLDOMNode *pCmdNode=NULL;
HRESULT hr_cmd=pDoc->selectSingleNode(_bstr_t("Cmd"),&pCmdNode);
if (hr_cmd==SUCCESS)
{
IXMLDOMNode *pDvrInfoNode = NULL;
BSTR bstrSS =_bstr_t("DvrInfo");
HRESULT hr_DvrInfo = pCmdNode->selectSingleNode(bstrSS,&pDvrInfoNode);
if (hr_DvrInfo==SUCCESS)
{
IXMLDOMNamedNodeMap *pAttrs = NULL; //属性链表
pDvrInfoNode->get_attributes(&pAttrs);
IXMLDOMNode *pVideoCountAttr=NULL; //视频数属性
// CString strTempChannel;
HRESULT hr_VideoCount= pAttrs->getNamedItem(_bstr_t("VideoCount"),&pVideoCountAttr);
if (hr_VideoCount==SUCCESS)
{
_variant_t obj_VideoCount(this->m_VideoCount);
pVideoCountAttr->put_nodeValue(obj_VideoCount); //设置XML录相节点通道属性值
}
IXMLDOMNode *pDiskFreeSizeAttr=NULL;
HRESULT hr_DiskFreeSize=pAttrs->getNamedItem(_bstr_t("DiskFreeSize"),&pDiskFreeSizeAttr);
if (hr_DiskFreeSize==SUCCESS)
{
//BSTR bstrValue
VARIANT obj_DiskFreeSize;
obj_DiskFreeSize.vt=VT_BSTR;
obj_DiskFreeSize.bstrVal=_bstr_t(this->m_DiskFreeSize);
pDiskFreeSizeAttr->put_nodeValue(obj_DiskFreeSize);
}
IXMLDOMNode *pTotalPhys=NULL;
HRESULT hr_TotalPhys=pAttrs->getNamedItem(_bstr_t("TotalPhys"),&pTotalPhys);
if (hr_TotalPhys==SUCCESS)
{
variant_t obj_TotalPhys(this->m_TotalPhys);
pTotalPhys->put_nodeValue(obj_TotalPhys);
}
IXMLDOMNode *pAvailPhys=NULL;
HRESULT hr_AvailPhys=pAttrs->getNamedItem(_bstr_t("AvailPhys"),&pAvailPhys);
if (hr_AvailPhys==SUCCESS)
{
variant_t obj_AvailPhys(this->m_AvailPhys);
pAvailPhys->put_nodeValue(obj_AvailPhys);
}
IXMLDOMNode *pHardFreeBytes=NULL;
HRESULT hr_HardFreeBytes=pAttrs->getNamedItem(_bstr_t("HardFreeBytes"),&pHardFreeBytes);
if (hr_HardFreeBytes==SUCCESS)
{
variant_t obj_HardFreeBytes(this->m_HardFreeBytes);
pHardFreeBytes->put_nodeValue(obj_HardFreeBytes);
}
IXMLDOMNode *pHardTotalBytes=NULL;
HRESULT hr_HardTotalBytes=pAttrs->getNamedItem(_bstr_t("HardTotalBytes"),&pHardTotalBytes);
if (hr_HardTotalBytes==SUCCESS)
{
variant_t obj_HardTotalBytes(this->m_HardTotalBytes);
pHardTotalBytes->put_nodeValue(obj_HardTotalBytes);
}
IXMLDOMNode *pCpuUsePercent=NULL;
HRESULT hr_CpuUsePercent=pAttrs->getNamedItem(_bstr_t("CpuUsePercent"),&pCpuUsePercent);
if (hr_CpuUsePercent==SUCCESS)
{
variant_t obj_CpuUsePercent(this->m_CpuUsePercent);
pCpuUsePercent->put_nodeValue(obj_CpuUsePercent);
}
IXMLDOMNode *pDateTime=NULL;
HRESULT hr_DateTime=pAttrs->getNamedItem(_bstr_t("DateTime"),&pDateTime);
if (hr_DateTime==SUCCESS)
{
this->SetDateTime(GetSysDateTime());
variant_t obj_DateTime(this->m_DateTime);
pDateTime->put_nodeValue(obj_DateTime);
}
pDvrInfoNode->put_text(_bstr_t(this->m_Text));
}
}
}
pDoc->get_xml(&bstrXml);
CString strXml(bstrXml); // in UNICODE mode
pDoc->Release();
return strXml;
}
else
{
pDoc->Release();
return strHeader;
}
}
CString NetCmd_DvrInfo::GetSysDateTime()
{
SYSTEMTIME obj;
GetSystemTime(&obj);
CString strTemp="";
strTemp.Format("%d-%d-%d %d:%d:%d",obj.wYear,obj.wMonth,obj.wDay,obj.wHour,obj.wMinute,obj.wSecond);
return strTemp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -