-package org.simantics.history.examples;\r
-\r
-import java.util.UUID;\r
-\r
-import org.simantics.databoard.Bindings;\r
-import org.simantics.databoard.Datatypes;\r
-import org.simantics.databoard.accessor.StreamAccessor;\r
-import org.simantics.databoard.accessor.error.AccessorException;\r
-import org.simantics.databoard.binding.RecordBinding;\r
-import org.simantics.databoard.binding.error.BindingException;\r
-import org.simantics.databoard.type.RecordType;\r
-import org.simantics.databoard.util.Bean;\r
-import org.simantics.history.Collector;\r
-import org.simantics.history.History;\r
-import org.simantics.history.HistoryAndCollectorItem;\r
-import org.simantics.history.HistoryException;\r
-import org.simantics.history.HistoryItem;\r
-import org.simantics.history.HistoryManager;\r
-import org.simantics.history.impl.FlushPolicy;\r
-\r
-public class CollectorExample2 {\r
-\r
- public static void main(String[] args) throws HistoryException, BindingException, AccessorException {\r
- \r
- /// Example2: Record variable "MyVariable" to two history \r
- /// items "MyVariable-interval=0.5" and "MyVariable-deadband=5"\r
- \r
- // Create History Manager\r
- HistoryManager history = History.createMemoryHistory();\r
- \r
- // Create a sample format\r
- RecordType sampleFormat = new RecordType();\r
- sampleFormat.addComponent("time", Datatypes.DOUBLE );\r
- sampleFormat.addComponent("value", Datatypes.DOUBLE );\r
- sampleFormat.addComponent("quality", Datatypes.BYTE );\r
- \r
- // Create two History Item and Collector Item configurations\r
- HistoryAndCollectorItem i1 = new HistoryAndCollectorItem();\r
- i1.id = "MyVariable-interval=0.5";\r
- i1.format = sampleFormat;\r
- i1.interval = 0.5;\r
- i1.variableId = "MyVariable";\r
- \r
- HistoryAndCollectorItem i2 = new HistoryAndCollectorItem();\r
- i2.id = "MyVariable-deadband=5";\r
- i2.format = sampleFormat;\r
- i2.deadband = 5.0;\r
- i2.variableId = "MyVariable";\r
-\r
- // Create the item in the history\r
- history.create( i1, i2 );\r
-\r
- /// Prepare Collector\r
- Collector collector = History.createCollector(history, FlushPolicy.NoFlush);\r
- \r
- // Initialize Collector (Items)\r
- collector.addItem( i1 );\r
- collector.addItem( i2 );\r
- \r
- try {\r
- // Simulate 100 steps\r
- for ( int i = 0; i<100; i++ ) {\r
- \r
- // Our "simulation" results \r
- double time = i * 0.1;\r
- double myItemValue = -20 + i*0.1;\r
- \r
- // Begin collector writing step\r
- collector.beginStep(Bindings.DOUBLE, time);\r
- \r
- // Enter values for one variable. \r
- collector.setValue("MyVariable", Bindings.DOUBLE, myItemValue);\r
- \r
- // End collector step - MyVariable is written to two HistoryItems\r
- collector.endStep();\r
- }\r
- \r
- } finally {\r
- // Flush values\r
- collector.flush();\r
- collector.close();\r
- }\r
- \r
- }\r
-\r
-}\r
+package org.simantics.history.examples;
+
+import java.util.UUID;
+
+import org.simantics.databoard.Bindings;
+import org.simantics.databoard.Datatypes;
+import org.simantics.databoard.accessor.StreamAccessor;
+import org.simantics.databoard.accessor.error.AccessorException;
+import org.simantics.databoard.binding.RecordBinding;
+import org.simantics.databoard.binding.error.BindingException;
+import org.simantics.databoard.type.RecordType;
+import org.simantics.databoard.util.Bean;
+import org.simantics.history.Collector;
+import org.simantics.history.History;
+import org.simantics.history.HistoryAndCollectorItem;
+import org.simantics.history.HistoryException;
+import org.simantics.history.HistoryItem;
+import org.simantics.history.HistoryManager;
+import org.simantics.history.impl.FlushPolicy;
+
+public class CollectorExample2 {
+
+ public static void main(String[] args) throws HistoryException, BindingException, AccessorException {
+
+ /// Example2: Record variable "MyVariable" to two history
+ /// items "MyVariable-interval=0.5" and "MyVariable-deadband=5"
+
+ // Create History Manager
+ HistoryManager history = History.createMemoryHistory();
+
+ // Create a sample format
+ RecordType sampleFormat = new RecordType();
+ sampleFormat.addComponent("time", Datatypes.DOUBLE );
+ sampleFormat.addComponent("value", Datatypes.DOUBLE );
+ sampleFormat.addComponent("quality", Datatypes.BYTE );
+
+ // Create two History Item and Collector Item configurations
+ HistoryAndCollectorItem i1 = new HistoryAndCollectorItem();
+ i1.id = "MyVariable-interval=0.5";
+ i1.format = sampleFormat;
+ i1.interval = 0.5;
+ i1.variableId = "MyVariable";
+
+ HistoryAndCollectorItem i2 = new HistoryAndCollectorItem();
+ i2.id = "MyVariable-deadband=5";
+ i2.format = sampleFormat;
+ i2.deadband = 5.0;
+ i2.variableId = "MyVariable";
+
+ // Create the item in the history
+ history.create( i1, i2 );
+
+ /// Prepare Collector
+ Collector collector = History.createCollector(history, FlushPolicy.NoFlush);
+
+ // Initialize Collector (Items)
+ collector.addItem( i1 );
+ collector.addItem( i2 );
+
+ try {
+ // Simulate 100 steps
+ for ( int i = 0; i<100; i++ ) {
+
+ // Our "simulation" results
+ double time = i * 0.1;
+ double myItemValue = -20 + i*0.1;
+
+ // Begin collector writing step
+ collector.beginStep(Bindings.DOUBLE, time);
+
+ // Enter values for one variable.
+ collector.setValue("MyVariable", Bindings.DOUBLE, myItemValue);
+
+ // End collector step - MyVariable is written to two HistoryItems
+ collector.endStep();
+ }
+
+ } finally {
+ // Flush values
+ collector.flush();
+ collector.close();
+ }
+
+ }
+
+}