]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.simulation/tests/org/simantics/simulation/test/TestPseudoSolver.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.simulation / tests / org / simantics / simulation / test / TestPseudoSolver.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007 VTT Technical Research Centre of Finland and others.\r
3  * All rights reserved. This program and the accompanying materials\r
4  * are made available under the terms of the Eclipse Public License v1.0\r
5  * which accompanies this distribution, and is available at\r
6  * http://www.eclipse.org/legal/epl-v10.html\r
7  *\r
8  * Contributors:\r
9  *     VTT Technical Research Centre of Finland - initial API and implementation\r
10  *******************************************************************************/\r
11 package org.simantics.simulation.test;\r
12 \r
13 import java.util.Formatter;\r
14 import java.util.concurrent.Executor;\r
15 \r
16 import org.simantics.databoard.Bindings;\r
17 import org.simantics.databoard.accessor.error.AccessorException;\r
18 import org.simantics.simulation.data.Datasource;\r
19 import org.simantics.simulation.data.PseudoSolver;\r
20 import org.simantics.simulation.data.Datasource.DatasourceListener;\r
21 import org.simantics.simulation.data.VariableHandle;\r
22 \r
23 public class TestPseudoSolver {\r
24         \r
25         public static void main(String[] args) throws InterruptedException {\r
26                 \r
27                 PseudoSolver solver = new PseudoSolver();\r
28                 solver.addListener( new DatasourceListener() {\r
29                         @Override\r
30                         public void onStep(Datasource source) {\r
31                                 StringBuilder sb = new StringBuilder();\r
32                                 Formatter f = new Formatter(sb);\r
33                                 \r
34                                 VariableHandle sineHandle = source.openHandle(null, PseudoSolver.SINE, Bindings.DOUBLE);\r
35                                 VariableHandle rampHandle = source.openHandle(null, PseudoSolver.RAMP, Bindings.DOUBLE);\r
36                                 \r
37                                 double time = (Double) source.getTime(Bindings.DOUBLE);\r
38                                 try {\r
39                                         double sine = (Double) sineHandle.getValue();\r
40                                         double ramp = (Double) rampHandle.getValue();\r
41                                         f.format("%3f: sine=%,5f, ramp=%,5f\n", time, sine, ramp);\r
42                                         System.out.print(sb);\r
43                                 } catch (AccessorException e) {\r
44                                         e.printStackTrace();\r
45                                 }\r
46                         }\r
47 \r
48                         @Override\r
49                         public Executor getExecutor() {\r
50                                 return null;\r
51                         }\r
52                 } );\r
53                 solver.start();\r
54                 \r
55                 Thread.sleep(10*1000L);\r
56                 solver.stop();\r
57         }\r
58 \r
59 }\r
60 \r