//ZeroOrderHold ctIncH = new ZeroOrderHold(ctInc, "Hold");
Integrator ctIncI = new Integrator(ctInc, "Integrator");
//ctIncI.addDebugListener(dbl);
ZeroCrossingDetector ctIncD = new ZeroCrossingDetector(ctInc, "ZD");
//ctIncD.addDebugListener(dbl);
Expression ctIncGF = new Expression(ctInc, "EXPRESSION");
TypedIOPort ctIncGFi = (TypedIOPort) ctIncGF.newPort("in");
ctIncGFi.setInput(true);
ctIncGFi.setTypeEquals(BaseType.DOUBLE);
ctIncGF.output.setTypeEquals(BaseType.DOUBLE);
ctIncGF.expression.setExpression("in - 0.2");
// the ports
TypedIOPort ctIncIn = (TypedIOPort) ctInc.newPort("input");
ctIncIn.setInput(true);
ctIncIn.setTypeEquals(BaseType.DOUBLE);
TypedIOPort ctIncOut = (TypedIOPort) ctInc.newPort("output");
ctIncOut.setOutput(true);
ctIncOut.setTypeEquals(BaseType.DOUBLE);
TypedIOPort ctIncSt = (TypedIOPort) ctInc.newPort("state");
ctIncSt.setOutput(true);
ctIncSt.setTypeEquals(BaseType.DOUBLE);
TypedIOPort ctIncTr = (TypedIOPort) ctInc.newPort("trig");
ctIncTr.setOutput(true);
ctIncTr.setTypeEquals(BaseType.DOUBLE);
// connect ctInc
//ctInc.connect(ctIncIn, ctIncH.input);
//ctInc.connect(ctIncH.output, ctIncI.input);
ctInc.connect(ctIncIn, ctIncI.input);
Relation ctIncR2 = ctInc.newRelation("R2");
ctIncGF.output.link(ctIncR2);
ctIncD.trigger.link(ctIncR2);
ctIncTr.link(ctIncR2);
ctInc.connect(ctIncD.output, ctIncOut);
//ctInc.connect(ctIncS.output, ctIncSt);
TypedIORelation ctIncR1 = (TypedIORelation) ctInc
.newRelation("CTIncR1");
ctIncI.output.link(ctIncR1);
//ctIncS.input.link(ctIncR1);
ctIncGFi.link(ctIncR1);
ctIncSt.link(ctIncR1);
CTEmbeddedDirector ctIncDir = new CTEmbeddedDirector(ctInc, "CTIncDir");
//ctIncDir.addDebugListener(dbl);
CTCompositeActor ctDec = new CTCompositeActor(hs, "Decreasing");
//ctDec.addDebugListener(dbl);
//ZeroOrderHold ctDecH = new ZeroOrderHold(ctDec, "Hold");
Integrator ctDecI = new Integrator(ctDec, "Integrator");
Scale ctGain = new Scale(ctDec, "Gain");
ZeroCrossingDetector ctDecD = new ZeroCrossingDetector(ctDec, "ZD");
Expression ctDecGF = new Expression(ctDec, "EXPRESSION");
TypedIOPort ctDecGFi = (TypedIOPort) ctDecGF.newPort("in");
ctDecGFi.setInput(true);
ctDecGFi.setTypeEquals(BaseType.DOUBLE);