Skip to content
Snippets Groups Projects
Commit 8853a958 authored by FrankR's avatar FrankR
Browse files

Aktueller Stand

parent 39392a52
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,7 @@ package ipos.project.DataModellntegration.SimpleSceneIntegration;
import ipos.models.SimpleScene.IposPosition;
import ipos.project.DataModellntegration.SimpleSceneIntegration.service.impl.ExternalPubServiceImpl;
import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
import ipos.project.mapper.ProtoJsonMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -14,15 +15,30 @@ public class SimpleSceneIntegration {
private final Logger LOG = LoggerFactory.getLogger(getClass());
@Autowired
private ExternalPubServiceImpl mqttService;
private static ExternalPubServiceImpl mqttService;
/*
@JmsListener(destination = "/positions", containerFactory = "jmsListenFactory")
public void receiveMessage(IposPosition pos) {
public static void receiveMessage(IposPosition pos) {
LOG.trace("Data integration get: " + pos);
// we can translate a class into a string using several methods: 1) `.toString()` 2) `JsonFormat` in `ProtoJsonMap`
String jsonPos = ProtoJsonMap.toJson(pos);
if (jsonPos != null) {
this.mqttService.publish("test51/subscribe/positions", jsonPos, 0, false);
}
}*/
public static void receiveMessage(PositionEvent positionEvent) {
// LOG.trace("Data integration get: " + pos);
System.out.println("SimpleSceneIntegration: Data integration get: " + positionEvent);
// we can translate a class into a string using several methods: 1) `.toString()` 2) `JsonFormat` in `ProtoJsonMap`
//String jsonPos = ProtoJsonMap.toJson(positionEvent);
// TODO: Transform Internal-PositionEvent to Protobuf-SensorPositionEvent
if (positionEvent != null) {
mqttService.publish("usertopic/SensorPositionEvent", positionEvent.toString(), 0, false);
}else{
System.out.println("Warning: SimpleScene: Received empty PositionEvent");
}
}
}
......@@ -6,6 +6,7 @@ import ipos.models.SimpleScene.IposPosition;
import ipos.models.GenericSensor.SensorEventWrapper;
import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
import ipos.project.SensorValueIntegration.Service.GenericSensorTransformer;
import ipos.project.UseCaseController.PositionMonitoring;
import ipos.project.config.mqtt.Handler;
import ipos.project.config.mqtt.MqttListener;
import ipos.project.mapper.ProtoJsonMap;
......@@ -41,7 +42,8 @@ public class MqttPositionHandler implements Handler {
System.out.println("Transformed Protobuf-SensorPositionEvent into Internal-PositionEvent: " + positionEvent.toString() + ", " + positionEvent.getPlacing().getPosition().getPoint().toString() + ", " + positionEvent.getPlacing().getOrientation().toString());
// ggf. anstatt JMS einfach den PositionMonitoringController per Funktionsaufruf aufrufen
this.jmsTemplate.convertAndSend("/PositionEvent", protoSensPosEvent); // submit position to the internal broker
PositionMonitoring.receiveMessage(positionEvent);
// this.jmsTemplate.convertAndSend("/PositionEvent", protoSensPosEvent); // submit position to the internal broker
//TODO: fix message converter for the internal broker
} catch (InvalidProtocolBufferException e) {
LOG.error("Invalid mqtt message:", e);
......
package ipos.project.UseCaseController;
import ipos.project.DataModellntegration.SimpleSceneIntegration.SimpleSceneIntegration;
import ipos.project.DataModellntegration.iPos_Datamodel.*;
import ipos.project.Functionality.eventfilter.eventFilter;
import ipos.project.Functionality.eventfilter.readConfig;
......@@ -19,7 +20,7 @@ public class PositionMonitoring {
private final Logger LOG = LoggerFactory.getLogger(getClass());
public WorldModel wm;
List<eventFilter> eventFilters = new ArrayList<eventFilter>();
private static List<eventFilter> eventFilters = new ArrayList<eventFilter>();
private IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
public PositionMonitoring(){
......@@ -137,9 +138,15 @@ public class PositionMonitoring {
eventFilters.add(filter);
}
@JmsListener(destination = "/PositionEvent", containerFactory = "jmsListenFactory")
public void receiveMessage(PositionEvent posEvent) {
LOG.info("Received <" + posEvent + ">");
// @JmsListener(destination = "/PositionEvent", containerFactory = "jmsListenFactory")
public static void receiveMessage(PositionEvent posEvent) {
// LOG.info("Received <" + posEvent + ">");
System.out.println("MonitoringController: Received <" + posEvent.toString() + ">");
eventFilter filterWindow = new eventFilter("Human_at_Window_Side");
eventFilter filterDoor = new eventFilter("Human_at_Door_Side");
SimpleSceneIntegration.receiveMessage(posEvent);
/*
for (eventFilter eFilter : eventFilters){
try {
if(eFilter.process(posEvent)){
......@@ -151,5 +158,6 @@ public class PositionMonitoring {
e.printStackTrace();
}
}
*/
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment