上一篇主要介绍如何创建 Optimization + Calculator 组件构成的简单模型。很多时候,isight 需要整合第三方的程序,一个通用的方法就是调用外部命令。
这里将介绍如何创建 Optimization + DataExchanger + OSCommand 组件的模型,如下图所示:
添加组件的代码不必多说,isight自带文档的错误百出也可以不提,看看需要注意的几点:
1 设置 OSCommand 组件的参数
ComponentAPI cmdAPI = cmd.getAPI(); cmdAPI.set("type", "Command"); cmdAPI.set("Command", "/path/to/cmd"); cmdAPI.set("commandargs", "args"); cmdAPI.apply();
Datex 组件只有一个属性可以设置
set("program", pgm);
// 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();