diff --git a/.gitignore b/.gitignore index b8c043901..e1a08cb49 100644 --- a/.gitignore +++ b/.gitignore @@ -109,3 +109,5 @@ Main/.gradle Main/target New client/chameleon-client/node_modules/ +Main/dependency-reduced-pom.xml +Main/src/main/java/META-INF diff --git a/Main/pom.xml b/Main/pom.xml index 28ce24dd4..ddd5d8379 100644 --- a/Main/pom.xml +++ b/Main/pom.xml @@ -17,6 +17,19 @@ 12 + + org.apache.maven.plugins + maven-shade-plugin + 3.2.1 + + + package + + shade + + + + diff --git a/Main/src/main/java/com/chameleonvision/settings/NetworkSettings.java b/Main/src/main/java/com/chameleonvision/settings/NetworkSettings.java index b13761b7f..1aa3f1c44 100644 --- a/Main/src/main/java/com/chameleonvision/settings/NetworkSettings.java +++ b/Main/src/main/java/com/chameleonvision/settings/NetworkSettings.java @@ -24,13 +24,17 @@ public class NetworkSettings { } executeCommand("hostnamectl set-hostname " + this.hostname); } - //TODO add windows networking commands - -// else -// if (SystemUtils.IS_OS_WINDOWS) -// { -// executeCommand("cmd /c COMMAND HERE"); -// } + //TODO check windows commands + else if (SystemUtils.IS_OS_WINDOWS) { + if (!adapter.equals("")) { + if (connectionType.equals("DHCP")) + executeCommand("cmd /c interface ip set address \"" + adapter + "\" dhcp"); + else if (connectionType.equals("Static")) { + executeCommand("cmd /c netsh interface ip set address \"" + adapter + "\" static " + this.ip + " " + this.netmask + " " + this.gateway + "1"); + } + } + //TODO find a way to change hostname in windows + } } private void executeCommand(String command) { @@ -51,7 +55,7 @@ public class NetworkSettings { Enumeration ee = netint.getInetAddresses(); for (InetAddress addr : Collections.list(ee)) if (addr instanceof Inet4Address) - if ((addr.getAddress()[0] & 0xFF) == 10 && (addr.getAddress()[1] & 0xFF) == SettingsManager.GeneralSettings.team_number) { + if ((addr.getAddress()[0] & 0xFF) == 10 && (addr.getAddress()[1] & 0xFF) == SettingsManager.GeneralSettings.team_number) { System.out.println("found robot network interface at " + netint.getName() + " ip: " + addr.getHostAddress()); return netint.getName(); } diff --git a/Main/src/main/java/com/chameleonvision/vision/process/CVProcess.java b/Main/src/main/java/com/chameleonvision/vision/process/CVProcess.java index 6cbe4af36..8a25c2db2 100644 --- a/Main/src/main/java/com/chameleonvision/vision/process/CVProcess.java +++ b/Main/src/main/java/com/chameleonvision/vision/process/CVProcess.java @@ -53,29 +53,33 @@ public class CVProcess { return FoundContours; } - List FilterContours(List InputContours, List area, List ratio, List extent) { - for (MatOfPoint Contour : InputContours) { - try { - var contourArea = Imgproc.contourArea(Contour); - double targetArea = FastMath.round((contourArea / CamVals.ImageArea) * 100); - if (targetArea <= area.get(0) || targetArea >= area.get(1)) { - continue; - } - var rect = Imgproc.minAreaRect(new MatOfPoint2f(Contour.toArray())); - var targetFullness = (contourArea / rect.size.area()) * 100; - if (targetFullness <= extent.get(0) || targetArea >= extent.get(1)) { - continue; - } - var aspectRatio = rect.size.width / rect.size.height; - if (aspectRatio <= ratio.get(0) || aspectRatio >= ratio.get(1)) { - continue; - } - FilteredContours.add(Contour); - } catch (Exception ignored) { - } - } - return FilteredContours; - } + List FilterContours(List InputContours, List area, List ratio, List extent) { + for (MatOfPoint Contour : InputContours){ + try{ + var contourArea = Imgproc.contourArea(Contour);//TODO change scaling + int targetArea = (int) ((((float) contourArea) / CamVals.ImageArea) * 100); + if (targetArea < area.get(0) || targetArea > area.get(1)){ + continue; + } + var rect = Imgproc.minAreaRect(new MatOfPoint2f(Contour.toArray())); + var targetFullness = (contourArea / rect.size.area()) * 100; + if (targetFullness < extent.get(0) || targetArea > extent.get(1)){ + continue; + } + double aspectRatio = rect.size.width / rect.size.height;//TODO i think aspectRatio is inverted + if (aspectRatio < ratio.get(0) || aspectRatio > ratio.get(1)){ + continue; + } + FilteredContours.add(Contour); + } + catch (Exception e) + { + System.err.println("Error while filtering contours"); + e.printStackTrace(); + } + } + return FilteredContours; + } private double calcDistance(RotatedRect rect) { return FastMath.sqrt(FastMath.pow(CamVals.CenterX - rect.center.x, 2) + FastMath.pow(CamVals.CenterY - rect.center.y, 2)); diff --git a/chameleon-client/src/components/Vision.vue b/chameleon-client/src/components/Vision.vue index b61e10c7a..e156e2967 100644 --- a/chameleon-client/src/components/Vision.vue +++ b/chameleon-client/src/components/Vision.vue @@ -6,7 +6,7 @@ - + diff --git a/chameleon-client/src/components/contourTab.vue b/chameleon-client/src/components/contourTab.vue index d9c63b1ae..737736c2d 100644 --- a/chameleon-client/src/components/contourTab.vue +++ b/chameleon-client/src/components/contourTab.vue @@ -5,7 +5,7 @@ -