Skip to content
Snippets Groups Projects
Commit 91c8f60b authored by Hailong Zhu's avatar Hailong Zhu
Browse files

- updated eventFilter to support positionConditionCell.

parent a0db9dd0
No related branches found
No related tags found
No related merge requests found
...@@ -49,9 +49,9 @@ public class TestEventFilter { ...@@ -49,9 +49,9 @@ public class TestEventFilter {
events.put(tagNames.tagY,"2.456"); events.put(tagNames.tagY,"2.456");
events.put(tagNames.tagZ, "1"); events.put(tagNames.tagZ, "1");
events.put(tagNames.tagAccuracy,"0.15"); */ events.put(tagNames.tagAccuracy,"0.15"); */
testPoint3D.setX((float) 1.34); testPoint3D.setX((float) 3.34);
testPoint3D.setY((float) 2.456); testPoint3D.setY((float) 2.656);
testPoint3D.setZ((float) 1); testPoint3D.setZ((float) 2);
testPosition.setPoint(testPoint3D); testPosition.setPoint(testPoint3D);
testPlacing.setPosition(testPosition); testPlacing.setPosition(testPosition);
testLObject.setId("AGV001"); testLObject.setId("AGV001");
......
...@@ -5,6 +5,7 @@ import ipos.project.Functionality.eventfilter.Cell.Vector3; ...@@ -5,6 +5,7 @@ import ipos.project.Functionality.eventfilter.Cell.Vector3;
import ipos.project.DataModellntegration.iPos_Datamodel.*; import ipos.project.DataModellntegration.iPos_Datamodel.*;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.lang.Math;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -70,11 +71,14 @@ public class eventFilter { ...@@ -70,11 +71,14 @@ public class eventFilter {
return (float) Math.hypot(Math.hypot(dx, dy), dz); return (float) Math.hypot(Math.hypot(dx, dy), dz);
} }
private static boolean is_in_cell(Vector3 cod, Vector3 ref, Vector3 size, Quaternion rot){ private static boolean is_in_cell(Point3D cod, Float[] ref, Float[] size, Float[] rot){
cod.sub(ref); if ((Math.abs(cod.getX()-ref[0])<= size[0]/2) && (Math.abs(cod.getY()-ref[1])<= size[1]/2) && (Math.abs(cod.getZ()-ref[2])<= size[2]/2)) {
rot.toMatrix();
return true; return true;
} }
else {
return false;
}
}
public boolean process(PositionEvent event) throws ParseException { public boolean process(PositionEvent event) throws ParseException {
IPos_DatamodelFactory dataModelFactory = IPos_DatamodelFactory.eINSTANCE; IPos_DatamodelFactory dataModelFactory = IPos_DatamodelFactory.eINSTANCE;
...@@ -216,19 +220,21 @@ public class eventFilter { ...@@ -216,19 +220,21 @@ public class eventFilter {
System.out.println("Filter status (position_delta) " + ": " + flag); System.out.println("Filter status (position_delta) " + ": " + flag);
//filter positionCondition_cell condition //filter positionCondition_cell condition
/*if (filterStructure[8] && !flag) { if (filterStructure[8] && !flag) {
flag = true; //switch the filter status to block, if the event meet the filter condition, switch to pass flag = true; //switch the filter status to block, if the event meet the filter condition, switch to pass
Vector3 cod = new Vector3(Double.parseDouble(event.getPositionInfo().getPosition().getCoordinate().getX()),Double.parseDouble(event.getPositionInfo().getPosition().getCoordinate().getY()),Double.parseDouble(event.getPositionInfo().getPosition().getCoordinate().getZ())); if (event.getPlacing().getPosition() instanceof RelativePosition) {
for (int i = 0; i < positionCondition_cell.size(); i++) { RelativePosition rPosition = (RelativePosition) event.getPlacing().getPosition();
Vector3 ref = new Vector3(positionCondition_cell.get(i)[0][0], positionCondition_cell.get(i)[0][1], positionCondition_cell.get(i)[0][2]); for (int i = 0; i < positionConditionCell.size(); i++) {
Vector3 size = new Vector3(positionCondition_cell.get(i)[1][0], positionCondition_cell.get(i)[1][1], positionCondition_cell.get(i)[1][2]); if (rPosition.getPoint() instanceof Point3D) {
Quaternion rot = new Quaternion(positionCondition_cell.get(i)[2][0], positionCondition_cell.get(i)[2][1], positionCondition_cell.get(i)[2][2], positionCondition_cell.get(i)[2][3]); Point3D cod = (Point3D) rPosition.getPoint();
if (is_in_cell(cod, ref, size, rot)) { if (is_in_cell(cod, positionConditionCell.get(i)[0], positionConditionCell.get(i)[1], positionConditionCell.get(i)[2])) {
flag = false; flag = false;
} }
} }
} }
System.out.println("Filter status (positionCondition_cell) " + ": " + flag);*/ }
}
System.out.println("Filter status (positionCondition_cell) " + ": " + flag);
if (!flag) { if (!flag) {
......
...@@ -261,8 +261,9 @@ public class readConfig { ...@@ -261,8 +261,9 @@ public class readConfig {
System.out.println("\tsensor_id_condition : " + config.getSensorIdCondition()); System.out.println("\tsensor_id_condition : " + config.getSensorIdCondition());
System.out.println("\tid_condition : " + config.getIdCondition()); System.out.println("\tid_condition : " + config.getIdCondition());
System.out.println("\taccuracy_condition : " + config.getAccuracyCondition()); System.out.println("\taccuracy_condition : " + config.getAccuracyCondition());
System.out.println("\tposition_condition : " + config.getPositionCondition().get(0)[0] + ", " + config.getPositionCondition().get(0)[1] + ", " + config.getPositionCondition().get(0)[2] + ", " + config.getPositionCondition().get(0)[3]); //System.out.println("\tposition_condition : " + config.getPositionCondition().get(0)[0] + ", " + config.getPositionCondition().get(0)[1] + ", " + config.getPositionCondition().get(0)[2] + ", " + config.getPositionCondition().get(0)[3]);
System.out.println("\ttime_min_interval : " + config.getTimeMinInterval()); System.out.println("\ttime_min_interval : " + config.getTimeMinInterval());
System.out.println("\tposition_delta : " + config.getPositionDelta()); System.out.println("\tposition_delta : " + config.getPositionDelta());
System.out.println("\tfilter_structure : " + config.getFilterStructure());
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment