void XMLFileSave() { CMarkup xml; xml.AddElem(L"SERVERLIST"); xml.AddChildElem(L"SERVER"); xml.IntoElem(); xml.AddChildElem(L"IP", L"127.0.0.1"); xml.AddChildElem(L"PORT", 10000); xml.AddChildElem(L"IDENTIFER", 10000); xml.AddChildElem(L"DESC", L"GAME DATABASE SERVER"); xml.OutOfElem(); xml.AddChildElem(L"SERVER"); xml.IntoElem(); xml.AddChildElem(L"IP", L"127.0.0.1"); xml.AddChildElem(L"PORT", 10001); xml.AddChildElem(L"IDENTIFER", 9000); xml.AddChildElem(L"DESC", L"AUTH SERVER"); xml.OutOfElem(); std::wstring csXML = xml.GetDoc(); xml.Save(L"ServerConnection.xml"); wprintf(L"%s", csXML.c_str()); }
void CRequestXmlMessage::packedSendMessage(NetMessage& netMessage) { CMarkup xml; xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"); xml.AddElem("Message"); xml.AddChildElem("Header"); xml.IntoElem(); xml.AddAttrib("MsgType", "EMSG_REQUESTXML_RSP"); xml.OutOfElem(); xml.AddChildElem("Result"); xml.IntoElem(); xml.AddAttrib("ErrorCode", 0); xml.AddAttrib("Value", QString::fromLocal8Bit("成功").toStdString().c_str()); xml.OutOfElem(); xml.AddChildElem("SvrInfo"); xml.IntoElem(); xml.AddAttrib("UpdateXmlUrl", MessageDataMediator->m_strUpdateXMLUrl.toStdString().c_str()); xml.AddAttrib("HelpInfoXmlUrl", MessageDataMediator->m_strHelpXMLUrl.toStdString().c_str()); xml.AddAttrib("VersionCheckFileUrl", MessageDataMediator->m_strClientVersionUrl.toStdString().c_str()); xml.AddAttrib("TextMode", MessageDataMediator->m_bTextMode ? "1" : "0"); xml.OutOfElem(); netMessage.msgBuffer = packXml(&xml); netMessage.msgLen = xml.GetDoc().length(); }
//This method allow you to load the XML file std::vector<Stage*>* Stage::LoadFromXML(std::string path) { //creating object std::vector<Stage*>* stages = nullptr; //creating a vector of stage object CMarkup xml; //if cant load file return if (!xml.Load(path)) return stages; //it cant find element return stages if (!xml.FindElem("Stages")) return stages; stages = new std::vector<Stage*>(); //creating a vector of stages object xml.IntoElem(); //go up 1 level while (xml.FindElem("Stage")) //find stage { Stage* stage = new Stage(); stages->push_back(stage); //push each stage into vector of stage xml.IntoElem(); //go up 1 level if (xml.FindElem("Flag")) //find the flag { int x, y; xml.IntoElem(); //go up 1 level xml.FindElem("x"); //find x x = atoi(xml.GetData().c_str()); //assign x cord from xml into int xml.FindElem("y"); //find y y = atoi(xml.GetData().c_str()); //assign y cord from xml into int stage->flagPosition = new Vector2(x, y); //push x and y into vector for flag position xml.OutOfElem(); //go back 1 level } while (xml.FindElem("Block")) //find block and do the same as flag { Block* block; int x; int y; xml.IntoElem(); xml.FindElem("x"); x = atoi(xml.GetData().c_str()); xml.FindElem("y"); y = atoi(xml.GetData().c_str()); block = new Block(x, y); stage->Blocks->push_back(block); xml.OutOfElem(); } xml.OutOfElem(); } return stages; }
void XMLFileRead() { CMarkup xml; xml.Load(L"ServerConnection.xml"); while (xml.FindChildElem(L"SERVER")) { _ConnectorInfo connectorInfo; xml.IntoElem(); xml.FindChildElem(L"IP"); connectorInfo.szIP = xml.GetChildData(); xml.FindChildElem(L"PORT"); connectorInfo.port = _ttoi(xml.GetChildData().c_str()); xml.FindChildElem(L"IDENTIFER"); connectorInfo.identifier = _ttoi(xml.GetChildData().c_str()); xml.FindChildElem(L"DESC"); connectorInfo.szDesc = xml.GetChildData(); xml.OutOfElem(); } }
bool SFServerConnectionManager::InitServerList(WCHAR* szFileName) { CMarkup xml; xml.Load(L"ServerConnection.xml"); while (xml.FindChildElem(L"SERVER")) { _ServerInfo serverInfo; xml.IntoElem(); xml.FindChildElem(L"IP"); serverInfo.szIP = xml.GetChildData(); xml.FindChildElem(L"PORT"); serverInfo.port = _ttoi(xml.GetChildData().c_str()); xml.FindChildElem(L"IDENTIFER"); serverInfo.identifer = _ttoi(xml.GetChildData().c_str()); xml.FindChildElem(L"DESC"); serverInfo.szDesc = xml.GetChildData(); xml.OutOfElem(); SFServerBridge* pServer = new SFServerBridge(serverInfo); m_mapServerInfo.insert(std::make_pair(serverInfo.identifer, pServer)); } return true; }
static int _ParseSegXml(const char *src, const LocationInfo *location, int len, int *extraLoaction, int extraLen, char *dst) { CMarkup xml; xml.SetDoc(src); if (!xml.FindElem("SEGMENTS")){ return -1; } xml.IntoElem(); if (! xml.FindElem("SEGMENT")){ return -1; } xml.IntoElem(); _doIntersect(location, len, extraLoaction, extraLen); while (xml.FindElem("COLUMN")) { int id = atoi(xml.GetAttrib("ID").c_str()); if (_isExtra(id, extraLoaction, extraLen)) { continue; } if (!isExist(id, location, len)) { xml.RemoveElem(); } } xml.OutOfElem(); xml.OutOfElem(); strcpy(dst, xml.GetDoc().c_str()); return 0; }
BOOL FindMarkItem(CMarkup& markDoc, ST_MARKITEM& kvOut) { while(markDoc.FindElem()) { //tree node, set val to empty kvOut.strVal.Empty(); kvOut.bIsPath = TRUE; ST_MARKITEM tmpItem; CString strAttKey; CString strAttVal; int nAttIdx = 0; while(markDoc.GetNthAttrib(nAttIdx, strAttKey, strAttVal)) { tmpItem.mapAttrib[strAttKey] = strAttVal; ++nAttIdx; } tmpItem.strKey = markDoc.GetTagName(); tmpItem.strVal = markDoc.GetElemContent(); markDoc.IntoElem(); FindMarkItem(markDoc, tmpItem); markDoc.OutOfElem(); kvOut.mapChildItem[tmpItem.strKey] = tmpItem; } return TRUE; }
BOOL WriteMarkupString(CMarkup& markDoc, ST_MARKITEM& itemIn) { if (!itemIn.strKey.IsEmpty() && itemIn.strKey.Compare(TEXT(".")) != 0) { markDoc.AddElem(itemIn.strKey, itemIn.strVal); } MAPKEYATTRIB ::iterator itb = itemIn.mapAttrib.begin(); MAPKEYATTRIB ::iterator ite = itemIn.mapAttrib.end(); for (; itb != ite; ++itb) { markDoc.AddAttrib(itb->first, itb->second); } MAPKEYVALUE& mapchild = itemIn.mapChildItem; MAPKEYVALUE::iterator itkvb = mapchild.begin(); MAPKEYVALUE::iterator itkve = mapchild.end(); for (; itkvb != itkve; ++itkvb) { markDoc.IntoElem(); WriteMarkupString(markDoc, itkvb->second); markDoc.OutOfElem(); } return TRUE; }
bool CInstrOffsetData::Load(LPCTSTR filePath, bool isCreate) { m_data.clear(); CMarkup xml; if (!xml.Load(filePath)) { return false; } if (!xml.FindElem("root")) { return false; } xml.IntoElem(); if (!xml.FindElem("data")) { return false; } xml.IntoElem(); while (xml.FindElem("frequency")) { double frequency = atof(xml.GetAttrib("value")); xml.IntoElem(); while (xml.FindElem("power")) { double dest_power = atof(xml.GetAttrib("dest_power")); double offset = atof(xml.GetAttrib("offset")); m_data[frequency][dest_power] = offset; } xml.OutOfElem(); } return true; }
bool CInstrOffsetData::Save(LPCTSTR filePath) { CMarkup xml; xml.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); xml.AddNode(CMarkup::MNT_ELEMENT, "root"); xml.IntoElem(); M2::iterator m2it; xml.AddNode(CMarkup::MNT_ELEMENT, "header"); xml.SetAttrib("version", 1); xml.AddNode(CMarkup::MNT_ELEMENT, "data"); xml.IntoElem(); for (m2it = m_data.begin(); m2it != m_data.end(); m2it++) { CString frequency; frequency.Format("%f", m2it->first); xml.AddNode(CMarkup::MNT_ELEMENT, "frequency"); xml.SetAttrib("value", frequency); xml.IntoElem(); M1::iterator m1it; for (m1it = m2it->second.begin(); m1it != m2it->second.end(); m1it++) { CString dbm, offset; dbm.Format("%f", m1it->first); offset.Format("%f", m1it->second); xml.AddNode(CMarkup::MNT_ELEMENT, "power"); xml.SetAttrib("dest_power", dbm); xml.SetAttrib("offset", offset); } xml.OutOfElem(); } return xml.Save(filePath); }
// 根据配置索引获取配置信息 CString CVCheckerClsConfig::fGetConfigData(int nConfigIndex) { if (m_strConfigFile == _T("")) return _T(""); CMarkup xml; BOOL bLoad = FALSE; bLoad = xml.Load(m_strConfigFile); if (!bLoad) return _T(""); xml.ResetPos(); while ( xml.FindChildElem(_T("System_Config"))) { xml.IntoElem(); //xml.ResetMainPos(); //xml.FindChildElem( "NAME" ); //// xml.FindChildElem(); //CString csName = xml.GetChildData(); //AfxMessageBox(csName); //xml.ResetMainPos(); //注意复位 //xml.FindChildElem( "SN" ); //// xml.FindChildElem(); //CString csSN = xml.GetChildData(); //AfxMessageBox(csSN); xml.OutOfElem(); } return CString(); }
void db_leos::DownloadLyrics(window_config *wcfg, lyric_data* data) { data->Text = _T(""); tstring xmltext; if (!ReadInternetTextFromUrl(xmltext, _T("FOO_UIE_LYRICS2"), data->Source, wcfg->cfg_timeout, wcfg)) return ; tstring info_text; CMarkup xml; if (!xml.SetDoc(xmltext.c_str())) return ; if (xml.FindChildElem(_T("lyric"))) { xml.IntoElem(); if (xml.FindChildElem(_T("text"))) { xml.IntoElem(); info_text = xml.GetData(); xml.OutOfElem(); } xml.OutOfElem(); } data->Text = info_text; data->Text = ReplaceString(_T("\r"), _T(""), data->Text); data->Text = ReplaceString(_T("\n"), _T("\r\n"), data->Text); data->IsLoaded = true; if (data->Text.find(_T("[")) != tstring::npos) data->IsTimestamped = true; else data->IsTimestamped = false; }
bool CRegisterIdMessage::packedSendMessage(NetMessage& netMessage) { CMarkup xml; xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"); xml.AddElem("Message"); xml.AddChildElem("Header"); xml.IntoElem(); xml.AddAttrib("MsgType", "EMSG_REGISTERID_REQ"); xml.OutOfElem(); xml.AddChildElem("Info"); xml.IntoElem(); xml.AddAttrib("Id", MessageDataMediator->m_strNewId.toStdString().c_str()); //xml.AddAttrib("Id", "23423"); xml.OutOfElem(); netMessage.msgBuffer = packXml(&xml); netMessage.msgLen = xml.GetDoc().length(); return true; }
void XmlProxyCallback::_sendXmlMessage(const std::string & sMessage) { CMarkup xmlMessage; xmlMessage.AddElem("response"); xmlMessage.IntoElem(); xmlMessage.AddElem("message", sMessage); xmlMessage.OutOfElem(); _sendXmlResponse(xmlMessage, _sResponseEncode); }
int SaveLoadCNN::GetClusterVec(CMarkup ClusterXml, std::vector<Group*>* Cluster) { PlotPoint gP,nP; RGB col; std::vector<Neuron*> n_temp; int clusterID = 0; Cluster->clear(); //clear the vector ClusterXml.FindElem("ClusterData"); ClusterXml.IntoElem(); while ( ClusterXml.FindElem("Group") ) { clusterID = atoi(ClusterXml.GetAttrib("GID").c_str()); n_temp.clear(); //get the colours of the Neurons in this group col.r = atof(ClusterXml.GetAttrib("r").c_str()); col.g = atof(ClusterXml.GetAttrib("g").c_str()); col.b = atof(ClusterXml.GetAttrib("b").c_str()); ClusterXml.IntoElem(); while ( ClusterXml.FindElem("Neuron")) { nP.x = atof(ClusterXml.GetAttrib("x").c_str()); nP.y = atof(ClusterXml.GetAttrib("y").c_str()); nP.z = atof(ClusterXml.GetAttrib("z").c_str()); n_temp.push_back(new Neuron(clusterID, nP, atof(ClusterXml.GetAttrib("Threshold").c_str()), atof(ClusterXml.GetAttrib("Epsilon").c_str()), atoi(ClusterXml.GetAttrib("Refractory").c_str()), col )); } ClusterXml.OutOfElem(); gP.x = atof(ClusterXml.GetAttrib("x").c_str()); gP.y = atof(ClusterXml.GetAttrib("y").c_str()); gP.z = atof(ClusterXml.GetAttrib("z").c_str()); Group* _newGroup = new Group(); _newGroup->Init(n_temp,clusterID,gP,col); Cluster->push_back(_newGroup); } return Cluster->size(); }
void CXmlElement::Save(CMarkup& xml) { xml.AddElem(_name, _value); for (unsigned int i = 0; i < _attributes.size(); ++i) { xml.AddAttrib(_attributes[i].first, _attributes[i].second); } xml.IntoElem(); for (unsigned int i = 0; i < _children.size(); ++i) { _children[i]->Save(xml); } xml.OutOfElem(); }
void CDistributeMessage::packedSendMessage(NetMessage& netMessage) { CMarkup xml; xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"); xml.AddElem("Message"); xml.AddChildElem("Header"); xml.IntoElem(); xml.AddAttrib("MsgType", "EMSG_DISTRIBUTEMSG_REQ"); xml.OutOfElem(); xml.AddChildElem("Result"); xml.IntoElem(); xml.AddAttrib("ErrorCode", 0); xml.AddAttrib("Value", QString::fromLocal8Bit("³É¹¦").toStdString().c_str()); xml.OutOfElem(); xml.AddChildElem("Info"); xml.IntoElem(); xml.AddAttrib("Msg", MessageDataMediator->m_strDistributeMsg.toStdString().c_str()); xml.AddAttrib("Time", MessageDataMediator->m_strDistributeTime.toStdString().c_str()); xml.OutOfElem(); netMessage.msgBuffer = packXml(&xml); netMessage.msgLen = xml.GetDoc().length(); }
void CSoftInstallMessage::packedSendMessage(NetMessage& netMessage) { CMarkup xml; xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"); xml.AddElem("Message"); xml.AddChildElem("Header"); xml.IntoElem(); xml.AddAttrib("MsgType", "EMSG_SOFTINSTALL_RSP"); xml.OutOfElem(); xml.AddChildElem("Result"); xml.IntoElem(); xml.AddAttrib("ErrorCode", 0); xml.AddAttrib("Value", QString::fromLocal8Bit(m_bAddSuccess ? "添加成功" : "添加失败,XML无法解析").toStdString().c_str()); xml.OutOfElem(); xml.AddChildElem("Info"); xml.IntoElem(); xml.AddAttrib("Name", m_strName.toStdString().c_str()); //中文问题测试 yhb xml.AddAttrib("Version", m_strVersion.toStdString().c_str()); xml.OutOfElem(); netMessage.msgBuffer = packXml(&xml);; netMessage.msgLen = xml.GetDoc().length(); }
static int _ParseXml(const char *src, std::map<std::string, std::string> &mapValue) { CMarkup xml; xml.SetDoc(src); if (!xml.FindElem("SEGMENTS")){ return -1; } xml.IntoElem(); while (xml.FindElem("SEGMENT")){ std::string szSource = xml.GetAttrib("SOURCE"); mapValue[szSource] = xml.GetAttrib("VALUE"); } xml.OutOfElem(); return 0; }
void CComputerGrid::SaveToFile() { CMarkup ActiveMembers; //ActiveMembers.SetDoc(_T("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\r\n")); ActiveMembers.AddElem(_T("ActiveMembers")); ActiveMembers.AddChildElem(_T("Operator"), theApp.GetCurCashier()->GetName()); //ActiveMembers.AddChildElem(_T("Password"), theApp.GetCurCashier()->GetPassword()); ActiveMembers.AddChildElem(_T("Time"), CIBAHelpper::GetCurrentTimeAsString(TRUE)); for (INT_PTR i = 0; i < m_lpComputerList->GetCount(); i++) { CComputerInfo& computer = m_lpComputerList->GetComputer(i); if (computer.HasUserInfo()) { ActiveMembers.AddChildElem(_T("MemberInfo")); ActiveMembers.IntoElem(); ActiveMembers.AddChildElem(_T("TermId"), computer.GetTerminalID()); ActiveMembers.AddChildElem(_T("TermIP"), computer.GetComputerIP()); ActiveMembers.AddChildElem(_T("Status"), computer.GetStatusAsString()); ActiveMembers.AddChildElem(_T("NetId"), computer.GetNetId()); ActiveMembers.AddChildElem(_T("MemberId"), computer.GetMemberID()); ActiveMembers.AddChildElem(_T("UserName"), computer.GetUserName()); ActiveMembers.AddChildElem(_T("Sex"), computer.GetSex()); ActiveMembers.AddChildElem(_T("IdType"), computer.GetIdType()); ActiveMembers.AddChildElem(_T("PersonalId"), computer.GetPersonalID()); ActiveMembers.AddChildElem(_T("ClassName"), computer.GetMemberType()); ActiveMembers.AddChildElem(_T("ClassId"), computer.GetUserClassId()); ActiveMembers.AddChildElem(_T("IsMember"), computer.IsMember()); ActiveMembers.AddChildElem(_T("AvailavleBalance"), computer.GetAvailavleBalance()); ActiveMembers.AddChildElem(_T("Amount"), computer.GetAmount()); ActiveMembers.AddChildElem(_T("PayType"), computer.GetPayType()); ActiveMembers.AddChildElem(_T("Lcation"), computer.GetLcation()); ActiveMembers.AddChildElem(_T("CheckInTime"), computer.GetCheckInTime().Format(_T("%Y-%m-%d %H:%M:%S"))); ActiveMembers.AddChildElem(_T("UseTime"), computer.GetUseTimeAsString()); ActiveMembers.OutOfElem(); } } ActiveMembers.Save(theApp.GetWorkPath() + _T("\\IBAConfig\\ActiveMembers.xml")); }
//del device void CDeviceEditDlg::DeleteDevice() { HTREEITEM hItem = m_deviceTree.GetSelectedItem(); if ( hItem == NULL ) { return; } DEV_INFO *pDev = (DEV_INFO *)m_deviceTree.GetItemData(hItem); if ( pDev ) { if ( pDev->lLoginID > 0 ) { H264_DVR_Logout(pDev->lLoginID); } Devc_Map::iterator bIter = m_devMap.find( pDev->lID ); if ( bIter != m_devMap.end() ) { m_devMap.erase(bIter); } m_deviceTree.DeleteItem(hItem); CMarkup xml; if (xml.Load(GET_MODULE_FILE_INFO.strPath + "UserInfo.xml")) { while(xml.FindChildElem("ip")) { xml.IntoElem(); xml.FindChildElem("ip2"); if(xml.GetChildData()==pDev->szIpaddress) { xml.RemoveElem(); xml.Save(GET_MODULE_FILE_INFO.strPath + "UserInfo.xml"); } xml.OutOfElem(); } } delete pDev; pDev = NULL; } }
void CDlgLianHaoLanQiu::OnBnClickedJingxuanBtn() { CMarkup Xml; CString FormulaName=GetAppCurrentPath()+"FormulaNameList.xml"; Xml.Load(FormulaName.GetBuffer()); FormulaName.ReleaseBuffer(); vector<CString> NameList; while(Xml.FindChildElem("FormulaInfo")) { Xml.IntoElem(); Xml.FindChildElem("FormulaName"); CString Name=Xml.GetChildData().c_str(); Xml.FindChildElem("FormulaType"); CString StrType=Xml.GetChildData().c_str(); int Type = atoi(StrType.GetBuffer()); StrType.ReleaseBuffer(); if(Type == m_FormulaType && !Name.IsEmpty()) NameList.push_back(Name); Xml.OutOfElem(); } if(NameList.empty()) { m_FormulaInfoList=CFormulaCenter::GetInstance()->GetFormulaInfoByType(m_FormulaType); } else m_FormulaInfoList=CFormulaCenter::GetInstance()->GetFormulaInfoByName(m_FormulaType,NameList); m_CurrentIndex=0; FillData(m_FormulaInfoList); UpdateBtnStatus(); }
/** 调用此函数前需保证xml中已经通过FindElem()定位到当前元素。 */ void CXmlElement::Load(CMarkup& xml) { _name = xml.GetTagName(); CString attrib_name, attrib_value; int i = 0; while(xml.GetNthAttrib(i, attrib_name, attrib_value)) { _attributes.push_back(std::make_pair(attrib_name, attrib_value)); ++i; } _value = xml.GetData(); if (_value.IsEmpty()) { xml.IntoElem(); while (xml.FindElem()) { CXmlElement* element = new CXmlElement; element->Load(xml); _children.push_back(element); } xml.OutOfElem(); } }
bool CSoftInstallMessage::treatMessage(const NetMessage& netMessage, CMessageFactory* pFactory, SocketContext* clientSocket) { m_bAddSuccess = false; CMarkup xml; if(xml.SetDoc(netMessage.msgBuffer)) { if(xml.FindChildElem("Info")) { xml.IntoElem(); QString strId = QString::fromStdString(xml.GetAttrib("Id")); m_strName = QString::fromStdString(xml.GetAttrib("Name")); m_strVersion = QString::fromStdString(xml.GetAttrib("Version")); /*&& 判断当前提交的软件名称,版本号是否与软件列表里的一致 */ if(DatabaseManager::Instance()->IsSoftwareExist(m_strName, m_strVersion) && !DataManagerThread->IsSoftInstallInfoExist(strId, m_strName, m_strVersion)) { //接上,软件列表为共用列表,不从数据库判断,节省效率 yhb DataMotion dataMotion; dataMotion.msg = netMessage.msgHead; dataMotion.clientInfo.id = strId; dataMotion.softwareInfo.name = m_strName; dataMotion.softwareInfo.version = m_strVersion; DataManagerThread->AddDataMotion(dataMotion); } xml.OutOfElem(); m_bAddSuccess = true; } } if(NULL != pFactory) { return pFactory->sendMessage(clientSocket, netMessage.msgHead); } return true; }
DEV_INFO CDeviceEditDlg::ReadXML() { CMarkup xml; DEV_INFO devInfo; devInfo.nPort=0; devInfo.lLoginID=0; devInfo.lID=0; if(xml.Load(GET_MODULE_FILE_INFO.strPath + "UserInfo.xml")) { while(xml.FindChildElem("ip")) { //read the information from XML CString strIP="",strUserName="",strPsw="",strDevName=""; UINT nPort; long byChanNum=0,lID=0; UINT bSerialID,nSerPort; CString szSerIP="",szSerialInfo=""; xml.IntoElem(); xml.FindChildElem("ip2"); strIP=xml.GetChildData(); xml.FindChildElem("DEVICENAME"); strDevName=xml.GetChildData(); xml.FindChildElem("username"); strUserName=xml.GetChildData(); xml.FindChildElem("port"); nPort=atoi(xml.GetChildData()); xml.FindChildElem("pwd"); strPsw=xml.GetChildData(); xml.FindChildElem("byChanNum"); byChanNum=atoi(xml.GetChildData()); xml.FindChildElem("lID"); lID=atoi(xml.GetChildData()); xml.FindChildElem("bSerialID"); bSerialID=atoi(xml.GetChildData()); xml.FindChildElem("szSerIP"); szSerIP=xml.GetChildData(); xml.FindChildElem("nSerPort"); nSerPort=atoi(xml.GetChildData()); xml.FindChildElem("szSerialInfo"); szSerialInfo=xml.GetChildData();//新增ddns记录 xml.OutOfElem(); devInfo.nTotalChannel =byChanNum; devInfo.nPort = nPort; devInfo.bSerialID=bSerialID; devInfo.nSerPort=nSerPort; strcpy(devInfo.szSerIP,szSerIP.GetBuffer(0)); strcpy(devInfo.szSerialInfo, szSerialInfo.GetBuffer(0));//新增ddns记录 strcpy(devInfo.szDevName, strDevName); strcpy(devInfo.szUserName, strUserName); strcpy(devInfo.szPsw, strPsw); strcpy(devInfo.szIpaddress, strIP); DEV_INFO *pDev = new DEV_INFO; memset( pDev, 0, sizeof(DEV_INFO) ); memcpy( pDev, &devInfo, sizeof(DEV_INFO) ); pDev->lID = (long)pDev; m_devMap[pDev->lID] = pDev; HTREEITEM hAddItem = m_deviceTree.InsertItem(strDevName); m_deviceTree.SetItemData(hAddItem, (DWORD)pDev); CString strName(""); for ( int i = 0; i < byChanNum; i ++) { strName.Format("CAM %d", i+1); HTREEITEM item = m_deviceTree.InsertItem(strName, 0, 0, hAddItem); m_deviceTree.SetItemData(item, i); } } } return devInfo; }
// 保存配置信息 BOOL COBDPNDConfigReadWrite::fSaveAppConfig(void) { CMarkup xml; CString strAppConfigFile = fCommGetAppPath() + _T("\\Config.xml"); if (!xml.Load(strAppConfigFile)) { return CONFIG_ERR_LOAD_FILE; } CString strText; xml.ResetMainPos(); xml.FindElem(); if(xml.FindChildElem(_T("System"))) { xml.IntoElem(); if(xml.FindChildElem(_T("COM_OBD"))) { strText.Format(_T("%d"),m_tagAppConfig.tagComOBD.wPort); xml.SetChildAttrib(_T("Port"),strText); //strText.Format(_T("%d"),m_tagAppConfig.tagComOBD.dwBPS); //xml.SetChildAttrib(_T("BPS"),strText); //strText.Format(_T("%d"),m_tagAppConfig.tagComOBD.wData_Bits); //xml.SetChildAttrib(_T("Data_Bits"),strText); //strText.Format(_T("%d"),m_tagAppConfig.tagComOBD.wStop_Bits); //xml.SetChildAttrib(_T("Stop_Bits"),strText); //xml.SetChildAttrib(_T("Parity"),_T("None")); } //if(xml.FindChildElem(_T("COM_GPS"))) //{ // strText.Format(_T("%d"),m_tagAppConfig.tagComGPS.wPort); // xml.SetChildAttrib(_T("Port"),strText); // strText.Format(_T("%d"),m_tagAppConfig.tagComGPS.dwBPS); // xml.SetChildAttrib(_T("BPS"),strText); // strText.Format(_T("%d"),m_tagAppConfig.tagComGPS.wData_Bits); // xml.SetChildAttrib(_T("Data_Bits"),strText); // strText.Format(_T("%d"),m_tagAppConfig.tagComGPS.wStop_Bits); // xml.SetChildAttrib(_T("Stop_Bits"),strText); // xml.SetChildAttrib(_T("Parity"),_T("None")); //} if(xml.FindChildElem(_T("Setting"))) { xml.SetChildAttrib(_T("LANGUAGE"),m_tagAppConfig.tagSetting.strLanguage); if (m_tagAppConfig.tagSetting.bSaveErrorLog) xml.SetChildAttrib(_T("Save_ErrorLog"),_T("ON")); else xml.SetChildAttrib(_T("Save_ErrorLog"),_T("OFF")); strText.Format(_T("%d"),m_tagAppConfig.tagSetting.wBacklightDay); xml.SetChildAttrib(_T("BACKLIGHT_DAY"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagSetting.wBacklightNight); xml.SetChildAttrib(_T("BACKLIGHT_NIGHT"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagSetting.wBacklightDayStart); xml.SetChildAttrib(_T("BACKLIGHT_DAY_START"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagSetting.wBackLightDayEnd); xml.SetChildAttrib(_T("BACKLIGHT_DAY_END"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagSetting.dwSystemOffTime); xml.SetChildAttrib(_T("System_Off_Time"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagSetting.dwSystemOffMode); xml.SetChildAttrib(_T("System_Off_Mode"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagSetting.dwAutoSelPanelTime); xml.SetChildAttrib(_T("Auto_Sel_Panel_Time"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagSetting.dwDefaultStartPanel); xml.SetChildAttrib(_T("Default_Start_Panel"),strText); strText.Format(_T("%0.5f"),m_tagAppConfig.tagSetting.fInstantFuelParameter); xml.SetChildAttrib(_T("Parameter_Fuel_Instant"),strText); strText.Format(_T("%0.5f"),m_tagAppConfig.tagSetting.fAvgFuelParameter); xml.SetChildAttrib(_T("Parameter_Fuel_Avg"),strText); strText.Format(_T("%0.5f"),m_tagAppConfig.tagSetting.fFuelPrice); xml.SetChildAttrib(_T("Fuel_Price"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagSetting.dwActiveEcuID); xml.SetChildAttrib(_T("Active_ECU_ID"),strText); } if(xml.FindChildElem(_T("Set_Alarm"))) { if (m_tagAppConfig.tagAlarmSet.bTroubleCode) xml.SetChildAttrib(_T("TroubleCode"),_T("ON")); else xml.SetChildAttrib(_T("TroubleCode"),_T("OFF")); strText.Format(_T("%d"),m_tagAppConfig.tagAlarmSet.wSpeed); xml.SetChildAttrib(_T("Speed"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagAlarmSet.wCoolant); xml.SetChildAttrib(_T("Coolant"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagAlarmSet.wFatigue_Driving); xml.SetChildAttrib(_T("Fatigue_Driving"),strText); strText.Format(_T("%0.2f"),m_tagAppConfig.tagAlarmSet.dbFuel); xml.SetChildAttrib(_T("Fuel"),strText); xml.IntoElem(); if(xml.FindChildElem(_T("Shift"))) { strText.Format(_T("%d"),m_tagAppConfig.tagAlarmSet.wShiftRpm); xml.SetChildAttrib(_T("Shift_Rpm"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagAlarmSet.wShiftSpeed); xml.SetChildAttrib(_T("Shift_Speed"),strText); } if(xml.FindChildElem(_T("Volt"))) { strText.Format(_T("%d"),m_tagAppConfig.tagAlarmSet.wVoltMin); xml.SetChildAttrib(_T("Volt_Min"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagAlarmSet.wVoltMax); xml.SetChildAttrib(_T("Volt_Max"),strText); } xml.OutOfElem(); } xml.OutOfElem(); } if(xml.FindChildElem(_T("Mini_Dlg"))) { strText.Format(_T("%d"),m_tagAppConfig.tagMiniSpeed.dw480X272_X); xml.SetChildAttrib(_T("X_480X272"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagMiniSpeed.dw480X272_Y); xml.SetChildAttrib(_T("Y_480X272"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagMiniSpeed.dw800X480_X); xml.SetChildAttrib(_T("X_800X480"),strText); strText.Format(_T("%d"),m_tagAppConfig.tagMiniSpeed.dw800X480_Y); xml.SetChildAttrib(_T("Y_800X480"),strText); } if(xml.FindChildElem(_T("UiData"))) { xml.IntoElem(); if(xml.FindChildElem(_T("Idle"))) { strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataIdle.dwLeftUpID); xml.SetChildAttrib(_T("ID_Left_Up"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataIdle.dwLeftMiddleID); xml.SetChildAttrib(_T("ID_Left_Middle"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataIdle.dwLeftDownID); xml.SetChildAttrib(_T("ID_Left_Down"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataIdle.dwRightUpID); xml.SetChildAttrib(_T("ID_Right_Up"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataIdle.dwRightMiddleID); xml.SetChildAttrib(_T("ID_Right_Middle"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataIdle.dwRightDownID); xml.SetChildAttrib(_T("ID_Right_Down"),strText); } if(xml.FindChildElem(_T("Tour"))) { strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataTour.dwLeftUpID); xml.SetChildAttrib(_T("ID_Left_Up"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataTour.dwLeftMiddleID); xml.SetChildAttrib(_T("ID_Left_Middle"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataTour.dwLeftDownID); xml.SetChildAttrib(_T("ID_Left_Down"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataTour.dwRightUpID); xml.SetChildAttrib(_T("ID_Right_Up"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataTour.dwRightMiddleID); xml.SetChildAttrib(_T("ID_Right_Middle"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataTour.dwRightDownID); xml.SetChildAttrib(_T("ID_Right_Down"),strText); } if(xml.FindChildElem(_T("Race"))) { strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataRace.dwLeftUpID); xml.SetChildAttrib(_T("ID_Left_Up"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataRace.dwLeftDownID); xml.SetChildAttrib(_T("ID_Left_Down"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataRace.dwMiddleUpID); xml.SetChildAttrib(_T("ID_Middle_Up"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataRace.dwMiddleMiddleID); xml.SetChildAttrib(_T("ID_Middle_Middle"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataRace.dwMiddleDownID); xml.SetChildAttrib(_T("ID_Middle_Down"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataRace.dwRightUpID); xml.SetChildAttrib(_T("ID_Right_Up"),strText); strText.Format(_T("0x%08X"),m_tagAppConfig.tagUiDataRace.dwRightDownID); xml.SetChildAttrib(_T("ID_Right_Down"),strText); } xml.OutOfElem(); } if(xml.FindChildElem(_T("APP_START_LIST"))) { xml.IntoElem(); while(xml.FindChildElem(_T("APP"))) { for (int i=0;i<m_vecAppList.size();i++) { if (xml.GetChildAttrib(_T("ID")) == m_vecAppList[i].strAppID) { xml.SetChildAttrib(_T("PATH"),m_vecAppList[i].strAppPath); if (m_vecAppList[i].bAutoRun) xml.SetChildAttrib(_T("AUTO_RUN"),_T("1")); else xml.SetChildAttrib(_T("AUTO_RUN"),_T("0")); } } } xml.OutOfElem(); } xml.Save(strAppConfigFile); return TRUE; }
// 初始化应用配置信息 BOOL COBDPNDConfigReadWrite::fInitAppConfig(void) { CMarkup xml; CString strAppPath = fCommGetAppPath() + _T("\\"); CString strAppConfigFile = strAppPath + _T("Config.xml"); if (!xml.Load(strAppConfigFile)) { return CONFIG_ERR_LOAD_FILE; } xml.ResetMainPos(); xml.FindElem(); if(xml.FindChildElem(_T("System"))) { xml.IntoElem(); if(xml.FindChildElem(_T("Base"))) { m_tagAppConfig.bIsDemo = (xml.GetChildAttrib(_T("Demo_Mode"))==_T("ON")?TRUE:FALSE); m_tagAppConfig.strTextFile = xml.GetChildAttrib(_T("File_Text")); m_tagAppConfig.strFilterAppList = xml.GetChildAttrib(_T("FILTER_APP_LIST")); } if(xml.FindChildElem(_T("COM_OBD"))) { m_tagAppConfig.tagComOBD.wPort = (WORD)_ttoi(xml.GetChildAttrib(_T("Port"))); m_tagAppConfig.tagComOBD.dwBPS =(WORD) _ttoi(xml.GetChildAttrib(_T("BPS"))); m_tagAppConfig.tagComOBD.wData_Bits = (WORD)_ttoi(xml.GetChildAttrib(_T("Data_Bits"))); m_tagAppConfig.tagComOBD.wStop_Bits = (WORD)_ttoi(xml.GetChildAttrib(_T("Stop_Bits"))); m_tagAppConfig.tagComOBD.wParity = 0;//_ttoi(xml.GetChildAttrib(_T("Parity"))); } if(xml.FindChildElem(_T("COM_GPS"))) { m_tagAppConfig.tagComGPS.wPort = (WORD)_ttoi(xml.GetChildAttrib(_T("Port"))); m_tagAppConfig.tagComGPS.dwBPS = (WORD)_ttoi(xml.GetChildAttrib(_T("BPS"))); m_tagAppConfig.tagComGPS.wData_Bits = (WORD)_ttoi(xml.GetChildAttrib(_T("Data_Bits"))); m_tagAppConfig.tagComGPS.wStop_Bits = (WORD)_ttoi(xml.GetChildAttrib(_T("Stop_Bits"))); m_tagAppConfig.tagComGPS.wParity = 0;//_ttoi(xml.GetChildAttrib(_T("Parity"))); } if(xml.FindChildElem(_T("Setting"))) { m_tagAppConfig.tagSetting.strLanguage = xml.GetChildAttrib(_T("LANGUAGE")); m_tagAppConfig.tagSetting.bSaveErrorLog = (xml.GetChildAttrib(_T("Save_ErrorLog"))==_T("OFF")?FALSE:TRUE); m_tagAppConfig.tagSetting.wBacklightDay = _ttoi(xml.GetChildAttrib(_T("BACKLIGHT_DAY"))); m_tagAppConfig.tagSetting.wBacklightNight = _ttoi(xml.GetChildAttrib(_T("BACKLIGHT_NIGHT"))); m_tagAppConfig.tagSetting.wBacklightDayStart = _ttoi(xml.GetChildAttrib(_T("BACKLIGHT_DAY_START"))); m_tagAppConfig.tagSetting.wBackLightDayEnd = _ttoi(xml.GetChildAttrib(_T("BACKLIGHT_DAY_END"))); m_tagAppConfig.tagSetting.dwActiveEcuID = _ttoi(xml.GetChildAttrib(_T("Active_EUC_ID"))); m_tagAppConfig.tagSetting.str24or12 = xml.GetChildAttrib(_T("Time_24_12Hour")); m_tagAppConfig.tagSetting.dwSystemOffTime = _ttoi(xml.GetChildAttrib(_T("System_Off_Time"))); m_tagAppConfig.tagSetting.dwSystemOffMode = _ttoi(xml.GetChildAttrib(_T("System_Off_Mode"))); m_tagAppConfig.tagSetting.dwAutoSelPanelTime = _ttoi(xml.GetChildAttrib(_T("Auto_Sel_Panel_Time"))); m_tagAppConfig.tagSetting.fAvgFuelParameter = wcstod(xml.GetChildAttrib(_T("Parameter_Fuel_Avg")),0); m_tagAppConfig.tagSetting.fInstantFuelParameter = wcstod(xml.GetChildAttrib(_T("Parameter_Fuel_Instant")),0); m_tagAppConfig.tagSetting.fFuelPrice = wcstod(xml.GetChildAttrib(_T("Fuel_Price")),0); m_tagAppConfig.tagSetting.dwActiveEcuID = _ttoi(xml.GetChildAttrib(_T("Active_ECU_ID"))); } if(xml.FindChildElem(_T("Language_list"))) { xml.IntoElem(); m_tagAppConfig.vecLanguage.clear(); while(xml.FindChildElem(_T("LANGUAGE"))) { _TagLanguage tagLanData; tagLanData.strLanID = xml.GetChildAttrib(_T("LANGUAGE_ID")); tagLanData.strLanName = xml.GetChildAttrib(_T("LANGUAGE_NAME")); tagLanData.strLanSN = xml.GetChildAttrib(_T("LANGUAGE_SN")); tagLanData.strResFiles = xml.GetChildAttrib(_T("LANGUAGE_RES")); m_tagAppConfig.vecLanguage.push_back(tagLanData); } xml.OutOfElem(); } if(xml.FindChildElem(_T("Set_Alarm"))) { m_tagAppConfig.tagAlarmSet.bTroubleCode = xml.GetChildAttrib(_T("TroubleCode"))==_T("ON")?TRUE:FALSE; m_tagAppConfig.tagAlarmSet.wSpeed = _ttoi(xml.GetChildAttrib(_T("Speed"))); m_tagAppConfig.tagAlarmSet.wCoolant = _ttoi(xml.GetChildAttrib(_T("Coolant"))); m_tagAppConfig.tagAlarmSet.wFatigue_Driving = _ttoi(xml.GetChildAttrib(_T("Fatigue_Driving"))); m_tagAppConfig.tagAlarmSet.dbFuel = wcstod(xml.GetChildAttrib(_T("Fuel")),0); xml.IntoElem(); if(xml.FindChildElem(_T("Shift"))) { m_tagAppConfig.tagAlarmSet.wShiftRpm = _ttoi(xml.GetChildAttrib(_T("Shift_Rpm"))); m_tagAppConfig.tagAlarmSet.wShiftSpeed = _ttoi(xml.GetChildAttrib(_T("Shift_Speed"))); } if(xml.FindChildElem(_T("Volt"))) { m_tagAppConfig.tagAlarmSet.wVoltMin = _ttoi(xml.GetChildAttrib(_T("Volt_Min"))); m_tagAppConfig.tagAlarmSet.wVoltMax = _ttoi(xml.GetChildAttrib(_T("Volt_Max"))); } xml.OutOfElem(); } xml.OutOfElem(); } if(xml.FindChildElem(_T("Mini_Dlg"))) { m_tagAppConfig.tagMiniSpeed.dw480X272_X = _ttoi(xml.GetChildAttrib(_T("X_480X272"))); m_tagAppConfig.tagMiniSpeed.dw480X272_Y = _ttoi(xml.GetChildAttrib(_T("Y_480X272"))); m_tagAppConfig.tagMiniSpeed.dw800X480_X = _ttoi(xml.GetChildAttrib(_T("X_800X480"))); m_tagAppConfig.tagMiniSpeed.dw800X480_Y = _ttoi(xml.GetChildAttrib(_T("Y_800X480"))); } if(xml.FindChildElem(_T("UiData"))) { xml.IntoElem(); if(xml.FindChildElem(_T("Idle"))) { m_tagAppConfig.tagUiDataIdle.dwLeftUpID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Left_Up"))); m_tagAppConfig.tagUiDataIdle.dwLeftMiddleID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Left_Middle"))); m_tagAppConfig.tagUiDataIdle.dwLeftDownID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Left_Down"))); m_tagAppConfig.tagUiDataIdle.dwRightUpID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Right_Up"))); m_tagAppConfig.tagUiDataIdle.dwRightMiddleID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Right_Middle"))); m_tagAppConfig.tagUiDataIdle.dwRightDownID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Right_Down"))); } if(xml.FindChildElem(_T("Tour"))) { m_tagAppConfig.tagUiDataTour.dwLeftUpID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Left_Up"))); m_tagAppConfig.tagUiDataTour.dwLeftMiddleID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Left_Middle"))); m_tagAppConfig.tagUiDataTour.dwLeftDownID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Left_Down"))); m_tagAppConfig.tagUiDataTour.dwRightUpID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Right_Up"))); m_tagAppConfig.tagUiDataTour.dwRightMiddleID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Right_Middle"))); m_tagAppConfig.tagUiDataTour.dwRightDownID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Right_Down"))); } if(xml.FindChildElem(_T("Race"))) { m_tagAppConfig.tagUiDataRace.dwLeftUpID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Left_Up"))); m_tagAppConfig.tagUiDataRace.dwLeftDownID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Left_Down"))); m_tagAppConfig.tagUiDataRace.dwRightUpID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Right_Up"))); m_tagAppConfig.tagUiDataRace.dwRightDownID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Right_Down"))); m_tagAppConfig.tagUiDataRace.dwMiddleUpID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Middle_Up"))); m_tagAppConfig.tagUiDataRace.dwMiddleMiddleID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Middle_Middle"))); m_tagAppConfig.tagUiDataRace.dwMiddleDownID = fCommStr2Hex(xml.GetChildAttrib(_T("ID_Middle_Down"))); } xml.OutOfElem(); } if(xml.FindChildElem(_T("Sound"))) { m_tagAppConfig.tagSoundFile.strDong = strAppPath + xml.GetChildAttrib(_T("Dong")); m_tagAppConfig.tagSoundFile.strInitialze = strAppPath + xml.GetChildAttrib(_T("Initialze")); m_tagAppConfig.tagSoundFile.strStart = strAppPath + xml.GetChildAttrib(_T("Start")); m_tagAppConfig.tagSoundFile.strGetData = strAppPath + xml.GetChildAttrib(_T("GetData")); m_tagAppConfig.tagSoundFile.strAlarmCoolant = strAppPath + xml.GetChildAttrib(_T("AlarmCoolant")); m_tagAppConfig.tagSoundFile.strAlarmFatigueDriving = strAppPath + xml.GetChildAttrib(_T("AlarmFatigueDriving")); m_tagAppConfig.tagSoundFile.strAlarmOverSpeed = strAppPath + xml.GetChildAttrib(_T("AlarmOverSpeed")); m_tagAppConfig.tagSoundFile.strAlarmVoltHigh = strAppPath + xml.GetChildAttrib(_T("AlarmVoltHigh")); m_tagAppConfig.tagSoundFile.strAlarmVoltLow = strAppPath + xml.GetChildAttrib(_T("AlarmVoltLow")); m_tagAppConfig.tagSoundFile.strAlarmTrouble = strAppPath + xml.GetChildAttrib(_T("AlarmTrouble")); } if(xml.FindChildElem(_T("GPS_LIST"))) { xml.IntoElem(); m_vecGPSList.clear(); while(xml.FindChildElem(_T("GPS"))) { TagAppInfo tagAppInfo; tagAppInfo.strAppID = xml.GetChildAttrib(_T("ID")); tagAppInfo.strAppName = xml.GetChildAttrib(_T("NAME_CHS")); tagAppInfo.strAppPath = xml.GetChildAttrib(_T("FOLDER")); tagAppInfo.strAppExe = xml.GetChildAttrib(_T("EXE")); tagAppInfo.bAutoRun = FALSE; m_vecGPSList.push_back(tagAppInfo); } xml.OutOfElem(); } if(xml.FindChildElem(_T("DSA_LIST"))) { xml.IntoElem(); m_vecDSAList.clear(); while(xml.FindChildElem(_T("DSA"))) { TagAppInfo tagAppInfo; tagAppInfo.strAppID = xml.GetChildAttrib(_T("ID")); tagAppInfo.strAppName = xml.GetChildAttrib(_T("NAME_CHS")); tagAppInfo.strAppPath = xml.GetChildAttrib(_T("FOLDER")); tagAppInfo.strAppExe= xml.GetChildAttrib(_T("EXE")); tagAppInfo.bAutoRun = FALSE; m_vecDSAList.push_back(tagAppInfo); } xml.OutOfElem(); } if(xml.FindChildElem(_T("APP_START_LIST"))) { xml.IntoElem(); m_vecAppList.clear(); while(xml.FindChildElem(_T("APP"))) { TagAppInfo tagAppInfo; tagAppInfo.strAppID = xml.GetChildAttrib(_T("ID")); if (tagAppInfo.strAppID == _T("1")) tagAppInfo.strAppName = theMainDlg->fGetBinText(DS_SETUP_GUIDE_DSA_TITLE); if (tagAppInfo.strAppID == _T("2")) tagAppInfo.strAppName = theMainDlg->fGetBinText(DS_SETUP_GUIDE_GPS_TITLE); tagAppInfo.strAppPath = xml.GetChildAttrib(_T("PATH")); if (xml.GetChildAttrib(_T("AUTO_RUN")) == _T("1")) tagAppInfo.bAutoRun = TRUE; else tagAppInfo.bAutoRun = FALSE; m_vecAppList.push_back(tagAppInfo); } xml.OutOfElem(); } return TRUE; }
// 初始化配置文件 int CVCheckerClsConfig::fInitConfig(void) { if (m_strConfigFile == _T("")) return CONFIG_ERR_FIND_FILE; CVCheckerClsGlobal clsGlobal; CMarkup xml; xml.SetDoc(_T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"));//添加XML头 //获取硬件系统信息 xml.AddElem(_T("System_Info")); xml.AddAttrib(_T("Resolution"),clsGlobal.fGetScreenResolution()); xml.AddAttrib(_T("Language"),_T("zh-cn")); xml.OutOfElem(); //======800X480分辨率环境下的设置Begin====== xml.AddChildElem(_T("480X272")); xml.IntoElem(); xml.AddChildElem(_T("Defualt_Size"),430); xml.OutOfElem(); //======平台环境下的设置End====== //======多语言设置Begin====== xml.AddChildElem(_T("Language")); xml.IntoElem(); xml.AddChildElem(_T("IDOK")); xml.IntoElem(); xml.AddAttrib(_T("zh-cn"),_T("确定")); xml.AddAttrib(_T("en-us "),_T("Ok")); xml.OutOfElem(); xml.AddChildElem(_T("IDCANCEL")); xml.IntoElem(); xml.AddAttrib(_T("zh-cn"),_T("取消")); xml.AddAttrib(_T("en-us "),_T("Cancel")); xml.OutOfElem(); xml.OutOfElem(); //======多语言设置End====== //======主界面设置Begin====== xml.AddChildElem(_T("Main")); xml.IntoElem(); xml.AddAttrib(_T("BackImage"),_T("")); //======主界面设置End====== //======怠速界面设置Begin====== xml.AddChildElem(_T("Idling")); xml.IntoElem(); xml.AddAttrib(_T("BackImage"),_T("")); xml.AddChildElem(_T("LeftUp")); //左上数据信息 xml.IntoElem(); xml.AddAttrib(_T("BackImage"),_T("")); xml.AddAttrib(_T("Text"),_T("")); xml.AddAttrib(_T("DefaultData"),_T("0")); xml.OutOfElem(); xml.AddChildElem(_T("Up")); //左边数据信息 xml.IntoElem(); xml.AddAttrib(_T("BackImage"),_T("")); xml.AddAttrib(_T("Text"),_T("")); xml.AddAttrib(_T("DefaultData"),_T("0")); xml.OutOfElem(); xml.AddChildElem(_T("LeftDown")); //左下数据信息 xml.IntoElem(); xml.AddAttrib(_T("BackImage"),_T("")); xml.AddAttrib(_T("Text"),_T("")); xml.AddAttrib(_T("DefaultData"),_T("0")); xml.OutOfElem(); xml.AddChildElem(_T("RightUp")); //右上数据信息 xml.IntoElem(); xml.AddAttrib(_T("BackImage"),_T("")); xml.AddAttrib(_T("Text"),_T("")); xml.AddAttrib(_T("DefaultData"),_T("0")); xml.OutOfElem(); xml.AddChildElem(_T("Right")); //右边数据信息 xml.IntoElem(); xml.AddAttrib(_T("BackImage"),_T("")); xml.AddAttrib(_T("Text"),_T("")); xml.AddAttrib(_T("DefaultData"),_T("0")); xml.OutOfElem(); xml.AddChildElem(_T("RightDown")); //右下数据信息 xml.IntoElem(); xml.AddAttrib(_T("BackImage"),_T("")); xml.AddAttrib(_T("Text"),_T("")); xml.AddAttrib(_T("DefaultData"),_T("0")); xml.OutOfElem(); xml.OutOfElem(); //======怠速界面设置End====== xml.Save(m_strConfigFile); return 0; }
void CCliMgr::GetSysService() { SC_HANDLE schManager = OpenSCManager(NULL, NULL, SERVICE_QUERY_STATUS); if (schManager == NULL) { DWORD dwError = GetLastError(); _com_error Error(dwError); m_pLogger->WriteLog(LM_INFO, TEXT("GetSysService-OpenSCManager Error:%d:%s"), dwError, Error.ErrorMessage()); return ; } DWORD dwSize = 0, dwCount = 0; LPENUM_SERVICE_STATUS st = (LPENUM_SERVICE_STATUS)LocalAlloc(LPTR, 64*1024); LPQUERY_SERVICE_CONFIG sc = (LPQUERY_SERVICE_CONFIG)LocalAlloc(LPTR, 4 * 1024); if (!EnumServicesStatus(schManager, SERVICE_TYPE_ALL, SERVICE_ACTIVE, st, 1024*64, &dwSize, &dwCount, NULL)) { DWORD dwError = GetLastError(); _com_error Error(dwError); m_pLogger->WriteLog(LM_INFO, TEXT("EnumServicesStatus Error:%d:%s"), dwError, Error.ErrorMessage()); } CMarkup xml; xml.SetDoc("<?xml version=\"1.0\" encoding=\"gb2312\"?>\r\n"); xml.AddElem("ServiceLst"); xml.IntoElem(); for (DWORD idx=0; idx<dwCount; idx++) { SC_HANDLE hService = ::OpenService(schManager,st[idx].lpServiceName,SERVICE_QUERY_CONFIG); if(hService) { DWORD dwSize = 0; ::QueryServiceConfig(hService, sc, 4 * 1024, &dwSize); CloseServiceHandle(hService); } if (st[idx].ServiceStatus.dwCurrentState == SERVICE_RUNNING) { TCHAR buf[MAX_PATH] = {0}; _stprintf(buf, TEXT("%s %s %s)\r\n"), st[idx].lpServiceName, sc->lpBinaryPathName, st[idx].lpDisplayName); string strProcName = ProcessImagePath(sc->lpBinaryPathName); xml.AddElem("Service"); xml.AddAttrib("Name", st[idx].lpServiceName); xml.AddAttrib("Application", strProcName.c_str()); xml.AddAttrib("DisplayName", st[idx].lpDisplayName); m_pLogger->WriteLog(LM_INFO, buf); } } xml.OutOfElem(); string data=xml.GetDoc(); char *pData = NULL; int nSize = data.size() + 1024; char* buf= new char[nSize]; _packageheader* pheader = (_packageheader*)buf; InitPackage(pheader, CMD_GAME_CLIENTTOCON); CPackageHelper out(buf); out.pushDWORD(Ctrl_ViewSviInfo); out.pushString(data.c_str(), data.size()); pheader->Length = out.GetOffset(); if (!ExecCmd(buf, pheader->Length, pData, nSize, false)) m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewSviInfo Fail."); else { m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewSviInfo Success."); CoTaskMemFree(pData); } delete []buf; LocalFree(st); LocalFree(sc); CloseServiceHandle(schManager); }
void CCliMgr::GetSysProcess() { DWORD aProcesses[1024] = {0}, cbNeeded = 0, cProcesses = 0, MemSize = 0; if (!EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded )) { DWORD dwError = GetLastError(); _com_error Error(dwError); m_pLogger->WriteLog(LM_INFO, TEXT("GetSysProcess (EnumProcess) Error:%d:%s"), dwError, Error.ErrorMessage()); return; } cProcesses = cbNeeded / sizeof(DWORD); m_pLogger->WriteLog(LM_INFO, TEXT("Process Num:%d"), cProcesses); CMarkup xml; xml.SetDoc("<?xml version=\"1.0\" encoding=\"gb2312\"?>\r\n"); xml.AddElem("ProcessLst"); xml.IntoElem(); for (DWORD idx=0; idx<cProcesses; idx++) { TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>"); HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, aProcesses[idx]); if (NULL == hProcess) continue; else { if (0 == GetModuleFileNameEx(hProcess, NULL, szProcessName, MAX_PATH)) { CloseHandle( hProcess ); continue; } PROCESS_MEMORY_COUNTERS pmc = {0}; pmc.cb = sizeof(PROCESS_MEMORY_COUNTERS); if ( ::GetProcessMemoryInfo(hProcess, &pmc, sizeof(pmc))) { MemSize = pmc.WorkingSetSize; } CloseHandle( hProcess ); } string strProcName = ProcessImagePath(szProcessName); TCHAR buf[MAX_PATH] = {0}; _stprintf(buf, TEXT("%s %d (PID: %u)\r\n"), szProcessName,MemSize, aProcesses[idx]); xml.AddElem("Process"); xml.AddAttrib("Name", strProcName); xml.AddAttrib("Pid", aProcesses[idx]); xml.AddAttrib("Memory", MemSize); m_pLogger->WriteLog(LM_INFO, buf); } xml.OutOfElem(); string data=xml.GetDoc(); char *pData = NULL; int nSize = data.size() +1024; char* buf= new char[nSize]; _packageheader* pheader = (_packageheader*)buf; InitPackage(pheader, CMD_GAME_CLIENTTOCON); CPackageHelper out(buf); out.pushDWORD(Ctrl_ViewProcInfo); out.pushString(data.c_str(), data.size()); pheader->Length = out.GetOffset(); if (!ExecCmd(buf, pheader->Length, pData, nSize,false)) m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewProcInfo Fail."); else { m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewProcInfo Success."); CoTaskMemFree(pData); } delete []buf; }