-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 CollectorExample1 {\r
-\r
- public static void main(String[] args) throws HistoryException, BindingException, AccessorException {\r
- \r
- /// Example1: Create History Manager & Item\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 History Item configuration\r
- String id = UUID.randomUUID().toString();\r
- HistoryItem historyItem = new HistoryItem(id, sampleFormat);\r
- \r
- // Create the item in the history\r
- history.create( historyItem );\r
- \r
- \r
- \r
- \r
-\r
- /// Example2: Prepare Collector\r
- Collector collector = History.createCollector(history, FlushPolicy.NoFlush);\r
- \r
- // Read item configuration data from history ( id and sampleFormat )\r
- Bean hi = history.getItem( id );\r
- \r
- // Create collector item\r
- HistoryAndCollectorItem ci = new HistoryAndCollectorItem();\r
- ci.readAvailableFields( hi ); // Read: id, sampleFormat\r
- ci.interval = 0.5;\r
- //ci.deadband = 10;\r
- ci.enabled = true;\r
- ci.gain = 10.0;\r
- ci.variableId = "MyItem";\r
- \r
- // Initialize Collector (Item)\r
- collector.addItem( ci );\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 \r
- collector.setValue("MyItem", Bindings.DOUBLE, myItemValue);\r
- \r
- // End collector step\r
- collector.endStep();\r
- }\r
- \r
- } finally {\r
- // Flush values\r
- collector.flush();\r
- collector.close();\r
- }\r
- \r
- \r
- \r
- /// Print results\r
- // Open stream from history\r
- StreamAccessor aa = history.openStream(id, "r");\r
- // Read sample type\r
- RecordType sampleType = (RecordType) aa.type().componentType;\r
- // Create bean binding\r
- RecordBinding sampleBinding = (RecordBinding) Bindings.getBeanBinding( sampleType );\r
- // Create sample object\r
- Bean sample = (Bean) sampleBinding.createPartial();\r
- \r
- try {\r
- for (int i=0; i<aa.size(); i++) {\r
- aa.get(i, sampleBinding, sample);\r
- System.out.println(i+": "+sample);\r
- }\r
- } finally {\r
- aa.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 CollectorExample1 {
+
+ public static void main(String[] args) throws HistoryException, BindingException, AccessorException {
+
+ /// Example1: Create History Manager & Item
+ // 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 History Item configuration
+ String id = UUID.randomUUID().toString();
+ HistoryItem historyItem = new HistoryItem(id, sampleFormat);
+
+ // Create the item in the history
+ history.create( historyItem );
+
+
+
+
+
+ /// Example2: Prepare Collector
+ Collector collector = History.createCollector(history, FlushPolicy.NoFlush);
+
+ // Read item configuration data from history ( id and sampleFormat )
+ Bean hi = history.getItem( id );
+
+ // Create collector item
+ HistoryAndCollectorItem ci = new HistoryAndCollectorItem();
+ ci.readAvailableFields( hi ); // Read: id, sampleFormat
+ ci.interval = 0.5;
+ //ci.deadband = 10;
+ ci.enabled = true;
+ ci.gain = 10.0;
+ ci.variableId = "MyItem";
+
+ // Initialize Collector (Item)
+ collector.addItem( ci );
+
+ 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
+ collector.setValue("MyItem", Bindings.DOUBLE, myItemValue);
+
+ // End collector step
+ collector.endStep();
+ }
+
+ } finally {
+ // Flush values
+ collector.flush();
+ collector.close();
+ }
+
+
+
+ /// Print results
+ // Open stream from history
+ StreamAccessor aa = history.openStream(id, "r");
+ // Read sample type
+ RecordType sampleType = (RecordType) aa.type().componentType;
+ // Create bean binding
+ RecordBinding sampleBinding = (RecordBinding) Bindings.getBeanBinding( sampleType );
+ // Create sample object
+ Bean sample = (Bean) sampleBinding.createPartial();
+
+ try {
+ for (int i=0; i<aa.size(); i++) {
+ aa.get(i, sampleBinding, sample);
+ System.out.println(i+": "+sample);
+ }
+ } finally {
+ aa.close();
+ }
+
+ }
+
+}