예제 #1
0
 public override bool UpdateTestBenchManifestExecutionSteps(AVM.DDP.MetaTBManifest manifest)
 {
     manifest.Steps.Add(new AVM.DDP.MetaTBManifest.Step()
     {
         Invocation  = "python.exe -E -m run_mdao",
         Description = "ParametricExploration",
         // Type = "Parametric Study",
         Status = AVM.DDP.MetaTBManifest.StatusEnum.UNEXECUTED
     });
     return(true);
 }
 public override bool UpdateTestBenchManifestExecutionSteps(AVM.DDP.MetaTBManifest manifest)
 {
     manifest.Steps.Add(new AVM.DDP.MetaTBManifest.Step()
     {
         Invocation  = String.Format("\"{0}\" -E -m run_mdao", VersionInfo.PythonVEnvExe),
         Description = "ParametricExploration",
         // Type = "Parametric Study",
         Status = AVM.DDP.MetaTBManifest.StatusEnum.UNEXECUTED
     });
     return(true);
 }
예제 #3
0
        public void SaveTestBenchManifest(string outputDirectory, CyPhy.TestBenchType testBenchType)
        {
            if (testBenchType == null)
            {
                throw new ArgumentNullException();
            }

            if (outputDirectory == null)
            {
                throw new ArgumentNullException();
            }

            AVM.DDP.MetaTBManifest manifest = new AVM.DDP.MetaTBManifest();
            manifest.MakeManifest(testBenchType, outputDirectory);
            manifest.Serialize(outputDirectory);
        }
예제 #4
0
        public override bool UpdateTestBenchManifestExecutionSteps(AVM.DDP.MetaTBManifest manifest)
        {
            this.ExecuteInTransaction(() =>
            {
                try
                {
                    manifest.AddAllTasks(this.testBenchType, this.Interpreters, "..\\..");
                }
                catch (Exception ex)
                {
                    throw new AnalysisModelProcessorException("Updating test bench execution steps failed.", ex);
                }
            });

            return(true);
        }
예제 #5
0
        /// <summary>
        /// Call this function if a GME transaction is open.
        /// </summary>
        /// <param name="testBenchName"></param>
        /// <param name="interpreterOutputDir"></param>
        /// <param name="fco"></param>
        public void SaveSummaryReportJson(string interpreterOutputDir, MgaFCO fco)
        {
            // TODO: index result file!

            if (fco.Meta.Name == "TestBench")
            {
                CyPhy.TestBench tb = ISIS.GME.Dsml.CyPhyML.Classes.TestBench.Cast(fco as MgaObject);

                AVM.DDP.MetaTBManifest manifest = new AVM.DDP.MetaTBManifest();
                manifest.MakeManifest(tb, interpreterOutputDir);
                manifest.Serialize(interpreterOutputDir);
            }
            else if (fco.Meta.Name == "CADTestBench")
            {
                var tb = ISIS.GME.Dsml.CyPhyML.Classes.CADTestBench.Cast(fco as MgaObject);

                AVM.DDP.MetaTBManifest manifest = new AVM.DDP.MetaTBManifest();
                manifest.MakeManifest(tb, interpreterOutputDir);
                manifest.Serialize(interpreterOutputDir);
            }
        }
예제 #6
0
        public void SaveTestBenchManifest(string designName, string configurationName, string testBenchName, FCO expandedTestBenchType, string outputDir, DateTime analysisStartTime)
        {
            if (outputDir == null)
            {
                throw new ArgumentNullException("outputDirectory");
            }

            AVM.DDP.MetaTBManifest manifest = new AVM.DDP.MetaTBManifest();
            manifest.MakeManifest(expandedTestBenchType, outputDir);

            // design name fixture
            manifest.DesignName = designName;

            // test bench name fixture
            manifest.TestBench = testBenchName;

            manifest.CfgID = configurationName;

            manifest.Serialize(outputDir);

            this.UpdateResultsJson(expandedTestBenchType.Impl as MgaFCO, outputDir, analysisStartTime);
        }
