int heartrate;String heartratesTimestamp;String macAddress;PrologEngineWrapper<?> engine = new JPLEngineWrapper();
context = new JtalisContextImpl(engine);
context.addEventTrigger("rule1/_");
context.registerOutputProvider(new myOutputProvider());
// Heart rate raises above 180
context.addDynamicRule("rule1(RATE,MAC) <- heartrate(RATE,MAC) where " + "(RATE > 180, MAC == 'AAAAAAAA11111111')");
context.registerOutputProvider(new DefaultOutputProvider() {
@Overridepublic void outputEvent(EtalisEvent event) {
String eventName = event.getName();String macAddress = event.getStringProperty(1);switch (eventName) {case "rule1":System.out.println("Message from " + macAddress + ": Heart rate is to high!");break;case "rule2":System.out.println("Message from " + macAddress + ": Heart rate is to low!");break;
}
}
});EtalisEvent event = new EtalisEvent("heartrate", heartrate.getHeartrate(), heartrate.getMacAddress());
event.setTimeStarts(DateConverter.convertISODateToTimestamp(heartrate.getHeartratesTimestamp(), 0));
event.setTimeEnds(DateConverter.convertISODateToTimestamp(heartrate.getHeartratesTimestamp(), 1));
context.pushEvent(event);