25-1023工业控制-火力发电厂辅助控制系统
wl
2025-03-13 f7315d1016d0fdbcf551624c63e297de60a39136
Merge branch 'master' of ssh://115.28.86.8:29418/~admin/F-IQPower
3个文件已修改
20个文件已添加
309 文件已重命名
1个文件已删除
954 ■■■■■ 已修改文件
Client/冉凯/log/日志_冉凯_20250311.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/冉凯/log/日志_冉凯_20250312.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/卢敏/log/日志_卢敏_20250311.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/孙成龙/log/孙成龙_20250312.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/张敏丽/log/日志_张敏丽_20250310-11.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/朱琛/log/日志_朱琛_20250312.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/汪吉涛/log/日志_汪吉涛_2025.03.12.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/王雨阳/log/典型火电厂控制回路.md 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/王雨阳/log/存放日志.txt 补丁 | 查看 | 原始文档 | blame | 历史
Client/胡康/log/日志_胡康_0311.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/胡康/log/日志_胡康_0312.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/赵演/log/日志_赵演_20250311.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/韩江涛/log/日志_韩江涛_0312.doc 补丁 | 查看 | 原始文档 | blame | 历史
Server/董佳琦/log/日志_董佳琦_0311.doc 补丁 | 查看 | 原始文档 | blame | 历史
Server/董佳琦/log/日志_董佳琦_0312.doc 补丁 | 查看 | 原始文档 | blame | 历史
Server/董澎韬/log/日志_0312.doc 补丁 | 查看 | 原始文档 | blame | 历史
Server/董澎韬/log/日志_0313.doc 补丁 | 查看 | 原始文档 | blame | 历史
Server/解来鑫/log/日志_解来鑫_20250312.doc 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/.vs/FaceProject/v14/.suo 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/FaceProject.Build.CppClean.log 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/FaceProject.log 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/FaceProject.tlog/CL.command.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/FaceProject.tlog/CL.read.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/FaceProject.tlog/CL.write.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/FaceProject.tlog/FaceProject.lastbuildstate 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/FaceProject.tlog/link.command.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/FaceProject.tlog/link.read.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/FaceProject.tlog/link.write.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/Server_XML.obj 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/tinyxml2.obj 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/vc140.idb 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Debug/vc140.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/FaceProject.VC.db 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/FaceProject.vcxproj 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/FaceProject.vcxproj.filters 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/FaceProject/NetworkConfig.cpp 377 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Info.xml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/NetworkConfig.cpp 377 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/NetworkConfig.h 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/Server_XML.cpp 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/config.xml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/stdafx.h 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/targetver.h 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/.github/workflows/test.yml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/.gitignore 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/CMakeLists.txt 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/LICENSE.txt 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/Makefile 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/TinyXML2_small.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/cmake/tinyxml2-config.cmake 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/cmake/tinyxml2.pc.in 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/contrib/html5-printer.cpp 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/_config.yml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/_example_1.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/_example_2.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/_example_3.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/_example_4.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/annotated.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/bc_s.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/bc_sd.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/bdwn.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classes.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_attribute-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_attribute.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_comment-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_comment.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_comment.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_const_handle-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_const_handle.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_declaration-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_declaration.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_declaration.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_document-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_document.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_document.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_element-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_element.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_element.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_handle-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_handle.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_node-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_node.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_node.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_printer-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_printer.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_printer.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_text-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_text.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_text.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_unknown-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_unknown.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_unknown.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_visitor-members.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_visitor.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_visitor.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/clipboard.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/closed.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/cookie.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/doc.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/doc.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/docd.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/doxygen.css 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/doxygen.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/doxygen.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/doxygen_crawl.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/dynsections.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/files.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/folderclosed.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/folderclosed.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/folderclosedd.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/folderopen.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/folderopen.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/folderopend.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_b.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_c.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_d.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_e.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_f.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_b.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_c.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_d.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_e.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_f.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_g.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_h.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_i.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_l.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_n.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_o.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_p.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_q.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_r.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_s.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_t.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_u.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_v.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_x.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_g.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_h.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_i.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_l.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_n.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_o.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_p.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_q.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_r.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_s.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_t.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_u.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_v.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_x.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/hierarchy.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/index.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/jquery.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/menu.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/menudata.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/minus.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/minusd.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/nav_f.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/nav_fd.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/nav_g.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/nav_h.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/nav_hd.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/open.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/pages.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/plus.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/plusd.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_0.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_0.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_1.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_1.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_10.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_10.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_11.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_11.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_12.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_12.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_13.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_13.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_14.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_2.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_2.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_3.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_3.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_4.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_4.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_5.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_5.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_6.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_6.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_7.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_7.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_8.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_8.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_9.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_9.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_a.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_a.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_b.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_b.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_c.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_c.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_d.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_d.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_e.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_e.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_f.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_f.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/classes_0.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/classes_0.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/close.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/close.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_0.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_0.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_1.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_1.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_10.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_10.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_11.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_11.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_12.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_12.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_13.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_13.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_2.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_2.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_3.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_3.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_4.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_4.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_5.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_5.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_6.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_6.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_7.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_7.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_8.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_8.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_9.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_9.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_a.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_a.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_b.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_b.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_c.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_c.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_d.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_d.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_e.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_e.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_f.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_f.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/mag.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/mag_d.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/mag_sel.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/mag_sel.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/mag_seld.svg 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/nomatches.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_0.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_0.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_1.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_1.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_2.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_2.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_3.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_3.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_4.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_4.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_5.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_6.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_7.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_8.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_9.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_a.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_b.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_c.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/search.css 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/search.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/search_l.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/search_m.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/search_r.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/search/searchdata.js 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/splitbar.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/splitbard.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/sync_off.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/sync_on.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_a.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_ad.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_b.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_bd.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_h.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_hd.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_s.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_sd.png 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/tabs.css 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/docs/tinyxml2_8h_source.html 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/dox 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/meson.build 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/meson_options.txt 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/readme.md 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/resources/dream.xml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/resources/empty.xml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/resources/utf8test.xml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/resources/utf8testverify.xml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/resources/xmltest-4636783552757760.xml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/resources/xmltest-5330.xml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/resources/xmltest-5662204197076992.xml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/resources/xmltest-5720541257269248.xml 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/setversion.py 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/test/CMakeLists.txt 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/tinyxml2.cpp 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/tinyxml2.h 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2-master/xmltest.cpp 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/tinyxml2.h 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/FaceProject.Build.CppClean.log 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/FaceProject.log 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/CL.command.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/CL.read.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/CL.write.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/FaceProject.lastbuildstate 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/link.command.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/link.read.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/link.write.1.tlog 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/unsuccessfulbuild 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/NetworkConfig.obj 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/Server_XML.obj 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/tinyxml2.obj 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/vc140.idb 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/code/FaceProject/FaceProject/x64/Debug/vc140.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/log/郭文强_20250311.doc 补丁 | 查看 | 原始文档 | blame | 历史
Server/郭文强/log/郭文强_20250312.doc 补丁 | 查看 | 原始文档 | blame | 历史
Client/Ƚ¿­/log/ÈÕÖ¾_Ƚ¿­_20250311.doc
Binary files differ
Client/Ƚ¿­/log/ÈÕÖ¾_Ƚ¿­_20250312.doc
Binary files differ
Client/¬Ãô/log/ÈÕÖ¾_¬Ãô_20250311.doc
Binary files differ
Client/Ëï³ÉÁú/log/Ëï³ÉÁú_20250312.doc
Binary files differ
Client/ÕÅÃôÀö/log/ÈÕÖ¾_ÕÅÃôÀö_20250310-11.doc
Binary files differ
Client/Öìè¡/log/ÈÕÖ¾_Öìè¡_20250312.doc
Binary files differ
Client/Íô¼ªÌÎ/log/ÈÕÖ¾_Íô¼ªÌÎ_2025.03.12.doc
Binary files differ
Client/ÍõÓêÑô/log/µäÐÍ»ðµç³§¿ØÖÆ»ØÂ·.md
New file
@@ -0,0 +1,200 @@
# ä¸€ã€å…¸åž‹ç«ç”µåŽ‚åŒ…å«å¤šä¸ªå…³é”®æŽ§åˆ¶å›žè·¯ï¼š
- æ±½æ°´ç³»ç»Ÿï¼šé”…炉水位、蒸汽压力、蒸汽温度
- ç‡ƒçƒ§ç³»ç»Ÿï¼šç‚‰è†›è´ŸåŽ‹ã€æ°§é‡ã€NOx排放
- é€é£Žç³»ç»Ÿï¼šä¸€æ¬¡é£Žã€äºŒæ¬¡é£Žã€å¼•风机
- ç»™æ°´ç³»ç»Ÿï¼šç»™æ°´æ³µã€ç»™æ°´æµé‡ã€ç»™æ°´åŽ‹åŠ›
- æ±½è½®æœºç³»ç»Ÿï¼šä¸»æ±½åŽ‹åŠ›ã€ä¸»æ±½æ¸©åº¦ã€è½¬é€Ÿ
以下是典型火电厂各控制回路的详细分类与技术实现说明,结合行业标准与专利技术:
---
### **一、汽水系统控制回路**
1. **锅炉汽包水位控制**
   - **功能**:维持汽包水位在±50mm范围内,防止缺水或满水事故[[1]][[7]]。
   - **控制策略**:
     - **三冲量控制**:结合水位、蒸汽流量、给水流量信号,消除“虚假水位”影响[[2]][[7]]。
     - **PID算法**:通过`PIDController`类实现动态调节,采样周期100ms[[9]]。
   - **实现示例**:
     ```cpp
     double feedwaterValve = pid.compute(targetLevel, currentLevel);
     modbus.writeRegister(40003, feedwaterValve); // è°ƒèŠ‚ç»™æ°´é˜€å¼€åº¦
     ```