예제 #7
0
        // META-2987
        private void GenerateCADParameterMapping(CyPhy.TestBenchType testBench, string outputDir, List <object> cadParamList)
        {
            foreach (var parameter in testBench.Children.ParameterCollection)
            {
                List <CyPhy.CADParameter>    vftFound   = new List <CyPhy.CADParameter>();
                List <CyPhy.ValueFlowTarget> vftVisited = new List <CyPhy.ValueFlowTarget>();

                FindValueFlowTargets(parameter,
                                     vftFound,
                                     vftVisited);

                foreach (var cadParam in vftFound)
                {
                    CyPhy2CAD_CSharp.TestBenchModel.TBCadParameterMapping cadParameterMapping = new TestBenchModel.TBCadParameterMapping(cadParam, parameter.Name);
                    if (!String.IsNullOrEmpty(cadParameterMapping.ComponentInstanceGUID))
                    {
                        cadParamList.Add(cadParameterMapping);
                    }
                }
            }

            if (cadParamList.Any())
            {
                string mappingFileContent = Newtonsoft.Json.JsonConvert.SerializeObject(cadParamList);
                File.WriteAllText(Path.Combine(outputDir, "CADParamTestBenchMapping.json"), mappingFileContent, new UTF8Encoding(false));
            }

            // generate testbench_manifest.json if it does not exist

            if (true /*!File.Exists(Path.Combine(outputDir, "testbench_manifest.json"))*/)
            {
                AVM.DDP.MetaTBManifest tbManifest = new AVM.DDP.MetaTBManifest();
                tbManifest.MakeManifest(testBench,
                                        outputDir);
                tbManifest.Serialize(outputDir);
            }
        }
예제 #8
0
        /// <summary>
        /// Call this function if a GME transaction is open.
        /// </summary>
        /// <param name="testBenchName"></param>
        /// <param name="interpreterOutputDir"></param>
        /// <param name="fco"></param>
        public void SaveSummaryReportJson(string interpreterOutputDir, MgaFCO fco)
        {
            // TODO: index result file!

            if (fco.Meta.Name == "TestBench")
            {
                CyPhy.TestBench tb = ISIS.GME.Dsml.CyPhyML.Classes.TestBench.Cast(fco as MgaObject);

                AVM.DDP.MetaTBManifest manifest = new AVM.DDP.MetaTBManifest();
                manifest.MakeManifest(tb, interpreterOutputDir);
                manifest.Serialize(interpreterOutputDir);
            }
            else if (fco.Meta.Name == "CADTestBench")
            {
                var tb = ISIS.GME.Dsml.CyPhyML.Classes.CADTestBench.Cast(fco as MgaObject);

                AVM.DDP.MetaTBManifest manifest = new AVM.DDP.MetaTBManifest();
                manifest.MakeManifest(tb, interpreterOutputDir);
                manifest.Serialize(interpreterOutputDir);
            }
        }
예제 #9
0
 /// <summary>
 /// Updates the execution steps in the test bench manifest file based on the Tasks and Execution tasks in the
 /// workflow.
 /// </summary>
 /// <returns>True if all Tasks were successfully added, false otherwise.</returns>
 public abstract bool UpdateTestBenchManifestExecutionSteps(AVM.DDP.MetaTBManifest manifest);
예제 #10
0
        public void SaveTestBenchManifest(string outputDirectory, CyPhy.TestBenchType testBenchType)
        {
            if (testBenchType == null)
            {
                throw new ArgumentNullException();
            }

            if (outputDirectory == null)
            {
                throw new ArgumentNullException();
            }

            AVM.DDP.MetaTBManifest manifest = new AVM.DDP.MetaTBManifest();
            manifest.MakeManifest(testBenchType, outputDirectory);
            manifest.Serialize(outputDirectory);
        }
예제 #11
0
        public bool SaveTestBenchManifest(string designName, string configurationName, CyPhy.TestBenchType expandedTestBenchType, string outputDir, CyPhy.TestBenchType origialTestBenchType, DateTime analysisStartTime)
        {
            if (expandedTestBenchType == null)
            {
                throw new ArgumentNullException("expandedTestBenchType");
            }

            if (outputDir == null)
            {
                throw new ArgumentNullException("outputDirectory");
            }

            if (origialTestBenchType == null)
            {
                expandedTestBenchType = origialTestBenchType;
            }

            try
            {
                AVM.DDP.MetaTBManifest manifest = new AVM.DDP.MetaTBManifest();
                manifest.MakeManifest(expandedTestBenchType, outputDir);

                // design name fixture
                manifest.DesignName = designName;

                // test bench name fixture
                manifest.TestBench = origialTestBenchType.Name;

                manifest.CfgID = configurationName;

                manifest.Serialize(outputDir);

                this.UpdateResultsJson(expandedTestBenchType.Impl as MgaFCO, outputDir);

                return true;
            }
            catch (Exception)
            {
                // TODO: log exception/store last exception
                return false;
            }
        }
