コード例 #1
0
bool populate_masks_from_xml(vector<ArmorType*>& masks,string file,Log& log)
{
   CMarkup xml;
   if(!xml.Load(string(artdir)+file))
   { //File is missing or not valid XML.
      addstr("Failed to load "+file+"!",log);

      getkey();

      return false; //Abort.
   }

   xml.FindElem();
   xml.IntoElem();
   int defaultindex;
   if(xml.FindElem("default")) defaultindex=getarmortype(xml.GetData());
   else
   {
      addstr("Default missing for masks!",log);

      getkey();

      return false; //Abort.
   }
   if(defaultindex==-1)
   {
      addstr("Default for masks is not a known armor type!",log);

      getkey();

      return false; //Abort.
   }

   xml.ResetMainPos();
   while(xml.FindElem("masktype")) armortype.push_back(new ArmorType(*armortype[defaultindex],xml.GetSubDoc()));
   return true;
}
コード例 #2
0
// 保存配置信息
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;
}
コード例 #3
0
// 初始化应用配置信息
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;
}
コード例 #4
0
ファイル: ConnectThread.cpp プロジェクト: niujingqian/haocai
//获取手机系统信息
bool CConnectThread::GetPhoneSystemInfo(sPhoneInfo& Info)
{
	bool Ret=false;
	CString CmdStr;
	CString CmdRetStr;
	CmdStr=_T("<?xml version='1.0'?><req><fun>GetSystemAgentVar</fun><ps count='0'></ps></req>");

	if(CCommunication::SendXmlToPhone(CmdStr,CmdRetStr) < 0x00)
		return Ret;
	if(CmdRetStr.IsEmpty())
		return Ret;

	CMarkup Xml;
	if(Xml.SetDoc(CmdRetStr))
	{
		CString strData;
		Xml.ResetMainPos();
		Xml.FindChildElem(_T("ps"));

		if (Xml.IntoElem())
		{
			Ret=true;
			while ( Xml.FindChildElem(_T("p")) )
			{
				
				CString strMsg;
				Xml.IntoElem();

				Xml.FindChildElem(_T("name"));
				strData = Xml.GetChildData().c_str();
				if (strData == _T("msg"))
				{
					Xml.FindChildElem(_T("value"));							
					strMsg = Xml.GetChildData().c_str();

					if (strMsg != _T("0"))
					{
						return false;
					}
				}else if  (strData == _T("var"))
				{				
					Xml.FindChildElem(_T("value"));							
					Info.m_PhoneOSVer = Xml.GetChildData().c_str();
					Info.m_PhoneOS = Info.m_PhoneOSVer.Mid(0x00, Info.m_PhoneOSVer.Find(_T(" "))); //Andriod 2.1-Update-1

				}else if  (strData == _T("agent"))
				{				
					Xml.FindChildElem(_T("value"));							
					Info.m_PhoneModel= Xml.GetChildData().c_str();

				}else if  (strData == _T("programver"))
				{				
					Xml.FindChildElem(_T("value"));							
					CString strApkVer = Xml.GetChildData().c_str();
				}else if  (strData == _T("imei"))
				{				
					Xml.FindChildElem(_T("value"));							
					Info.m_PhoneIMEI = Xml.GetChildData().c_str();

				}else if  (strData == _T("imsi"))
				{				
					Xml.FindChildElem(_T("value"));							
					Info.m_PhoneIMSI = Xml.GetChildData().c_str();

				}else{;}

				Xml.OutOfElem();
			}
		}
	}

	return Ret;
}
コード例 #5
0
ファイル: EventInfo.cpp プロジェクト: Bitfall/AppWhirr-client
void CEventInfo::ParseEvents(CMarkup & xml)
{
	// Jump into elem
	xml.IntoElem();

	// Search for OnNewVersion event
	if (xml.FindElem(_T("ONNEWVERSION")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_ONNEWVERSION]);
	}

	// Reset pos
	xml.ResetMainPos();

	// Search for OnNoNewVersion event
	if (xml.FindElem(_T("ONNONEWVERSION")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_ONNONEWVERSION]);
	}

	// Reset pos
	xml.ResetMainPos();

	// Search for BeforeHtmlMessage event
	if (xml.FindElem(_T("BEFOREHTMLMESSAGE")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_BEFOREHTMLMESSAGE]);
	}
	
	// Reset pos
	xml.ResetMainPos();

	// Search for AfterHtmlMessage event
	if (xml.FindElem(_T("AFTERHTMLMESSAGE")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_AFTERHTMLMESSAGE]);
	}

	// Reset pos
	xml.ResetMainPos();

	// Search for BeforeLicense event
	if (xml.FindElem(_T("BEFORELICENSE")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_BEFORELICENSE]);
	}
	
	// Reset pos
	xml.ResetMainPos();

	// Search for AfterLicense event
	if (xml.FindElem(_T("AFTERLICENSE")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_AFTERLICENSE]);
	}

	// Reset pos
	xml.ResetMainPos();

	// Search for BeforeSelectUpdate event
	if (xml.FindElem(_T("BEFORESELECTUPDATE")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_BEFORESELECTUPDATE]);
	}
	
	// Reset pos
	xml.ResetMainPos();

	// Search for AfterSelectUpdate event
	if (xml.FindElem(_T("AFTERSELECTUPDATE")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_AFTERSELECTUPDATE]);
	}

	// Reset pos
	xml.ResetMainPos();

	// Search for BeforeDownload event
	if (xml.FindElem(_T("BEFOREDOWNLOAD")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_BEFOREDOWNLOAD]);
	}
	
	// Reset pos
	xml.ResetMainPos();

	// Search for AfterDownload event
	if (xml.FindElem(_T("AFTERDOWNLOAD")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_AFTERDOWNLOAD]);
	}

	// Reset pos
	xml.ResetMainPos();

	// Search for BeforeInstall event
	if (xml.FindElem(_T("BEFOREINSTALL")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_BEFOREINSTALL]);
	}

	// Reset pos
	xml.ResetMainPos();

	// Search for AfterInstall event
	if (xml.FindElem(_T("AFTERINSTALL")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_AFTERINSTALL]);
	}
	
	// Reset pos
	xml.ResetMainPos();
	
	// Search for BeforeInstall event
	if (xml.FindElem(_T("BEFOREROLLBACK")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_BEFOREROLLBACK]);
	}
	
	// Reset pos
	xml.ResetMainPos();
	
	// Search for AfterInstall event
	if (xml.FindElem(_T("AFTERROLLBACK")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_AFTERROLLBACK]);
	}

	// Reset pos
	xml.ResetMainPos();

	// Search for OnClose event
	if (xml.FindElem(_T("ONCLOSE")))
	{
		// Parse event
		ParseEvent(xml, m_arrEvents[EVENT_ONCLOSE]);
	}

	// Jump out of elem
	xml.OutOfElem();
}
コード例 #6
0
ファイル: MISView.cpp プロジェクト: Khrylx/3DInnerCarving
	void CMISView::openXmlFile(CString& fileName,bool first)
	{
		CMarkup xml;
		xml.Load(fileName);
		xml.FindElem("Obj");
		CString objPath=xml.GetData();
		xml.ResetMainPos();
		xml.FindElem("CollisionSafe");
		CString cSafe=xml.GetData();
		xml.ResetMainPos();
		xml.FindElem("SupportThreshold");
		para.supportThreshold=atof(xml.GetData());
		xml.ResetMainPos();
		xml.FindElem("ObjType");
		int ObjType=atof(xml.GetData());
		xml.ResetMainPos();
		xml.FindElem("Thickness");
		para.modelThickness=atof(xml.GetData());
		xml.ResetMainPos();
		xml.FindElem("Name");
		para.modelName=xml.GetData();
		xml.ResetMainPos();
		xml.FindElem("StepLen");
		para.stepLen=atof(xml.GetData());
		xml.ResetMainPos();
		xml.FindElem("EdgeLen");
		para.maxEdgeLen=atof(xml.GetData());
		xml.ResetMainPos();
		xml.FindElem("BoundEdgeLen");
		para.boundEdgeLen=atof(xml.GetData());
		xml.ResetMainPos();
		xml.FindElem("MatDensity");
		para.matDensity=atof(xml.GetData());
		xml.ResetMainPos();
		xml.FindElem("FluidDensity");
		para.fluidDensity=atof(xml.GetData());
		xml.ResetMainPos();
		xml.FindElem("DisruptAngle");
		para.disruptAngle=atof(xml.GetData());

		cout<<para.boundEdgeLen<<endl;
		if (cSafe=="true")
			para.collisionSafe=true;
		else
			para.collisionSafe=false;


		if (support!=NULL)
		{
			reset();
		}
		switch (ObjType)
		{
		case 0:  myObj.loadObjFromFile(objPath);  break;
		case 1:  myObj.loadObjFromFileEx(objPath);  break;
		case 2:  myObj.loadObjFromFileEx2(objPath);  break;
		case 3:  myObj.loadObjFromFileEx3(objPath);   break;

		}
		BBox bbox=myObj.getBBox();
		Vector3d boxCenter;
		boxCenter[0]=(bbox.H[0]+bbox.L[0])/2;
		boxCenter[1]=(bbox.H[1]+bbox.L[1])/2;
		boxCenter[2]=(bbox.H[2]+bbox.L[2])/2;
		boxCenter=-boxCenter;
		double maxW=-1;
		for (int i=0;i<3;i++)
		{
			if (bbox.H[i]-bbox.L[i]>maxW)
			{
				maxW=bbox.H[i]-bbox.L[i];
			}
		}
		myObj.translate(boxCenter);
		myObj.scale(1/maxW);

		cout<<myObj.vertexNum<<endl;
		cout<<myObj.faceNum<<endl;
		//myObj.translate(Vector3d(0.5,0.5,0.5));
		support=new Support(&myObj,para,mode,fluidHeight);
		support->setMeshRotation(meshRotation);
		cY=support->getLowestH();
		updateCam();

		if (!first)
		{
			defaultXml=fileName;
			CPaintDC dc(this);
			OnDraw(&dc);
		}

	}
