Exemple #1
0
void Executive::addObservableToView(const std::string &model,
                                    const std::string &portname,
                                    const std::string &view)
{
    vpz::BaseModel *mdl = cpled()->findModel(model);

    if (mdl == nullptr) {
        throw utils::DevsGraphError(
            (fmt(_("Executive error: unknown model `%1%'")) % model).str());
    }

    if (mdl->isCoupled()) {
        throw utils::DevsGraphError(
            (fmt(_("Executive error: can not add observable to coupled "
                   "model %1%")) %
             model)
                .str());
    }

    vpz::AtomicModel *atom = mdl->toAtomic();

    m_coordinator.addObservableToView(atom, portname, view);
}
Exemple #2
0
const vpz::AtomicModel *
Executive::createModel(const std::string &name,
                       const std::vector<std::string> &inputs,
                       const std::vector<std::string> &outputs,
                       const std::string &dynamics,
                       const std::vector<std::string> &conds,
                       const std::string &observable)
{
    auto model = new vpz::AtomicModel(name, cpled());
    std::vector<std::string>::const_iterator it;

    for (it = inputs.begin(); it != inputs.end(); ++it) {
        model->addInputPort(*it);
    }

    for (it = outputs.begin(); it != outputs.end(); ++it) {
        model->addOutputPort(*it);
    }

    m_coordinator.createModel(
        model, conditions(), dynamics, conds, observable);

    return model;
}
Exemple #3
0
const vpz::BaseModel*
Executive::createModelFromClass(const std::string& classname,
                                const std::string& modelname)
{
    return m_coordinator.createModelFromClass(classname, cpled(), modelname);
}