예제 #12
0
        private static int ParseArgs(string[] args, out MfgBom.CostEstimation.CostEstimationRequest Request, out AVM.DDP.MetaTBManifest Manifest, out String pathResultsFolder)
        {
            Request           = null;
            Manifest          = null;
            pathResultsFolder = "";

            var pathManifest = args[0];

            if (false == File.Exists(pathManifest))
            {
                Console.Error.WriteLine("No file found at location: {0}",
                                        pathManifest);
                return(-2);
            }

            pathResultsFolder = Path.GetDirectoryName(pathManifest);
            Manifest          = AVM.DDP.MetaTBManifest.OpenForUpdate(pathResultsFolder);
            if (null == Manifest)
            {
                Console.Error.WriteLine("Manifest is empty or didn't load correctly: {0}",
                                        pathManifest);
                return(-3);
            }

            var artifactRequest = Manifest.Artifacts.FirstOrDefault(a => a.Tag == "CyPhy2MfgBom::CostEstimationRequest");

            if (null == artifactRequest)
            {
                Console.Error.WriteLine("Didn't find any artifacts in the manifest with the tag \"CyPhy2MfgBom::CostEstimationRequest\": {0}",
                                        pathManifest);
                return(-4);
            }

            var pathRequest = Path.Combine(pathResultsFolder,
                                           artifactRequest.Location);

            if (false == File.Exists(pathRequest))
            {
                Console.Error.WriteLine("Couldn't find the file tagged with \"CyPhy2MfgBom::CostEstimationRequest\" at given path: {0}",
                                        pathRequest);
                return(-5);
            }

            String jsonRequest;

            try
            {
                jsonRequest = File.ReadAllText(pathRequest);
                Request     = MfgBom.CostEstimation.CostEstimationRequest.Deserialize(jsonRequest);
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("Exception loading the cost estimation request at \"{0}\": {1}",
                                        pathRequest,
                                        ex);
                return(-6);
            }
            return(0);
        }
예제 #13
0
        // META-2987
        private void GenerateCADParameterMapping(CyPhy.TestBenchType testBench,
                                                 string outputDir)
        {
            List<CyPhy2CAD_CSharp.TestBenchModel.TBCadParameterMapping> cadParamList = new List<TestBenchModel.TBCadParameterMapping>();
            if (testBench.Children.ParameterCollection.Any())
            {
                foreach (var parameter in testBench.Children.ParameterCollection)
                {
                    List<CyPhy.CADParameter> vftFound = new List<CyPhy.CADParameter>();
                    List<CyPhy.ValueFlowTarget> vftVisited = new List<CyPhy.ValueFlowTarget>();
 
                    FindValueFlowTargets(parameter, 
                                         vftFound,
                                         vftVisited);

                    foreach (var cadParam in vftFound)
                    {
                        CyPhy2CAD_CSharp.TestBenchModel.TBCadParameterMapping cadParameterMapping = new TestBenchModel.TBCadParameterMapping(cadParam, parameter.Name);
                        if (!String.IsNullOrEmpty(cadParameterMapping.ComponentInstanceGUID))
                            cadParamList.Add(cadParameterMapping);
                    }
                }
            }

            if (cadParamList.Any())
            {
                string mappingFileContent = Newtonsoft.Json.JsonConvert.SerializeObject(cadParamList);
                using (StreamWriter writer = new StreamWriter(Path.Combine(outputDir, "CADParamTestBenchMapping.json")))
                {
                    writer.WriteLine(mappingFileContent);
                }
            }            

            // generate testbench_manifest.json if it does not exist
            
            if (true/*!File.Exists(Path.Combine(outputDir, "testbench_manifest.json"))*/)
            {
                AVM.DDP.MetaTBManifest tbManifest = new AVM.DDP.MetaTBManifest();
                tbManifest.MakeManifest(testBench,
                                        outputDir);
                tbManifest.Serialize(outputDir);
            }
            
        }
