isight5 二次开发之 Application (3) 之山寨 Simcode 组件

上一篇主要介绍如何创建 Optimization + Calculator 组件构成的简单模型。很多时候,isight 需要整合第三方的程序,一个通用的方法就是调用外部命令。


这里将介绍如何创建 Optimization + DataExchanger + OSCommand 组件的模型,如下图所示:


isight5 二次开发之 Application (3) 之山寨 Simcode 组件_第1张图片

添加组件的代码不必多说,isight自带文档的错误百出也可以不提,看看需要注意的几点:


1 设置 OSCommand 组件的参数

        ComponentAPI cmdAPI = cmd.getAPI();
        cmdAPI.set("type", "Command");
        cmdAPI.set("Command", "/path/to/cmd");
        cmdAPI.set("commandargs", "args");
        cmdAPI.apply();

2 设置 DataExchanger 参数


Datex 组件只有一个属性可以设置


set("program", pgm);

这里 pgm 需要按固定的格式写 Java 代码片段,将文件中的字符串写入变量或相反的过程。


        //
        ComponentAPI inAPI = in.getAPI();
        String pgm1 = "// DATA EXCHANGE PROGRAM - DO NOT EDIT THIS COMMENT\n";
        pgm1 += "// parameter \"x\" as x\n";
        pgm1 += "// parameter \"sample_Tmpl\" as sample_Tmpl\n";
        pgm1 += "//END COMMENT\n";
        pgm1 += "sample2 = new Partitioner(Tool.RANDOM, new FileExchanger(C_, sample_Tmpl, sample_Tmpl), null);\n";
        pgm1 += "sample2.line(6).write(x);\n";
        inAPI.set("program", pgm1);
        inAPI.apply();

        ComponentAPI outAPI = out.getAPI();
        String pgm2 = "// DATA EXCHANGE PROGRAM - DO NOT EDIT THIS COMMENT\n";
        pgm2 += "// parameter \"x\" as x\n";
        pgm2 += "// parameter \"output_dat\" as output_dat\n";
        pgm2 += "//END COMMENT\n";
        pgm2 += "out = new Partitioner(Tool.RANDOM, new FileExchanger(C_, output_dat), null);\n";
        pgm2 += "out.line(6).read(x);\n";
        outAPI.set("program", pgm2);
        outAPI.apply();



你可能感兴趣的:(command,application,Exchange,output,optimization)