示例#1
0
void Package::autocorrectSpecs()
{
    if(!flagActive(HasName))
    {
        setConfigVar(Name, "Undefined Name");
    }
    if(!flagActive(HasID))
    {
        setConfigVar(ID, "---");
    }
    if(!flagActive(HasAuthor))
    {
        setConfigVar(Author, "No author given");
    }
}
示例#2
0
文件: Config.cpp 项目: kss-upb/POSSIM
// Some simple input error checking.  Allows config to have e.g. any of the 
// following with same result:  MATLAB, Matlab, matlab, 1.
void Config::correctValues() {
    std::string value = getConfigVar("loadflowsimulator");
    if(value.compare("Testing") == 0 ||
       value.compare("testing") == 0 ||
       value.compare("0") == 0)
        setConfigVar("loadflowsimulator", "testing");
    else if(value.compare("Matlab") == 0 ||
            value.compare("MATLAB") == 0 ||
            value.compare("matlab") == 0 ||
            value.compare("1") == 0)
               setConfigVar("loadflowsimulator", "matlab");
    else if(value.compare("DIGSILENT") == 0 ||
            value.compare("DigSilent") == 0 ||
            value.compare("digsilent") == 0 ||
            value.compare("2") == 0)
               setConfigVar("loadflowsimulator", "digsilent");
    
    value = getConfigVar("chargingalgorithm");
    if(value.compare("Uncontrolled") == 0 ||
       value.compare("uncontrolled") == 0 ||
       value.compare("0") == 0)
        setConfigVar("chargingalgorithm", "uncontrolled");
    else if(value.compare("EqualShare") == 0 ||
            value.compare("equalshare") == 0 ||
            value.compare("1") == 0)
               setConfigVar("chargingalgorithm", "equalshare");
    else if(value.compare("Distributed") == 0 ||
            value.compare("distributed") == 0 ||
            value.compare("2") == 0)
               setConfigVar("chargingalgorithm", "distributed");
    else if(value.compare("TOU") == 0 ||
            value.compare("tou") == 0 ||
            value.compare("4") == 0)
               setConfigVar("chargingalgorithm", "TOU");
    else if(value.compare("OPTIMAL1") == 0 ||
            value.compare("Optimal1") == 0 ||
            value.compare("optimal1") == 0 ||
            value.compare("5") == 0)
               setConfigVar("chargingalgorithm", "optimal1");
    else if(value.compare("OPTIMAL2") == 0 ||
            value.compare("Optimal2") == 0 ||
            value.compare("optimal2") == 0 ||
            value.compare("6") == 0)
               setConfigVar("chargingalgorithm", "optimal2");
}
示例#3
0
void Package::loadSpecs(const std::string &yamlString, bool autocorrect)
{
    if(yamlString.length() < 5)
        m_isValid = false;

    activateFlag(SpecsLoaded);

    YAML::Node specs = YAML::Load(yamlString);
    if(specs["PPKPath"])
    {
        setConfigVar(PPKPath, specs["PPKPath"].as<std::string>());
    }
    if(specs["Author"])
    {
        setConfigVar(Author, specs["Author"].as<std::string>());
    }
    if(specs["Name"])
    {
        setConfigVar(Name, specs["Name"].as<std::string>());
    }
    if(specs["Version"])
    {
        setConfigVar(Version, specs["Version"].as<std::string>());
    }
    if(specs["ID"])
    {
        setConfigVar(ID, specs["ID"].as<std::string>());
    }
    if(specs["IsInMainGamesList"])
    {
        activateFlag(IsInMainGamesList);
    }

    if(autocorrect)
    {
        autocorrectSpecs();
    }
}
示例#4
0
void Package::fromDirectory(const std::string &dir)
{
    LOG(INFO) << "Reading package from directory \"" << dir << "\".";
    setConfigVar(Directory, dir);
    activateFlag(HasDirectory);

    QFile specsFile(QString::fromStdString(dir + "/PackageSpecs.yml"));
    specsFile.open(QFile::ReadOnly);
    if(specsFile.isReadable())
    {
        loadSpecs(specsFile.readAll().toStdString());
    }
    else
    {
        LOG(WARNING) << "The package in the directory \"" << dir << "\" has no \"PackageSpecs.yml\" file!";
        m_isValid = false;
    }
}