package com.thingworx.analytics.demo; import java.util.Iterator; import java.util.function.Consumer; import com.coldlight.cybertron.timeseries.streaming.TimedValue; import com.thingworx.analytics.thingwatcher.DurationUnit; import com.thingworx.analytics.thingwatcher.ThingState; import com.thingworx.analytics.thingwatcher.ThingWatcher; import com.thingworx.analytics.thingwatcher.ThingWatcherBuilder; import com.thingworx.analytics.thingwatcher.ThingWatcherState; import com.thingworx.analytics.thingwatcher.errorhandling.ThingWatcherMessage; import com.thingworx.analytics.thingwatcher.exceptions.ThingWatcherConfigurationException; public class ThingWatcherDemo { public static void main(String[] args) { demo(); } public static void demo() { Consumer myConsumerInstance = new Consumer() { boolean c = false; int f = 0; @Override public void accept(ThingState t) { // TODO Auto-generated method stub if (t.getThingWatcherState() == ThingWatcherState.CALIBRATING) { if (!c) { System.out.println("CALIBRATING"); c = true; } } else if (t.getThingWatcherState() == ThingWatcherState.MONITORING) { boolean anomalousValue = t.isAnomalousValue(); System.out.println("Value " + t.toExtendedString()); System.out.println("MONITORING1"); System.out.println("Is isAnomalousValue " + anomalousValue); System.out.println("ThingWatcherStat " + t.getThingWatcherState()); } else { if (f<2) { boolean anomalousValue = t.isAnomalousValue(); t.toExtendedString() ; System.out.println("Is isAnomalousValue2 " + anomalousValue); System.out.println("ThingWatcherStat2 " + t.getThingWatcherState()); f =f+ 1; } else if(f==2) { //System.exit(1); } } } }; try { ThingWatcher thingwatcher = new ThingWatcherBuilder().certainty(95.4).thingID("MyPropertyName1") .consumer(myConsumerInstance).minimumDataCollectionTime(5) .minimumDataCollectionTimeUnit(DurationUnit.SECOND)// .trainingBaseURI("http://10.140.55.245:9090/training")// Ö¸µ½trainingservices // .validationSet(validationSet); .getThingWatcher(); long now = 0; double value = 0; int duration = 100; for (int i = 0; i < 10000; i++) { now += duration; if (i > 9000 && i < 9900) { value = Math.incrementExact(i); } else { value = Math.sin(i); } TimedValue timedValue = new TimedValue(now, value); thingwatcher.monitor(timedValue); try { Thread.sleep(100); } catch (final InterruptedException e) { e.printStackTrace(); } } } catch (ThingWatcherConfigurationException e) { e.printStackTrace(); } } }