2. **主蒸汽压力控制**
   - **功能**:稳定主蒸汽压力(如9.5MPa),直接影响汽轮机做功能力[[9]]。
   - **技术**:
     - **改进型PID**:抗积分饱和机制(专利CN110849553A)应对燃料波动[[9]]。
     - **协调控制**:与汽轮机调节阀联动,平衡锅炉蓄热与负荷需求[[7]]。
3. **再热蒸汽温度控制**
   - **功能**:通过喷水减温或烟气挡板维持再热蒸汽温度(如540℃)[[3]]。
   - **策略**:
     - **前馈-反馈复合控制**:负荷变化前馈至喷水阀,结合温度反馈调节[[7]]。
     - **模糊控制**:应对大滞后特性,使用Eigen库优化参数[[4]]。
---
### **二、燃烧系统控制回路**
1. **燃料量控制**
   - **功能**:根据负荷指令调整给煤机转速或燃油阀开度[[1]]。
   - **协同机制**:
     - **交叉限制**:燃料量与风量动态匹配,防止缺氧燃烧[[7]]。
     - **动态前馈**:负荷指令变化时提前调整燃料供给[[7]]。
2. **炉膛负压控制**
   - **功能**:维持炉膛压力在-50~100Pa,确保燃烧稳定性[[3]]。
   - **实现**:
     - **PID调节引风机导叶开度**,结合送风量前馈信号[[7]]。
     - **安全联锁**:三取二冗余判断触发引风机跳闸[[9]]。
3. **氧量控制**
   - **目标**:维持最佳过量空气系数(1.1~1.2),提升燃烧效率[[3]]。
   - **技术**:
     - **闭环调节二次风门开度**,基于烟气含氧量反馈[[7]]。
     - **解耦控制**:减少氧量与燃料量的相互干扰[[4]]。
---
### **三、汽轮机系统控制回路**
1. **转速/负荷控制(DEH系统)**
   - **功能**:通过调节汽轮机进汽阀开度,匹配电网负荷指令[[7]]。
   - **策略**:
     - **串级控制**:转速(主回路)与阀门开度(副回路)联动[[4]]。
     - **一次调频**:响应电网频率偏差(精度1ms SOE记录)[[1]][[6]]。
2. **轴封蒸汽压力控制**
   - **功能**:维持轴封系统压力,防止蒸汽泄漏[[3]]。
   - **实现**:PID调节旁路阀开度,确保压力稳定[[7]]。
---
### **四、辅助系统控制回路**
1. **送风系统控制**
   - **功能**:调节送风机入口导叶,匹配燃料量与风量[[1]]。
   - **安全**:防喘振保护逻辑(基于压力与流量反馈)[[4]]。
2. **凝汽器真空控制**
   - **功能**:通过循环水泵频率调节维持真空度(如-90kPa)[[3]]。
   - **技术**:模糊控制应对非线性特性[[7]]。
3. **制粉系统控制**
   - **功能**:调整磨煤机出口温度与一次风量,保证煤粉细度[[1]]。
   - **策略**:串级控制(温度主回路+风量副回路)[[7]]。
---
### **五、协同控制策略**
1. **机炉协调控制(CCS)**
   - **目标**:平衡锅炉蓄热与汽轮机响应速度,适应负荷变化[[1]]。
   - **方法**:
     - **前馈控制**:负荷指令前馈至燃料与风量系统[[7]]。
     - **解耦控制**:使用状态观测器(Eigen库)减少压力-功率耦合[[4]]。
2. **NOx排放控制**
   - **技术**:
     - **SCR脱硝系统**:闭环调节氨喷射量,结合燃烧优化(低氮燃烧器)[[6]]。
     - **预测模型**:专利CN104020739B动态优化参数[[5]]。