예제 #14
0
        public bool Generate(string originalDesignName)
        {
            var testBench = CyPhyClasses.TestBench.Cast(this.mainParameters.CurrentFCO);

            // generate new manifest file
            AVM.DDP.MetaTBManifest manifest = new AVM.DDP.MetaTBManifest();
            manifest.MakeManifest(testBench, this.mainParameters.OutputDirectory);
            if (string.IsNullOrWhiteSpace(originalDesignName) == false)
            {
                manifest.DesignName = originalDesignName;
            }
            else
            {
                this.Logger.WriteWarning("Could not find an original design. Manifest file will use the name of the test-bench, i.e. '{0}'.", testBench.Name);
            }

            manifest.Serialize(this.mainParameters.OutputDirectory);
            // create scripts directory
            string scriptDir = Path.Combine(this.mainParameters.OutputDirectory, "scripts");
            Directory.CreateDirectory(scriptDir);

            // create modelica libraries directory
            string modelicaDir = Path.Combine(this.mainParameters.OutputDirectory, "Libraries");
            Directory.CreateDirectory(modelicaDir);

            // get CyPhy directory
            string cyphyDir = Path.Combine(this.mainParameters.OutputDirectory, Modelica.CodeGenerator.MainPackage);

            // copy libraries into the output directory
            var settings = this.mainParameters.config as CyPhy2Modelica_v2Settings;

            foreach (var library in settings.IncludeDirectoryPath)
            {
                var sourcePath = library;
                if (Path.GetFileName(library) == "package.mo")
                {
                    sourcePath = Path.GetDirectoryName(library);
                }

                if (Path.IsPathRooted(sourcePath) == false)
                {
                    // Relative paths are defined relative to the project!
                    sourcePath = Path.Combine(this.mainParameters.ProjectDirectory, sourcePath);
                }

                // TODO: Move this to the Checker
                if ((File.Exists(sourcePath) || Directory.Exists(sourcePath)) == false)
                {
                    this.Logger.WriteError("External Modelica Library does not exist at {0}.", sourcePath);
                    continue;
                }

                var destinationPath = Path.Combine(modelicaDir, Path.GetFileName(sourcePath));
                if (sourcePath.EndsWith(".mo") == false)
                {
                    Directory.CreateDirectory(destinationPath);
                    // Create all of the directories
                    foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories))
                    {
                        if (dirPath.Split(Path.DirectorySeparatorChar)
                            .Where(dir => dir == ".svn" || dir == ".git").Count() > 0)
                        {
                            continue;
                        }

                        Directory.CreateDirectory(dirPath.Replace(sourcePath, destinationPath));
                    }

                    // Copy all the files
                    foreach (string newPath in Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories))
                    {
                        if (newPath.Split(Path.DirectorySeparatorChar)
                            .Where(dir => dir == ".svn" || dir == ".git").Count() > 0)
                        {
                            continue;
                        }

                        File.Copy(newPath, newPath.Replace(sourcePath, destinationPath), true);
                    }
                }
                else
                {
                    File.Copy(sourcePath, destinationPath, true);
                }

                this.Logger.WriteDebug("Copied library from {0} to {1}", sourcePath, destinationPath);
            }

            Templates.open_package_in_dymola dymola_open = new Templates.open_package_in_dymola();
            File.WriteAllText(Path.Combine(this.mainParameters.OutputDirectory, "open_in_dymola.cmd"), dymola_open.TransformText());

            Templates.open_package_in_om om_open = new Templates.open_package_in_om();
            File.WriteAllText(Path.Combine(this.mainParameters.OutputDirectory, "open_in_om.cmd"), om_open.TransformText());


            // generate scripts
            Templates.dymola_simulate dymola_sim = new Templates.dymola_simulate();
            File.WriteAllText(Path.Combine(this.mainParameters.OutputDirectory, "simulate_dymola.cmd"), dymola_sim.TransformText());

            Templates.om_simulate om_sim = new Templates.om_simulate();
            File.WriteAllText(Path.Combine(this.mainParameters.OutputDirectory, "simulate_om.cmd"), om_sim.TransformText());

            Templates.jmodelica_simulate jmodelica_sim = new Templates.jmodelica_simulate();
            File.WriteAllText(Path.Combine(this.mainParameters.OutputDirectory, "simulate_jmodelica.cmd"), jmodelica_sim.TransformText());

            var solver = new Modelica.SolverSettings(testBench.Children.SolverSettingsCollection.FirstOrDefault());

            if (solver.ToolSelection.Contains("OpenModelica"))
            {
                this.RunCommand = "simulate_om.cmd " + solver.ToolSelection;
            }
            else if (solver.ToolSelection.Contains("Dymola"))
            {
                this.RunCommand = "simulate_dymola.cmd " + solver.ToolSelection;
            }
            else if (solver.ToolSelection.Contains("JModelica"))
            {
                this.RunCommand = "simulate_jmodelica.cmd " + solver.ToolSelection;

                Templates.jmodelica_compile_py jmodelica_compile = new Templates.jmodelica_compile_py();
                File.WriteAllText(Path.Combine(scriptDir, "jmodelica_compile.py"), jmodelica_compile.TransformText());

                Templates.jmodelica_simulate_py jmodelica_simulate = new Templates.jmodelica_simulate_py();
                File.WriteAllText(Path.Combine(scriptDir, "jmodelica_simulate.py"), jmodelica_simulate.TransformText());
            }
            else
            {
                throw new NotSupportedException(solver.ToolSelection);
            }

            Templates.simulate_py simulate_py = new Templates.simulate_py();
            File.WriteAllText(Path.Combine(scriptDir, "simulate.py"), simulate_py.TransformText());

            //Templates.compile_and_run_jmodelica_py run_jmodelica = new Templates.compile_and_run_jmodelica_py();
            //File.WriteAllText(Path.Combine(scriptDir, "compile_and_run_jmodelica.py"), run_jmodelica.TransformText());

            this.CurrentModelConfig = this.GenerateModelConfig(Path.Combine(this.mainParameters.OutputDirectory, Modelica.CodeGenerator.MainPackage), testBench, settings.IncludeDirectoryPath);

            this.CopyOverPostProcessingScripts(Path.Combine(this.mainParameters.OutputDirectory, Modelica.CodeGenerator.MainPackage), testBench);

            this.LimitChecks(Path.Combine(this.mainParameters.OutputDirectory, Modelica.CodeGenerator.MainPackage), this.CurrentModelConfig.result_file);

            return true;
        }