コード例 #7
0
CXMLArchiveNode* CXMLArchive::GetNode(LPCTSTR nodeNameStr)
{
	CString nodeName(nodeNameStr);

	try
	{
#ifdef USE_MSXML
		BSTR nodeNameBSTR = nodeName.AllocSysString();
		MSXML::IXMLDOMNodePtr fatherNodePtr;
#else
		CMarkup* fatherNodePtr;
#endif

		if (m_nodeList.size() == 0)
		{
			fatherNodePtr = m_xmlDocPtr;
		}
		else
		{
			fatherNodePtr = m_nodeList.top()->m_nodePtr;
		}

		if (fatherNodePtr == NULL)
		{
			return NULL;
		}


		if (IsStoring())
		{
#ifdef USE_MSXML
			// Archive is storing
			CXMLArchiveNode* xmlArchiveNodePtr = new CXMLArchiveNode(this, m_xmlDocPtr->createElement(nodeNameBSTR), fatherNodePtr);

			::SysFreeString(nodeNameBSTR);

			m_nodeList.push(xmlArchiveNodePtr);

			return xmlArchiveNodePtr;
#endif
			// Archive is storing
			m_xmlDocPtr->AddChildElem(nodeName);
			CMarkup* childnodep = new CMarkup(m_xmlDocPtr->GetDoc());
			childnodep = m_xmlDocPtr;
			m_xmlDocPtr->ResetChildPos();
			CXMLArchiveNode* xmlArchiveNodePtr = new CXMLArchiveNode(this, 
				childnodep,
				//m_xmlDocPtr->createElement(nodeNameBSTR),
				fatherNodePtr);

			m_nodeList.push(xmlArchiveNodePtr);

			return xmlArchiveNodePtr;
		}


		// Archive is Loading
		//MSXML::IXMLDOMNodeListPtr	nodeListPtr;
		//MSXML::IXMLDOMNodePtr		nodePtr;
		CMarkup*	nodeListPtr;
		CMarkup*		nodePtr;

		// If child node list is not empty, we are loading using the tags to
		// create CObject derived objects or collections (like CArray<Cobject* CObject*>, use child list

#ifdef USE_MSXML
		if (m_nodeList.size() > 0)
		{
			CXMLArchiveNode* xmlNodePtr = m_nodeList.top();
			nodeListPtr = xmlNodePtr->m_childNodeListPtr;

			if (nodeListPtr != NULL && nodeListPtr->length > 0)
			{
				int childIndex = xmlNodePtr->m_childIndex;

				if (childIndex < nodeListPtr->length)
				{
					nodeListPtr->get_item(childIndex, &nodePtr);

					CXMLArchiveNode* xmlArchiveNodePtr = new CXMLArchiveNode(this, nodePtr, m_xmlDocPtr);

					m_nodeList.push(xmlArchiveNodePtr);

					::SysFreeString(nodeNameBSTR);

					return xmlArchiveNodePtr;
				}

				ASSERT(FALSE);
			}
		}
#else
		if (m_nodeList.size() > 0)
		{
			CXMLArchiveNode* xmlNodePtr = m_nodeList.top();
			nodeListPtr = xmlNodePtr->m_childNodeListPtr;

			//Block added to calcule length when using CMarkup
			int length = 0;
			if (nodeListPtr != NULL){
				nodeListPtr->ResetMainPos();
				while (nodeListPtr->FindElem())
				{
					length++;
				}
				nodeListPtr->ResetMainPos();
			}

			if (nodeListPtr != NULL && length > 0)
			{
				int childIndex = xmlNodePtr->m_childIndex;

				if (childIndex < length)
				{
					int index = 0;

					/*if (nodeListPtr->FindChildElem())
					{*/
						while (nodeListPtr->FindElem() && index < childIndex)
						{
							index++;
						}

						nodePtr = new CMarkup();
						nodePtr = nodeListPtr;
						//nodeListPtr->ResetChildPos();
					/*}*/

					CXMLArchiveNode* xmlArchiveNodePtr = new CXMLArchiveNode(this, nodePtr, m_xmlDocPtr);

					m_nodeList.push(xmlArchiveNodePtr);

					return xmlArchiveNodePtr;
				}

				ASSERT(FALSE);
			}
		}
#endif

#ifdef USE_MSXML
		// Get all nodes with this name
		if (MSXML::IXMLDOMDocumentPtr(fatherNodePtr) != NULL)
		{
			// First level node in document
			ASSERT(!nodeName.IsEmpty());
			nodeListPtr = MSXML::IXMLDOMDocumentPtr(fatherNodePtr)->getElementsByTagName(nodeNameBSTR);
		}
		else
		{
			// Get node with desired name
			nodeListPtr = MSXML::IXMLDOMElementPtr(fatherNodePtr)->getElementsByTagName(nodeNameBSTR);
		}

		::SysFreeString(nodeNameBSTR);
#else
		bool bResult=fatherNodePtr->FindElem(nodeName);
		nodeListPtr = new CMarkup();
		nodeListPtr = fatherNodePtr;
#endif
		//Get child index from m_nodeList
		int childIndex = 0;
		if (m_nodeList.size() > 0)
		{
			childIndex = m_nodeList.top()->m_childIndex;
		}

#ifdef USE_MSXML
		if (childIndex < nodeListPtr->length)
		{
			nodeListPtr->get_item(childIndex, &nodePtr);
		}
#else
		//Block added to calcule length when using CMarkup
		int length = 0;
		nodeListPtr->ResetMainPos();
		while (nodeListPtr->FindElem())
		{
			length++;
		}
		nodeListPtr->ResetMainPos();

		if (childIndex < length)
		{
			int index = 0;

			//Check if it has child elements and go inside if so
			if (nodeName.MakeLower()=="svg" && nodeListPtr->FindChildElem())
			{
				while (index < childIndex && nodeListPtr->FindElem())
				{
					index++;
				}

				nodeListPtr->IntoElem();

				nodePtr = new CMarkup();
				nodePtr = nodeListPtr;

				nodeListPtr->ResetMainPos();
			}
			else
			{
				while (index < childIndex && nodeListPtr->FindElem(nodeName))
				{
					index++;
				}

				nodePtr = new CMarkup();
				nodePtr = nodeListPtr;
			}
		}
#endif
		CXMLArchiveNode* xmlArchiveNodePtr = new CXMLArchiveNode(this, nodePtr, m_xmlDocPtr);

		m_nodeList.push(xmlArchiveNodePtr);

		return xmlArchiveNodePtr;
	}

	catch (...)
	{

	}

	return NULL;
}