---
### **六、技术实现要点**
- **数据采集**:通过Modbus TCP读取4~20mA信号(如压力、温度)[[5]]。
- **算法优化**:改进型PID(抗积分饱和)、状态观测器(Eigen库)[[9]][[4]]。
- **安全机制**:三取二冗余、硬跳闸回路(独立于DCS)[[9]][[4]]。
---
### **总结**
各控制回路通过**数据采集→控制运算→输出执行→安全保护→协同优化**的闭环逻辑,确保发电量稳定与参数合规。技术实现需结合专利算法(如抗积分饱和[[9]])、行业标准(如IEC 61131-3[[1]])及实际工况(如多参数耦合[[7]])。
# äºŒã€å¯¹åº”传感器
根据知识库和文档内容,典型火电厂控制回路中 **Modbus协议需要采集的数据类型及对应的传感器** å¦‚下:
---
### **一、数据采集类型与传感器**
#### **1. æ¨¡æ‹Ÿé‡è¾“入(AI)**
| **控制回路**     | **采集数据** | **传感器类型**   | **Modbus寄存器地址示例** | **转换关系**         | **引用来源** |
| ---------------- | ------------ | ---------------- | ------------------------ | -------------------- | ------------ |
| é”…炉水位控制     | æ±½åŒ…水位     | å·®åŽ‹å¼æ¶²ä½å˜é€å™¨ | 40001                    | 4~20mA â†’ -200~+200mm | [[1]][[5]]   |
| ä¸»è’¸æ±½åŽ‹åŠ›æŽ§åˆ¶   | ä¸»è’¸æ±½åŽ‹åŠ›   | åŽ‹åŠ›å˜é€å™¨       | 40002                    | 4~20mA â†’ 0~10MPa     | [[5]][[9]]   |
| å†çƒ­è’¸æ±½æ¸©åº¦æŽ§åˆ¶ | å†çƒ­è’¸æ±½æ¸©åº¦ | çƒ­ç”µå¶/热电阻    | 40003                    | 4~20mA â†’ 0~600℃      | [[3]][[7]]   |
| ç‡ƒæ–™é‡æŽ§åˆ¶       | ç‡ƒæ–™æµé‡     | è´¨é‡æµé‡è®¡       | 40004                    | 4~20mA â†’ 0~100t/h    | [[1]][[7]]   |
| ç‚‰è†›è´ŸåŽ‹æŽ§åˆ¶     | ç‚‰è†›åŽ‹åŠ›     | å¾®å·®åŽ‹å˜é€å™¨     | 40005                    | 4~20mA â†’ -200~+200Pa | [[3]][[7]]   |
| æ°§é‡æŽ§åˆ¶         | çƒŸæ°”含氧量   | æ°§åŒ–锆氧量计     | 40006                    | 4~20mA â†’ 0~25% O₂    | [[3]][[7]]   |
| å‡æ±½å™¨çœŸç©ºæŽ§åˆ¶   | çœŸç©ºåº¦       | ç»å¯¹åŽ‹åŠ›å˜é€å™¨   | 40007                    | 4~20mA â†’ -100~0kPa   | [[3]][[7]]   |
#### **2. æ•°å­—量输入(DI)**
| **控制回路** | **采集数据**   | **传感器类型**      | **Modbus线圈地址示例** | **功能**                | **引用来源** |
| ------------ | -------------- | ------------------- | ---------------------- | ----------------------- | ------------ |
| å®‰å…¨è”锁     | ç‡ƒçƒ§å™¨ç«ç„°æ£€æµ‹ | ç´«å¤–/红外火焰探测器 | 00001                  | ç«ç„°å­˜åœ¨ï¼ˆ1)/熄灭(0) | [[9]]        |
| è®¾å¤‡çŠ¶æ€     | é£Žæœºè¿è¡ŒçŠ¶æ€   | è¾…助触点            | 00002                  | è¿è¡Œï¼ˆ1)/停止(0)     | [[5]]        |
| æŠ¥è­¦ä¿¡å·     | æ¸©åº¦é«˜æŠ¥è­¦     | æ¸©åº¦å¼€å…³            | 00003                  | è§¦å‘报警(1)           | [[1]]        |
---
### **二、Modbus通信实现细节**
1. **功能码与数据格式**
   - **功能码03**:读保持寄存器(如40001~40007)[[7]]。
   - **功能码01/02**:读线圈状态(如00001~00003)[[7]]。
   - **数据解析**:
     ```cpp
     double pressure = (rawPressure / 32768.0) * 10; // 4~20mA转0~10MPa [[5]]
     ```
2. **通信参数**
   - **协议**:Modbus TCP/IP(主从架构,半双工)[[1]][[5]]。
   - **周期**:100ms级实时采集,符合IEC 61131-3标准[[1]][[9]]。
   - **冗余**:双网卡环网拓扑,防止单点故障[[8]][[9]]。
---
### **三、关键传感器技术要求**
1. **精度与响应时间**
   - åŽ‹åŠ›å˜é€å™¨ï¼šç²¾åº¦Â±0.1% FS,响应时间<100ms[[5]]。
   - çƒ­ç”µå¶ï¼šåˆ†åº¦å·K型,测温范围0~1300℃[[3]]。
2. **信号隔离**
   - ä¼ æ„Ÿå™¨ä¿¡å·éœ€é€šè¿‡éš”离器接入DCS,防止电磁干扰[[6]]。
3. **HART协议兼容性**
   - æ™ºèƒ½ä»ªè¡¨æ”¯æŒHART协议,实现数字通信与模拟信号混合传输[[5]]。
---
### **四、数据存储与校验**
1. **实时数据库**
   - å­˜å‚¨ç»“构体`AnalogPoint`包含KKS编码、原始值、工程值及时间戳[[1]]。
   - ç¤ºä¾‹ï¼š
     ```cpp
     struct AnalogPoint {
         uint32_t tagId;     // KKS编码(如"PT-1001")[[3]]
         double engValue;    // å·¥ç¨‹å€¼ï¼ˆå¦‚9.5MPa)
         uint64_t timestamp; // çº³ç§’级时间戳
         Quality quality;    // æ•°æ®å“è´¨ï¼ˆGOOD/BAD/UNCERTAIN)[[1]]
     };
     ```
2. **异常处理**
   - æ•°æ®æ ¡éªŒï¼šé™å¹…、变化率检测(如压力突变>1MPa/s触发报警)[[1]]。
   - SOE记录:事件时间戳精度1ms,使用Boost.Log存储[[1]]。