예제 #15
0
        public bool Generate(string originalDesignName)
        {
            var testBench = CyPhyClasses.TestBench.Cast(this.mainParameters.CurrentFCO);

            // generate new manifest file
            AVM.DDP.MetaTBManifest manifest = new AVM.DDP.MetaTBManifest();
            manifest.MakeManifest(testBench, this.mainParameters.OutputDirectory);
            if (string.IsNullOrWhiteSpace(originalDesignName) == false)
            {
                manifest.DesignName = originalDesignName;
            }
            else
            {
                this.Logger.WriteWarning("Could not find an original design. Manifest file will use the name of the test-bench, i.e. '{0}'.", testBench.Name);
            }

            manifest.Serialize(this.mainParameters.OutputDirectory);
            // create scripts directory
            string scriptDir = Path.Combine(this.mainParameters.OutputDirectory, "scripts");

            Directory.CreateDirectory(scriptDir);

            // create modelica libraries directory
            string modelicaDir = Path.Combine(this.mainParameters.OutputDirectory, "Libraries");

            Directory.CreateDirectory(modelicaDir);

            // get CyPhy directory
            string cyphyDir = Path.Combine(this.mainParameters.OutputDirectory, Modelica.CodeGenerator.MainPackage);

            // copy libraries into the output directory
            var settings = this.mainParameters.config as CyPhy2Modelica_v2Settings;

            foreach (var library in settings.IncludeDirectoryPath)
            {
                var sourcePath = library;
                if (Path.GetFileName(library) == "package.mo")
                {
                    sourcePath = Path.GetDirectoryName(library);
                }

                if (Path.IsPathRooted(sourcePath) == false)
                {
                    // Relative paths are defined relative to the project!
                    sourcePath = Path.Combine(this.mainParameters.ProjectDirectory, sourcePath);
                }

                // TODO: Move this to the Checker
                if ((File.Exists(sourcePath) || Directory.Exists(sourcePath)) == false)
                {
                    this.Logger.WriteError("External Modelica Library does not exist at {0}.", sourcePath);
                    continue;
                }

                var destinationPath = Path.Combine(modelicaDir, Path.GetFileName(sourcePath));
                if (sourcePath.EndsWith(".mo") == false)
                {
                    Directory.CreateDirectory(destinationPath);
                    // Create all of the directories
                    foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories))
                    {
                        if (dirPath.Split(Path.DirectorySeparatorChar)
                            .Where(dir => dir == ".svn" || dir == ".git").Count() > 0)
                        {
                            continue;
                        }

                        Directory.CreateDirectory(dirPath.Replace(sourcePath, destinationPath));
                    }

                    // Copy all the files
                    foreach (string newPath in Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories))
                    {
                        if (newPath.Split(Path.DirectorySeparatorChar)
                            .Where(dir => dir == ".svn" || dir == ".git").Count() > 0)
                        {
                            continue;
                        }

                        File.Copy(newPath, newPath.Replace(sourcePath, destinationPath), true);
                    }
                }
                else
                {
                    File.Copy(sourcePath, destinationPath, true);
                }

                this.Logger.WriteDebug("Copied library from {0} to {1}", sourcePath, destinationPath);
            }

            Templates.open_package_in_dymola dymola_open = new Templates.open_package_in_dymola();
            File.WriteAllText(Path.Combine(this.mainParameters.OutputDirectory, "open_in_dymola.cmd"), dymola_open.TransformText());

            Templates.open_package_in_om om_open = new Templates.open_package_in_om();
            File.WriteAllText(Path.Combine(this.mainParameters.OutputDirectory, "open_in_om.cmd"), om_open.TransformText());


            // generate scripts
            File.WriteAllText(Path.Combine(this.mainParameters.OutputDirectory, "simulate_dymola.cmd"),
                              CyPhy2Modelica_v2.Properties.Resources._simulate_cmd.Replace("TOOL_TO_BE_REPLACED", "Dymola"));

            File.WriteAllText(Path.Combine(this.mainParameters.OutputDirectory, "simulate_om.cmd"),
                              CyPhy2Modelica_v2.Properties.Resources._simulate_cmd.Replace("TOOL_TO_BE_REPLACED", "OpenModelica"));

            File.WriteAllText(Path.Combine(this.mainParameters.OutputDirectory, "simulate_jmodelica.cmd"),
                              CyPhy2Modelica_v2.Properties.Resources._simulate_cmd.Replace("TOOL_TO_BE_REPLACED", "JModelica"));

            var solver = new Modelica.SolverSettings(testBench.Children.SolverSettingsCollection.FirstOrDefault());

            if (solver.ToolSelection.Contains("OpenModelica"))
            {
                this.RunCommand = "simulate_om.cmd";
            }
            else if (solver.ToolSelection.Contains("Dymola"))
            {
                this.RunCommand = "simulate_dymola.cmd";
            }
            else if (solver.ToolSelection.Contains("JModelica"))
            {
                this.RunCommand = "simulate_jmodelica.cmd";

                Templates.jmodelica_compile_py jmodelica_compile = new Templates.jmodelica_compile_py();
                File.WriteAllText(Path.Combine(scriptDir, "jmodelica_compile.py"), jmodelica_compile.TransformText());

                Templates.jmodelica_simulate_py jmodelica_simulate = new Templates.jmodelica_simulate_py();
                File.WriteAllText(Path.Combine(scriptDir, "jmodelica_simulate.py"), jmodelica_simulate.TransformText());
            }
            else
            {
                throw new NotSupportedException(solver.ToolSelection);
            }

            Templates.simulate_py simulate_py = new Templates.simulate_py();
            File.WriteAllText(Path.Combine(scriptDir, "simulate.py"), simulate_py.TransformText());

            //Templates.compile_and_run_jmodelica_py run_jmodelica = new Templates.compile_and_run_jmodelica_py();
            //File.WriteAllText(Path.Combine(scriptDir, "compile_and_run_jmodelica.py"), run_jmodelica.TransformText());

            this.CurrentModelConfig = this.GenerateModelConfig(Path.Combine(this.mainParameters.OutputDirectory, Modelica.CodeGenerator.MainPackage), testBench, settings.IncludeDirectoryPath);

            this.CopyOverPostProcessingScripts(Path.Combine(this.mainParameters.OutputDirectory, Modelica.CodeGenerator.MainPackage), testBench);

            this.LimitChecks(Path.Combine(this.mainParameters.OutputDirectory, Modelica.CodeGenerator.MainPackage), this.CurrentModelConfig.result_file);

            return(true);
        }
예제 #16
0
 public override bool UpdateTestBenchManifestExecutionSteps(AVM.DDP.MetaTBManifest manifest)
 {
     // FIXME: return fake true for now.
     return(true);
 }