#include "classxml.h" #include "crc16.h" #include #include ClassXML::ClassXML() { } bool ClassXML::CreateSysParamXml(SYSTEM_PARAM_XML &sysparam) { QFile file(sysParmFile); if(!file.exists()) { if(!file.open(QIODevice::WriteOnly|QIODevice::Truncate)) return false; QDomDocument doc; QDomProcessingInstruction instruction; instruction = doc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\""); doc.appendChild(instruction); QDomElement root=doc.createElement("SYS_PARAM_ROOT"); doc.appendChild(root); QDomElement DE = doc.createElement("dev_addr"); DE.appendChild(doc.createTextNode(QString::number(sysparam.dev_addr))); root.appendChild(DE); DE = doc.createElement("save_time_interval"); DE.appendChild(doc.createTextNode(QString::number(sysparam.save_time_interval))); root.appendChild(DE); DE = doc.createElement("tcp_type"); DE.appendChild(doc.createTextNode(QString::number(sysparam.tcp_type))); root.appendChild(DE); DE = doc.createElement("server_port"); DE.appendChild(doc.createTextNode(QString::number(sysparam.server_port))); root.appendChild(DE); DE = doc.createElement("server_ip"); DE.appendChild(doc.createTextNode(sysparam.server_ip)); root.appendChild(DE); QTextStream out( &file ); doc.save(out, 4); file.close(); return true; } return false; } bool ClassXML::ReadSysParamXml(SYSTEM_PARAM_XML &sysparam) { QDomDocument doc; QFile file(sysParmFile); if( !file.open( QFile::ReadOnly | QFile::Truncate) ) return false; if(!doc.setContent(&file)) return false; file.close(); QDomElement root = doc.documentElement(); QDomNode DN; if(!(DN=root.elementsByTagName("dev_addr").at(0)).isNull()) { sysparam.dev_addr = DN.toElement().text().toInt(); } else sysparam.dev_addr = 1; if(!(DN=root.elementsByTagName("save_time_interval").at(0)).isNull()) { sysparam.save_time_interval = DN.toElement().text().toInt(); } else sysparam.save_time_interval = 60; if(!(DN=root.elementsByTagName("tcp_type").at(0)).isNull()) { sysparam.tcp_type = DN.toElement().text().toInt(); } else sysparam.tcp_type = 1; if(!(DN=root.elementsByTagName("server_port").at(0)).isNull()) { sysparam.server_port = DN.toElement().text().toInt(); } else sysparam.server_port = 6666; if(!(DN=root.elementsByTagName("server_ip").at(0)).isNull()) { sysparam.server_ip = DN.toElement().text(); } else sysparam.server_ip = "192.168.10.199"; return true; } bool ClassXML::SaveSysParamXml(SYSTEM_PARAM_XML &sysparam) { QFile file(sysParmFile); if(!file.open(QIODevice::WriteOnly|QIODevice::Truncate)) return false; QDomDocument doc; QDomProcessingInstruction instruction; instruction = doc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\""); doc.appendChild(instruction); QDomElement root=doc.createElement("SYS_PARAM_ROOT"); doc.appendChild(root); QDomElement DE = doc.createElement("dev_addr"); DE.appendChild(doc.createTextNode(QString::number(sysparam.dev_addr))); root.appendChild(DE); DE = doc.createElement("save_time_interval"); DE.appendChild(doc.createTextNode(QString::number(sysparam.save_time_interval))); root.appendChild(DE); DE = doc.createElement("tcp_type"); DE.appendChild(doc.createTextNode(QString::number(sysparam.tcp_type))); root.appendChild(DE); DE = doc.createElement("server_port"); DE.appendChild(doc.createTextNode(QString::number(sysparam.server_port))); root.appendChild(DE); DE = doc.createElement("server_ip"); DE.appendChild(doc.createTextNode(sysparam.server_ip)); root.appendChild(DE); QTextStream out( &file ); doc.save(out, 4); file.flush(); int fd = file.handle(); fsync(fd); file.close(); return true; } bool ClassXML::CreateTestParamFile(TEST_PARAM &testparam) { QFile file(testParmFile); if(file.exists()) return false; if(!file.open(QIODevice::WriteOnly|QIODevice::Truncate)) return false; QDataStream dataStream(&file); dataStream.writeRawData((char *)&testparam, sizeof(TEST_PARAM)); file.flush(); int fd = file.handle(); fsync(fd); file.close(); return true; } bool ClassXML::ReadTestParamFile(TEST_PARAM &testparam) { QFile file(testParmFile); if( !file.open(QFile::ReadOnly|QIODevice::Truncate) ) return false; QDataStream dataStream(&file); dataStream.readRawData((char *)&testparam, sizeof(TEST_PARAM)); file.close(); return true; } bool ClassXML::SaveTestParamFile(TEST_PARAM &testparam) { QFile file(testParmFile); if(!file.open(QIODevice::WriteOnly|QIODevice::Truncate)) return false; QDataStream dataStream(&file); dataStream.writeRawData((char *)&testparam, sizeof(TEST_PARAM)); file.flush(); int fd = file.handle(); fsync(fd); file.close(); return true; } bool ClassXML::CreatePackParamFile(PACK_PARAM &packparam) { QFile file(packParmFile); if(file.exists()) return false; if(!file.open(QIODevice::WriteOnly|QIODevice::Truncate)) return false; QDataStream dataStream(&file); dataStream.writeRawData((char *)&packparam, sizeof(PACK_PARAM)); file.flush(); int fd = file.handle(); fsync(fd); file.close(); return true; } bool ClassXML::ReadPackParamFile(PACK_PARAM &packparam) { QFile file(packParmFile); if( !file.open(QFile::ReadOnly|QIODevice::Truncate) ) return false; QDataStream dataStream(&file); dataStream.readRawData((char *)&packparam, sizeof(PACK_PARAM)); file.close(); return true; } bool ClassXML::SavePackParamFile(PACK_PARAM &packparam) { QFile file(packParmFile); if(!file.open(QIODevice::WriteOnly|QIODevice::Truncate)) return false; QDataStream dataStream(&file); dataStream.writeRawData((char *)&packparam, sizeof(PACK_PARAM)); file.flush(); int fd = file.handle(); fsync(fd); file.close(); return true; } bool ClassXML::CreateFBO_Data(const QString &fname,FBO_DATA_HEAD_START &datainfo) { QFile file(fname); if(!file.open(QFile::ReadWrite)) return false; QDataStream dataStream(&file); file.seek(0); quint8 *pInfo = (quint8 *)&datainfo; for(quint16 i=0;i