bool PowerHandler::InitHandler(const char* prj_name, const char* case_name, double sim_time, double sim_period) { _instance = _api_fixture->GetInstance(); //ApiFixture is responsible for creation/destruction api instance if (!_instance) { //std::cout << "InitHandler, error:ApiFixture::GetInstance()" << std::endl; return false; } int ret = 0; Application* app = _instance->GetApplication(); DataObject* user = app->GetCurrentUser(); DataObject* prj = GetProject(user, prj_name); DataObject* e_case = GetCaseObject(prj, case_name); Value v_prj(prj); Value v_case(e_case); if (prj != app->GetActiveProject()){ app->Execute("Activate", &v_prj, &ret); //激活项目 if (ret > 0){ //std::cout << "InitHandler, error: Execute v_prj" << std::endl; return false; } } if (e_case != app->GetActiveStudyCase()){ app->Execute("Activate", &v_case, &ret);//激活项目 if (ret > 0){ // std::cout << "InitHandler, error: Execute v_case" << std::endl; return false; } } //delete the last EvtParam for no influencing the next simulation Value v_ev("IntEvt"); ValueGuard int_ev(app->Execute("GetCaseObject", &v_ev)); DataObject* events = int_ev->GetDataObject(); DataObjVec folders = Utils::GetChildren(events, "EvtParam"); DataObjVec::iterator it = folders.begin(); for (; it != folders.end(); ++it) { DataObject* folder = *it; folder->DeleteObject(); } _sim_time = sim_time; _sim_period = sim_period; //std::cout << "InitHandler, success." << std::endl; return true; }