---
### **总结**
Modbus协议在火电厂控制回路中需采集 **压力、温度、流量、液位、氧量** ç­‰æ¨¡æ‹Ÿé‡åŠ **设备状态、报警信号** ç­‰æ•°å­—量,依赖 **变送器、热电偶、流量计、火焰探测器** ç­‰ä¼ æ„Ÿå™¨[[1]][[3]][[5]]。数据通过功能码03/01读取,转换为工程单位后存储至实时数据库,支持后续控制运算与安全联锁[[5]][[9]]。
Client/ÍõÓêÑô/log/´æ·ÅÈÕÖ¾.txt
Client/ºú¿µ/log/ÈÕÖ¾_ºú¿µ_0311.doc
Binary files differ
Client/ºú¿µ/log/ÈÕÖ¾_ºú¿µ_0312.doc
Binary files differ
Client/ÕÔÑÝ/log/ÈÕÖ¾_ÕÔÑÝ_20250311.doc
Binary files differ
Client/º«½­ÌÎ/log/ÈÕÖ¾_º«½­ÌÎ_0312.doc
Binary files differ
Server/¶­¼Ñçù/log/ÈÕÖ¾_¶­¼Ñçù_0311.doc
Binary files differ
Server/¶­¼Ñçù/log/ÈÕÖ¾_¶­¼Ñçù_0312.doc
Binary files differ
Server/¶­Åìèº/log/ÈÕÖ¾_0312.doc
Binary files differ
Server/¶­Åìèº/log/ÈÕÖ¾_0313.doc
Binary files differ
Server/½âÀ´öÎ/log/ÈÕÖ¾_½âÀ´öÎ_20250312.doc
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/.vs/FaceProject/v14/.suo
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/FaceProject.Build.CppClean.log
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/FaceProject.log
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/FaceProject.tlog/CL.command.1.tlog
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/FaceProject.tlog/CL.read.1.tlog
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/FaceProject.tlog/CL.write.1.tlog
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/FaceProject.tlog/FaceProject.lastbuildstate
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/FaceProject.tlog/link.command.1.tlog
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/FaceProject.tlog/link.read.1.tlog
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/FaceProject.tlog/link.write.1.tlog
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/Server_XML.obj
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/tinyxml2.obj
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/vc140.idb
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Debug/vc140.pdb
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/FaceProject.VC.db
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/FaceProject.vcxproj
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/FaceProject.vcxproj.filters
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/FaceProject/NetworkConfig.cpp
@@ -1,377 +0,0 @@
#include "stdafx.h"
#include "NetworkConfig.h"
bool NetworkConfig::startupModeSelected = false;
NetworkConfig::NetworkConfig(const std::string& xmlFilePath)
{
    tinyxml2::XMLError eResult = doc.LoadFile(xmlFilePath.c_str());
    loaded = (eResult == tinyxml2::XML_SUCCESS);
    if (!startupModeSelected) {
        std::string selectedMode;
        std::time_t lastModifiedTime = 0;
        std::cout << "Please select the startup mode (cold_start/hot_start): " << std::endl;
        std::cin >> selectedMode;
        if (this->setStartupMode(selectedMode)) {
            std::cout << "Selected " << selectedMode << std::endl;
            if (this->saveXML("config.xml")) {
                std::cout << "( XML file saved successfully )" << std::endl;
            }
            else {
                std::cout << "( Failed to save XML file )" << std::endl;
            }
            if (selectedMode == "cold_start") {
                StartupMode currentMode = StartupMode::ColdStart;
                this->restartServices(currentMode, "config.xml", lastModifiedTime);
            }
            else if (selectedMode == "hot_start") {
                startupModeSelected = true;
                NetworkConfig oldParser("Info.xml");
                StartupMode currentMode = StartupMode::HotStart;
                this->restartServices(currentMode, "config.xml", lastModifiedTime);
            }
        }
        else {
            std::cout << "Invalid startup mode. Please enter cold_start or hot_start." << std::endl;
        }
        startupModeSelected = true;
    }
}
NetworkConfig::~NetworkConfig()
{
}
bool NetworkConfig::isLoaded() const
{
    return loaded;
}
bool NetworkConfig::getTCPConfig(std::string & ipAddress, int & portNumber)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* tcpElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("Socket")->FirstChildElement("TCP");
    if (tcpElement) {
        const char* ip = tcpElement->FirstChildElement("IPAddress")->GetText();// Get IP address text
        if (ip)  ipAddress = ip;
        portNumber = std::stoi(tcpElement->FirstChildElement("PortNumber")->GetText());// Get port number
        return true;
    }
    return false;
}
bool NetworkConfig::getRTSPConfig(std::string & ipAddress, int & portNumber)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* rtspElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("Socket")->FirstChildElement("RTSP");
    if (rtspElement) {
        const char* ip = rtspElement->FirstChildElement("IPAddress")->GetText();  // Get IP address text
        if (ip) ipAddress = ip;
        rtspElement->FirstChildElement("PortNumber")->QueryIntText(&portNumber);// Get port number
        return true;
    }
    return false;
}
bool NetworkConfig::getLogConfig(std::string & path, int & size)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* logElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("Log");
    if (logElement) {
        const char* logPath = logElement->FirstChildElement("Path")->GetText();  // Get log path text
        if (logPath) path = logPath;
        logElement->FirstChildElement("Size")->QueryIntText(&size);// Get log size
        return true;
    }
    return false;
}
bool NetworkConfig::getMySQLConfig(std::string & ip, int & port, std::string & db, std::string & user, std::string & password)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* mysqlElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("MySQL");
    if (mysqlElement) {
        const char* mysqlIp = mysqlElement->FirstChildElement("IP")->GetText();  // Get IP address text
        if (mysqlIp) ip = mysqlIp;
        mysqlElement->FirstChildElement("port")->QueryIntText(&port);
        const char* mysqlDb = mysqlElement->FirstChildElement("db")->GetText();  // Get database name text
        if (mysqlDb) db = mysqlDb;
        const char* mysqlUser = mysqlElement->FirstChildElement("user")->GetText();  // Get username text
        if (mysqlUser) user = mysqlUser;
        const char* mysqlPassword = mysqlElement->FirstChildElement("password")->GetText();  // Get password text
        if (mysqlPassword) password = mysqlPassword;
        return true;
    }
    return false;
}
bool NetworkConfig::getPictureManagementRootPath(std::string & rootPath)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* pictureElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("PictureManagement");
    if (pictureElement) {
        const char* path = pictureElement->FirstChildElement("RootPath")->GetText();  // Get root path text
        if (path) rootPath = path;
        return true;
    }
    return false;
}
bool NetworkConfig::getPreprocessedPictureRootPath(std::string & rootPath)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* preprocessedElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("PreprocessedPicture");
    if (preprocessedElement) {
        const char* path = preprocessedElement->FirstChildElement("RootPath")->GetText();  // Get root path text
        if (path) rootPath = path;
        return true;
    }
    return false;
}
bool NetworkConfig::getVideoManagementRootPath(std::string & rootPath)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* VideoElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("VideoManagement");
    if (VideoElement) {
        const char* path = VideoElement->FirstChildElement("RootPath")->GetText();  // Get root path text
        if (path) rootPath = path;
        return true;
    }
    return false;
}
bool NetworkConfig::getCNNModelSavePath(std::string & path)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* cnnElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("CNNModelSave");
    if (cnnElement) {
        const char* cnnPath = cnnElement->FirstChildElement("Path")->GetText();  // Get save path text
        if (cnnPath) path = cnnPath;
        return true;
    }
    return false;
}
bool NetworkConfig::getVersionManagementRootPath(std::string & rootPath)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* versionElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("VersionManagement");
    if (versionElement) {
        const char* path = versionElement->FirstChildElement("RootPath")->GetText();  // Get root path text
        if (path) rootPath = path;
        return true;
    }
    return false;
}
bool NetworkConfig::getStartupMode(std::string & mode)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* startupElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("StartupMode");
    if (startupElement) {
        const char* startupMode = startupElement->FirstChildElement("Mode")->GetText();// Get startup mode
        if (startupMode) mode = startupMode;
        return true;
    }
    return false;
}
bool NetworkConfig::setStartupMode(const std::string & mode)
{
    if (!loaded || (mode != "cold_start" && mode != "hot_start")) return false;
    tinyxml2::XMLElement* startupElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("StartupMode");
    if (startupElement) {
        tinyxml2::XMLElement* modeElement = startupElement->FirstChildElement("Mode");
        if (modeElement) {
            modeElement->SetText(mode.c_str());
            return true;
        }
    }
    return false;
}
bool NetworkConfig::saveXML(const std::string & xmlFilePath)
{
    if (!loaded) return false;
    tinyxml2::XMLError eResult = doc.SaveFile(xmlFilePath.c_str());
    return (eResult == tinyxml2::XML_SUCCESS);
}
void NetworkConfig::coldStart()
{
    std::cout << "Cold start begins..." << std::endl;
    std::cout << "Initializing network connections...\n";
    std::string tcpIp;
    int tcpPort;
    if (this->getTCPConfig(tcpIp, tcpPort)) {
        std::cout << "Establishing TCP connection: " << tcpIp << ":" << tcpPort << std::endl;
    }
    std::string rtspIp;
    int rtspPort;
    if (this->getRTSPConfig(rtspIp, rtspPort)) {
        std::cout << "Establishing RTSP connection: " << rtspIp << ":" << rtspPort << std::endl;
    }
    std::string mysqlIp, mysqlDb, mysqlUser, mysqlPassword;
    int mysqlPort;
    if (this->getMySQLConfig(mysqlIp, mysqlPort, mysqlDb, mysqlUser, mysqlPassword)) {
        std::cout << "Connecting to MySQL database: " << mysqlIp << ":" << mysqlPort << " - " << mysqlDb << std::endl;
    }
    std::string cnnPath;
    if (this->getCNNModelSavePath(cnnPath)) {
        std::cout << "Loading CNN model: " << cnnPath << std::endl;
    }
    std::cout << "Cold start completed." << std::endl;
}
void NetworkConfig::hotStart(NetworkConfig & oldParser)
{
    std::cout << "Hot start begins..." << std::endl;
    std::string oldTcpIp, newTcpIp;
    int oldTcpPort, newTcpPort;
    if (oldParser.getTCPConfig(oldTcpIp, oldTcpPort) && this->getTCPConfig(newTcpIp, newTcpPort)) {
        if (oldTcpIp != newTcpIp || oldTcpPort != newTcpPort) {
            std::cout << "TCP configuration updated: " << oldTcpIp << ":" << oldTcpPort
                << " -> " << newTcpIp << ":" << newTcpPort << std::endl;
            if (setTCPConfig(newTcpIp, newTcpPort)) {
                std::cout << "TCP" << std::endl;
                std::cout << "    IP: " << newTcpIp << "\n    Port: " << newTcpPort << std::endl;
            }
        }
    }
    std::string oldRtspIp, newRtspIp;
    int oldRtspPort, newRtspPort;
    if (oldParser.getRTSPConfig(oldRtspIp, oldRtspPort) && this->getRTSPConfig(newRtspIp, newRtspPort)) {
        if (oldRtspIp != newRtspIp || oldRtspPort != newRtspPort) {
            std::cout << "RTSP configuration updated: " << oldRtspIp << ":" << oldRtspPort
                << " -> " << newRtspIp << ":" << newRtspPort << std::endl;
        }
    }
    std::string oldLogPath, newLogPath;
    int oldLogSize, newLogSize;
    if (oldParser.getLogConfig(oldLogPath, oldLogSize) && this->getLogConfig(newLogPath, newLogSize)) {
        if (oldLogPath != newLogPath || oldLogSize != newLogSize) {
            std::cout << "Log configuration updated: " << oldLogPath << "(" << oldLogSize << ")"
                << " -> " << newLogPath << "(" << newLogSize << ")" << std::endl;
        }
    }
    std::string oldMysqlIp, newMysqlIp, oldMysqlDb, newMysqlDb, oldMysqlUser, newMysqlUser, oldMysqlPassword, newMysqlPassword;
    int oldMysqlPort, newMysqlPort;
    if (oldParser.getMySQLConfig(oldMysqlIp, oldMysqlPort, oldMysqlDb, oldMysqlUser, oldMysqlPassword) &&
        this->getMySQLConfig(newMysqlIp, newMysqlPort, newMysqlDb, newMysqlUser, newMysqlPassword)) {
        if (oldMysqlIp != newMysqlIp || oldMysqlPort != newMysqlPort ||
            oldMysqlDb != newMysqlDb || oldMysqlUser != newMysqlUser || oldMysqlPassword != newMysqlPassword) {
            std::cout << "MySQL configuration updated: " << oldMysqlIp << ":" << oldMysqlPort << " - " << oldMysqlDb
                << " -> " << newMysqlIp << ":" << newMysqlPort << " - " << newMysqlDb << std::endl;
        }
    }
    std::string oldPictureRootPath, newPictureRootPath;
    if (oldParser.getPictureManagementRootPath(oldPictureRootPath) && this->getPictureManagementRootPath(newPictureRootPath)) {
        if (oldPictureRootPath != newPictureRootPath) {
            std::cout << "Picture management root path updated: " << oldPictureRootPath
                << " -> " << newPictureRootPath << std::endl;
        }
    }
    std::string oldVideoRootPath, newVideoRootPath;
    if (oldParser.getVideoManagementRootPath(oldVideoRootPath) && this->getVideoManagementRootPath(newVideoRootPath)) {
        if (oldVideoRootPath != newVideoRootPath) {
            std::cout << "Video management root path updated: " << oldVideoRootPath
                << " -> " << newVideoRootPath << std::endl;
        }
    }
    std::string oldCnnPath, newCnnPath;
    if (oldParser.getCNNModelSavePath(oldCnnPath) && this->getCNNModelSavePath(newCnnPath)) {
        if (oldCnnPath != newCnnPath) {
            std::cout << "CNN model save path updated: " << oldCnnPath
                << " -> " << newCnnPath << std::endl;
        }
    }
    std::string oldVersionRootPath, newVersionRootPath;
    if (oldParser.getVersionManagementRootPath(oldVersionRootPath) && this->getVersionManagementRootPath(newVersionRootPath)) {
        if (oldVersionRootPath != newVersionRootPath) {
            std::cout << "Version management root path updated: " << oldVersionRootPath
                << " -> " << newVersionRootPath << std::endl;
        }
    }
    std::cout << "Hot start completed." << std::endl;
}
bool NetworkConfig::isConfigUpdated(const std::string & xmlFilePath, std::time_t & lastModifiedTime)
{
    struct stat fileStat;
    if (stat(xmlFilePath.c_str(), &fileStat) == 0) {
        if (fileStat.st_mtime > lastModifiedTime) {
            lastModifiedTime = fileStat.st_mtime;
            return true;
        }
    }
    return false;
}
void NetworkConfig::restartServices(StartupMode currentMode, const std::string & xmlFilePath, std::time_t & lastModifiedTime)
{
    switch (currentMode) {
    case StartupMode::ColdStart:
        if (isConfigUpdated("Info.xml", lastModifiedTime)) {
            std::cout << "Configuration file parameters changed. Performing cold start to restart the entire service..." << std::endl;
            coldStart();
        }
        else {
            std::cout << "No changes in the configuration file. Cold start is not required." << std::endl;
        }
        break;
    case StartupMode::HotStart:
        if (this->isConfigUpdated(xmlFilePath, lastModifiedTime)) {
            NetworkConfig oldParser(xmlFilePath);
            this->hotStart(oldParser);
        }
        else {
            std::cout << "No changes in the configuration file. Hot start is not required." << std::endl;
        }
        break;
    }
}
bool NetworkConfig::setTCPConfig(const std::string & ipAddress, int portNumber)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* tcpElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("Socket")->FirstChildElement("TCP");
    if (tcpElement) {
        tinyxml2::XMLElement* ipElement = tcpElement->FirstChildElement("IPAddress");
        if (ipElement) {
            ipElement->SetText(ipAddress.c_str());
        }
        tinyxml2::XMLElement* portElement = tcpElement->FirstChildElement("PortNumber");
        if (portElement) {
            portElement->SetText(portNumber);
        }
        return true;
    }
    return false;
}
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Info.xml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/NetworkConfig.cpp
New file
@@ -0,0 +1,377 @@
#include "stdafx.h"
#include "NetworkConfig.h"
bool NetworkConfig::startupModeSelected = false;
NetworkConfig::NetworkConfig(const std::string& xmlFilePath)
{
    tinyxml2::XMLError eResult = doc.LoadFile(xmlFilePath.c_str());
    loaded = (eResult == tinyxml2::XML_SUCCESS);
    if (!startupModeSelected) {
        std::string selectedMode;
        std::time_t lastModifiedTime = 0;
        std::cout << "Please select the startup mode (cold_start/hot_start): " << std::endl;
        std::cin >> selectedMode;
        if (this->setStartupMode(selectedMode)) {
            std::cout << "Selected " << selectedMode << std::endl;
            if (this->saveXML("config.xml")) {
                std::cout << "( XML file saved successfully )" << std::endl;
            }
            else {
                std::cout << "( Failed to save XML file )" << std::endl;
            }
            if (selectedMode == "cold_start") {
                StartupMode currentMode = StartupMode::ColdStart;
                this->restartServices(currentMode, "config.xml", lastModifiedTime);
            }
            else if (selectedMode == "hot_start") {
                startupModeSelected = true;
                NetworkConfig oldParser("Info.xml");
                StartupMode currentMode = StartupMode::HotStart;
                this->restartServices(currentMode, "config.xml", lastModifiedTime);
            }
        }
        else {
            std::cout << "Invalid startup mode. Please enter cold_start or hot_start." << std::endl;
        }
        startupModeSelected = true;
    }
}
NetworkConfig::~NetworkConfig()
{
}
bool NetworkConfig::isLoaded() const
{
    return loaded;
}
bool NetworkConfig::getTCPConfig(std::string & ipAddress, int & portNumber)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* tcpElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("Socket")->FirstChildElement("TCP");
    if (tcpElement) {
        const char* ip = tcpElement->FirstChildElement("IPAddress")->GetText();// Get IP address text
        if (ip)  ipAddress = ip;
        portNumber = std::stoi(tcpElement->FirstChildElement("PortNumber")->GetText());// Get port number
        return true;
    }
    return false;
}
bool NetworkConfig::getRTSPConfig(std::string & ipAddress, int & portNumber)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* rtspElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("Socket")->FirstChildElement("RTSP");
    if (rtspElement) {
        const char* ip = rtspElement->FirstChildElement("IPAddress")->GetText();  // Get IP address text
        if (ip) ipAddress = ip;
        rtspElement->FirstChildElement("PortNumber")->QueryIntText(&portNumber);// Get port number
        return true;
    }
    return false;
}
bool NetworkConfig::getLogConfig(std::string & path, int & size)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* logElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("Log");
    if (logElement) {
        const char* logPath = logElement->FirstChildElement("Path")->GetText();  // Get log path text
        if (logPath) path = logPath;
        logElement->FirstChildElement("Size")->QueryIntText(&size);// Get log size
        return true;
    }
    return false;
}
bool NetworkConfig::getMySQLConfig(std::string & ip, int & port, std::string & db, std::string & user, std::string & password)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* mysqlElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("MySQL");
    if (mysqlElement) {
        const char* mysqlIp = mysqlElement->FirstChildElement("IP")->GetText();  // Get IP address text
        if (mysqlIp) ip = mysqlIp;
        mysqlElement->FirstChildElement("port")->QueryIntText(&port);
        const char* mysqlDb = mysqlElement->FirstChildElement("db")->GetText();  // Get database name text
        if (mysqlDb) db = mysqlDb;
        const char* mysqlUser = mysqlElement->FirstChildElement("user")->GetText();  // Get username text
        if (mysqlUser) user = mysqlUser;
        const char* mysqlPassword = mysqlElement->FirstChildElement("password")->GetText();  // Get password text
        if (mysqlPassword) password = mysqlPassword;
        return true;
    }
    return false;
}
bool NetworkConfig::getPictureManagementRootPath(std::string & rootPath)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* pictureElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("PictureManagement");
    if (pictureElement) {
        const char* path = pictureElement->FirstChildElement("RootPath")->GetText();  // Get root path text
        if (path) rootPath = path;
        return true;
    }
    return false;
}
bool NetworkConfig::getPreprocessedPictureRootPath(std::string & rootPath)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* preprocessedElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("PreprocessedPicture");
    if (preprocessedElement) {
        const char* path = preprocessedElement->FirstChildElement("RootPath")->GetText();  // Get root path text
        if (path) rootPath = path;
        return true;
    }
    return false;
}
bool NetworkConfig::getVideoManagementRootPath(std::string & rootPath)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* VideoElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("VideoManagement");
    if (VideoElement) {
        const char* path = VideoElement->FirstChildElement("RootPath")->GetText();  // Get root path text
        if (path) rootPath = path;
        return true;
    }
    return false;
}
bool NetworkConfig::getCNNModelSavePath(std::string & path)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* cnnElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("CNNModelSave");
    if (cnnElement) {
        const char* cnnPath = cnnElement->FirstChildElement("Path")->GetText();  // Get save path text
        if (cnnPath) path = cnnPath;
        return true;
    }
    return false;
}
bool NetworkConfig::getVersionManagementRootPath(std::string & rootPath)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* versionElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("VersionManagement");
    if (versionElement) {
        const char* path = versionElement->FirstChildElement("RootPath")->GetText();  // Get root path text
        if (path) rootPath = path;
        return true;
    }
    return false;
}
bool NetworkConfig::getStartupMode(std::string & mode)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* startupElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("StartupMode");
    if (startupElement) {
        const char* startupMode = startupElement->FirstChildElement("Mode")->GetText();// Get startup mode
        if (startupMode) mode = startupMode;
        return true;
    }
    return false;
}
bool NetworkConfig::setStartupMode(const std::string & mode)
{
    if (!loaded || (mode != "cold_start" && mode != "hot_start")) return false;
    tinyxml2::XMLElement* startupElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("StartupMode");
    if (startupElement) {
        tinyxml2::XMLElement* modeElement = startupElement->FirstChildElement("Mode");
        if (modeElement) {
            modeElement->SetText(mode.c_str());
            return true;
        }
    }
    return false;
}
bool NetworkConfig::saveXML(const std::string & xmlFilePath)
{
    if (!loaded) return false;
    tinyxml2::XMLError eResult = doc.SaveFile(xmlFilePath.c_str());
    return (eResult == tinyxml2::XML_SUCCESS);
}
void NetworkConfig::coldStart()
{
    std::cout << "Cold start begins..." << std::endl;
    std::cout << "Initializing network connections...\n";
    std::string tcpIp;
    int tcpPort;
    if (this->getTCPConfig(tcpIp, tcpPort)) {
        std::cout << "Establishing TCP connection: " << tcpIp << ":" << tcpPort << std::endl;
    }
    std::string rtspIp;
    int rtspPort;
    if (this->getRTSPConfig(rtspIp, rtspPort)) {
        std::cout << "Establishing RTSP connection: " << rtspIp << ":" << rtspPort << std::endl;
    }
    std::string mysqlIp, mysqlDb, mysqlUser, mysqlPassword;
    int mysqlPort;
    if (this->getMySQLConfig(mysqlIp, mysqlPort, mysqlDb, mysqlUser, mysqlPassword)) {
        std::cout << "Connecting to MySQL database: " << mysqlIp << ":" << mysqlPort << " - " << mysqlDb << std::endl;
    }
    std::string cnnPath;
    if (this->getCNNModelSavePath(cnnPath)) {
        std::cout << "Loading CNN model: " << cnnPath << std::endl;
    }
    std::cout << "Cold start completed." << std::endl;
}
void NetworkConfig::hotStart(NetworkConfig & oldParser)
{
    std::cout << "Hot start begins..." << std::endl;
    std::string oldTcpIp, newTcpIp;
    int oldTcpPort, newTcpPort;
    if (oldParser.getTCPConfig(oldTcpIp, oldTcpPort) && this->getTCPConfig(newTcpIp, newTcpPort)) {
        if (oldTcpIp != newTcpIp || oldTcpPort != newTcpPort) {
            std::cout << "TCP configuration updated: " << oldTcpIp << ":" << oldTcpPort
                << " -> " << newTcpIp << ":" << newTcpPort << std::endl;
            if (setTCPConfig(newTcpIp, newTcpPort)) {
                std::cout << "TCP" << std::endl;
                std::cout << "    IP: " << newTcpIp << "\n    Port: " << newTcpPort << std::endl;
            }
        }
    }
    std::string oldRtspIp, newRtspIp;
    int oldRtspPort, newRtspPort;
    if (oldParser.getRTSPConfig(oldRtspIp, oldRtspPort) && this->getRTSPConfig(newRtspIp, newRtspPort)) {
        if (oldRtspIp != newRtspIp || oldRtspPort != newRtspPort) {
            std::cout << "RTSP configuration updated: " << oldRtspIp << ":" << oldRtspPort
                << " -> " << newRtspIp << ":" << newRtspPort << std::endl;
        }
    }
    std::string oldLogPath, newLogPath;
    int oldLogSize, newLogSize;
    if (oldParser.getLogConfig(oldLogPath, oldLogSize) && this->getLogConfig(newLogPath, newLogSize)) {
        if (oldLogPath != newLogPath || oldLogSize != newLogSize) {
            std::cout << "Log configuration updated: " << oldLogPath << "(" << oldLogSize << ")"
                << " -> " << newLogPath << "(" << newLogSize << ")" << std::endl;
        }
    }
    std::string oldMysqlIp, newMysqlIp, oldMysqlDb, newMysqlDb, oldMysqlUser, newMysqlUser, oldMysqlPassword, newMysqlPassword;
    int oldMysqlPort, newMysqlPort;
    if (oldParser.getMySQLConfig(oldMysqlIp, oldMysqlPort, oldMysqlDb, oldMysqlUser, oldMysqlPassword) &&
        this->getMySQLConfig(newMysqlIp, newMysqlPort, newMysqlDb, newMysqlUser, newMysqlPassword)) {
        if (oldMysqlIp != newMysqlIp || oldMysqlPort != newMysqlPort ||
            oldMysqlDb != newMysqlDb || oldMysqlUser != newMysqlUser || oldMysqlPassword != newMysqlPassword) {
            std::cout << "MySQL configuration updated: " << oldMysqlIp << ":" << oldMysqlPort << " - " << oldMysqlDb
                << " -> " << newMysqlIp << ":" << newMysqlPort << " - " << newMysqlDb << std::endl;
        }
    }
    std::string oldPictureRootPath, newPictureRootPath;
    if (oldParser.getPictureManagementRootPath(oldPictureRootPath) && this->getPictureManagementRootPath(newPictureRootPath)) {
        if (oldPictureRootPath != newPictureRootPath) {
            std::cout << "Picture management root path updated: " << oldPictureRootPath
                << " -> " << newPictureRootPath << std::endl;
        }
    }
    std::string oldVideoRootPath, newVideoRootPath;
    if (oldParser.getVideoManagementRootPath(oldVideoRootPath) && this->getVideoManagementRootPath(newVideoRootPath)) {
        if (oldVideoRootPath != newVideoRootPath) {
            std::cout << "Video management root path updated: " << oldVideoRootPath
                << " -> " << newVideoRootPath << std::endl;
        }
    }
    std::string oldCnnPath, newCnnPath;
    if (oldParser.getCNNModelSavePath(oldCnnPath) && this->getCNNModelSavePath(newCnnPath)) {
        if (oldCnnPath != newCnnPath) {
            std::cout << "CNN model save path updated: " << oldCnnPath
                << " -> " << newCnnPath << std::endl;
        }
    }
    std::string oldVersionRootPath, newVersionRootPath;
    if (oldParser.getVersionManagementRootPath(oldVersionRootPath) && this->getVersionManagementRootPath(newVersionRootPath)) {
        if (oldVersionRootPath != newVersionRootPath) {
            std::cout << "Version management root path updated: " << oldVersionRootPath
                << " -> " << newVersionRootPath << std::endl;
        }
    }
    std::cout << "Hot start completed." << std::endl;
}
bool NetworkConfig::isConfigUpdated(const std::string & xmlFilePath, std::time_t & lastModifiedTime)
{
    struct stat fileStat;
    if (stat(xmlFilePath.c_str(), &fileStat) == 0) {
        if (fileStat.st_mtime > lastModifiedTime) {
            lastModifiedTime = fileStat.st_mtime;
            return true;
        }
    }
    return false;
}
void NetworkConfig::restartServices(StartupMode currentMode, const std::string & xmlFilePath, std::time_t & lastModifiedTime)
{
    switch (currentMode) {
    case StartupMode::ColdStart:
        if (isConfigUpdated("Info.xml", lastModifiedTime)) {
            std::cout << "Configuration file parameters changed. Performing cold start to restart the entire service..." << std::endl;
            coldStart();
        }
        else {
            std::cout << "No changes in the configuration file. Cold start is not required." << std::endl;
        }
        break;
    case StartupMode::HotStart:
        if (this->isConfigUpdated(xmlFilePath, lastModifiedTime)) {
            NetworkConfig oldParser(xmlFilePath);
            this->hotStart(oldParser);
        }
        else {
            std::cout << "No changes in the configuration file. Hot start is not required." << std::endl;
        }
        break;
    }
}
bool NetworkConfig::setTCPConfig(const std::string & ipAddress, int portNumber)
{
    if (!loaded) return false;
    tinyxml2::XMLElement* tcpElement = doc.FirstChildElement("NetworkConfigurationInfo")
        ->FirstChildElement("Socket")->FirstChildElement("TCP");
    if (tcpElement) {
        tinyxml2::XMLElement* ipElement = tcpElement->FirstChildElement("IPAddress");
        if (ipElement) {
            ipElement->SetText(ipAddress.c_str());
        }
        tinyxml2::XMLElement* portElement = tcpElement->FirstChildElement("PortNumber");
        if (portElement) {
            portElement->SetText(portNumber);
        }
        return true;
    }
    return false;
}
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/NetworkConfig.h
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/Server_XML.cpp
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/config.xml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/stdafx.h
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/targetver.h
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/.github/workflows/test.yml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/.gitignore
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/CMakeLists.txt
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/LICENSE.txt
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/Makefile
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/TinyXML2_small.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/cmake/tinyxml2-config.cmake
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/cmake/tinyxml2.pc.in
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/contrib/html5-printer.cpp
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/_config.yml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/_example_1.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/_example_2.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/_example_3.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/_example_4.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/annotated.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/bc_s.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/bc_sd.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/bdwn.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classes.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_attribute-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_attribute.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_comment-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_comment.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_comment.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_const_handle-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_const_handle.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_declaration-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_declaration.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_declaration.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_document-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_document.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_document.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_element-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_element.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_element.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_handle-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_handle.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_node-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_node.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_node.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_printer-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_printer.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_printer.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_text-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_text.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_text.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_unknown-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_unknown.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_unknown.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_visitor-members.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_visitor.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/classtinyxml2_1_1_x_m_l_visitor.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/clipboard.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/closed.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/cookie.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/doc.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/doc.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/docd.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/doxygen.css
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/doxygen.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/doxygen.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/doxygen_crawl.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/dynsections.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/files.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/folderclosed.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/folderclosed.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/folderclosedd.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/folderopen.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/folderopen.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/folderopend.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_b.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_c.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_d.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_e.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_f.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_b.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_c.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_d.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_e.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_f.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_g.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_h.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_i.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_l.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_n.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_o.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_p.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_q.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_r.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_s.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_t.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_u.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_v.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_func_x.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_g.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_h.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_i.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_l.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_n.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_o.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_p.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_q.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_r.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_s.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_t.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_u.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_v.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/functions_x.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/hierarchy.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/index.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/jquery.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/menu.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/menudata.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/minus.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/minusd.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/nav_f.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/nav_fd.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/nav_g.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/nav_h.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/nav_hd.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/open.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/pages.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/plus.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/plusd.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_0.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_0.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_1.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_1.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_10.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_10.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_11.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_11.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_12.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_12.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_13.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_13.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_14.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_2.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_2.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_3.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_3.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_4.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_4.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_5.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_5.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_6.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_6.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_7.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_7.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_8.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_8.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_9.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_9.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_a.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_a.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_b.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_b.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_c.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_c.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_d.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_d.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_e.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_e.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_f.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/all_f.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/classes_0.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/classes_0.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/close.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/close.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_0.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_0.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_1.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_1.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_10.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_10.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_11.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_11.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_12.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_12.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_13.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_13.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_2.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_2.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_3.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_3.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_4.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_4.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_5.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_5.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_6.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_6.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_7.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_7.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_8.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_8.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_9.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_9.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_a.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_a.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_b.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_b.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_c.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_c.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_d.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_d.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_e.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_e.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_f.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/functions_f.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/mag.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/mag_d.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/mag_sel.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/mag_sel.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/mag_seld.svg
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/nomatches.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_0.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_0.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_1.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_1.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_2.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_2.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_3.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_3.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_4.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_4.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_5.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_6.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_7.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_8.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_9.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_a.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_b.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/pages_c.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/search.css
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/search.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/search_l.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/search_m.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/search_r.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/search/searchdata.js
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/splitbar.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/splitbard.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/sync_off.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/sync_on.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_a.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_ad.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_b.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_bd.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_h.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_hd.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_s.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/tab_sd.png

Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/tabs.css
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/docs/tinyxml2_8h_source.html
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/dox
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/meson.build
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/meson_options.txt
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/readme.md
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/resources/dream.xml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/resources/empty.xml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/resources/utf8test.xml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/resources/utf8testverify.xml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/resources/xmltest-4636783552757760.xml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/resources/xmltest-5330.xml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/resources/xmltest-5662204197076992.xml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/resources/xmltest-5720541257269248.xml
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/setversion.py
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/test/CMakeLists.txt
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/tinyxml2.cpp
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/tinyxml2.h
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2-master/xmltest.cpp
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/tinyxml2.h
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/FaceProject.Build.CppClean.log
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/FaceProject.log
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/CL.command.1.tlog
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/CL.read.1.tlog
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/CL.write.1.tlog
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/FaceProject.lastbuildstate
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/link.command.1.tlog
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/link.read.1.tlog
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/link.write.1.tlog
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/FaceProject.tlog/unsuccessfulbuild
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/NetworkConfig.obj
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/Server_XML.obj
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/tinyxml2.obj
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/vc140.idb
Binary files differ
Server/¹ùÎÄÇ¿/code/FaceProject/FaceProject/x64/Debug/vc140.pdb
Binary files differ
Server/¹ùÎÄÇ¿/log/¹ùÎÄÇ¿_20250311.doc
Binary files differ
Server/¹ùÎÄÇ¿/log/¹ùÎÄÇ¿_20250312.doc
Binary files differ