diff --git a/Header_Files/configfile.h b/Header_Files/configfile.h index 7a5216b..939819f 100644 --- a/Header_Files/configfile.h +++ b/Header_Files/configfile.h @@ -45,6 +45,29 @@ public: bool createConfigFile(); bool updateConfigFile(); +private: + string m_configfilePath; + Config cfg; +}; + +class ParameterConfigfile +{ +public: + ParameterConfigfile(); + void setConfigfilePath(string configfilePath); + bool isConfigfileExist(); + bool parseConfigfile(); + + bool getFrameRate(int &frameRate); + bool setFrameRate(int frameRate); + + bool getExposeTime(float &exposeTime); + bool setExposeTime(float exposeTime); + + bool createConfigFile(); +// bool updateConfigFile(); + bool writeConfig2File(); + private: string m_configfilePath; Config cfg; diff --git a/Header_Files/ximeaimager.h b/Header_Files/ximeaimager.h index 11ad2f9..3763ec3 100644 --- a/Header_Files/ximeaimager.h +++ b/Header_Files/ximeaimager.h @@ -130,7 +130,7 @@ public: void setFramerate(double framerate); double getFramerate(); - double setExposureTime(float exposureTime); + double setExposureTime(float exposureTime_in_us); int wrapSetExposureTime(float exposureTime_in_us); double getExposureTime(); double autoExposure(); @@ -188,6 +188,7 @@ private: } Configfile m_configfile; + ParameterConfigfile m_parameterConfigfile; diff --git a/Source_Files/configfile.cpp b/Source_Files/configfile.cpp index 530db55..9fd1b4c 100644 --- a/Source_Files/configfile.cpp +++ b/Source_Files/configfile.cpp @@ -468,3 +468,172 @@ bool Configfile::updateConfigFile() return true; } + +ParameterConfigfile::ParameterConfigfile() +{ + +} + +void ParameterConfigfile::setConfigfilePath(string configfilePath) +{ + m_configfilePath = configfilePath; +} + +bool ParameterConfigfile::isConfigfileExist() +{ + QFileInfo info(QString::fromStdString(m_configfilePath)); + + return info.exists(); +} + +bool ParameterConfigfile::parseConfigfile() +{ + // Read the file. If there is an error, report it and exit. + try + { + cfg.readFile(m_configfilePath); + + return true; + } + catch(const FileIOException &fioex) + { + std::cerr << "I/O error while reading file." << std::endl; + return false; + } + catch(const ParseException &pex) + { + std::cerr << "Parse error at " << pex.getFile() << ":" << pex.getLine() + << " - " << pex.getError() << std::endl; + return false; + } +} + +bool ParameterConfigfile::createConfigFile() +{ + using namespace std; + using namespace libconfig; + + Config cfg; + + Setting &root = cfg.getRoot(); + + // Add some settings to the configuration. +// Setting &SN = root.add("SN", Setting::TypeString) = "0098"; +// Setting &spatialBin = root.add("spatialBin", Setting::TypeInt) = 2; +// Setting &SpectralBin = root.add("spectralBin", Setting::TypeInt) = 2; + + Setting &ximeaParam = root.add("ximeaParam", Setting::TypeGroup); + ximeaParam.add("frameRate", Setting::TypeInt) = 100; + ximeaParam.add("exposeTime", Setting::TypeFloat) = 10.0; + + + // Write out the new configuration. + try + { + QList fileInfo = getFileInfo(QString::fromStdString(m_configfilePath)); + bool ret = createDir(fileInfo[0]); + + cfg.writeFile(m_configfilePath.c_str()); + cerr << "New configuration successfully written to: " << m_configfilePath.c_str() << endl; + + } + catch(const FileIOException &fioex) + { + cerr << "I/O error while writing configuration file: " << m_configfilePath.c_str() << endl; + return true; + } + + return true; +} + +bool ParameterConfigfile::getFrameRate(int &frameRate) +{ + const Setting& root = cfg.getRoot(); + try + { + const Setting &ximeaParam = root["ximeaParam"]; + frameRate = ximeaParam.lookup("frameRate"); + + std::cout << "----------------"<< frameRate< fileInfo = getFileInfo(QString::fromStdString(m_configfilePath)); + bool ret = createDir(fileInfo[0]); + + cfg.writeFile(m_configfilePath.c_str()); + cerr << "New configuration successfully written to: " << m_configfilePath.c_str() << endl; + } + catch(const FileIOException &fioex) + { + cerr << "I/O error while writing configuration file: " << m_configfilePath.c_str() << endl; + return false; + } + return true; +} diff --git a/Source_Files/main.cpp b/Source_Files/main.cpp index 49be6ae..da7f2e7 100644 --- a/Source_Files/main.cpp +++ b/Source_Files/main.cpp @@ -3,7 +3,7 @@ int main(int argc, char *argv[]) { - std::cout<<"ximeaAirborneSystem 版本:"<< "36." <