From c5de2f8f5ed0c032a4b2eb8a5e01876d1c35a994 Mon Sep 17 00:00:00 2001 From: Banks Troutman Date: Thu, 26 Sep 2019 14:19:30 -0400 Subject: [PATCH] Updated Maven Deps to the new WPILib Artifactory, added AARCH64-Bionic support (Jetson) --- Main/pom.xml | 78 +++++++------------ .../main/java/com/chameleonvision/Main.java | 14 ++++ .../chameleonvision/vision/camera/Camera.java | 6 +- .../vision/camera/CameraManager.java | 1 - 4 files changed, 41 insertions(+), 58 deletions(-) diff --git a/Main/pom.xml b/Main/pom.xml index 78a85b50a..0e088f7c3 100644 --- a/Main/pom.xml +++ b/Main/pom.xml @@ -44,15 +44,15 @@ + + + + + WPI - WPI Maven repo - https://first.wpi.edu/FRC/roborio/maven/release - - - WPIArtifactory WPILib Artifactory Server-releases - https://frcmaven.wpi.edu:443/artifactory/release + https://frcmaven.wpi.edu:443/artifactory/development @@ -116,31 +116,37 @@ edu.wpi.first.cscore cscore-java - 2019.4.1 + 2019.4.1-176-ga5650b9 edu.wpi.first.cscore cscore-jni - 2019.4.1 - linuxathena + 2019.4.1-176-ga5650b9 + linuxaarch64bionic edu.wpi.first.cscore cscore-jni - 2019.4.1 + 2019.4.1-176-ga5650b9 linuxraspbian edu.wpi.first.cscore cscore-jni - 2019.4.1 + 2019.4.1-176-ga5650b9 linuxx86-64 edu.wpi.first.cscore cscore-jni - 2019.4.1 + 2019.4.1-176-ga5650b9 + osxx86-64 + + + edu.wpi.first.cscore + cscore-jni + 2019.4.1-176-ga5650b9 windowsx86-64 @@ -148,39 +154,39 @@ edu.wpi.first.cameraserver cameraserver-java - 2019.4.1 + 2019.4.1-176-ga5650b9 edu.wpi.first.ntcore ntcore-java - 2019.4.1 + 2019.4.1-176-ga5650b9 edu.wpi.first.ntcore ntcore-jni - 2019.4.1 - linuxathena + 2019.4.1-176-ga5650b9 + osxx86-64 edu.wpi.first.ntcore ntcore-jni - 2019.4.1 + 2019.4.1-176-ga5650b9 linuxraspbian edu.wpi.first.ntcore ntcore-jni - 2019.4.1 + 2019.4.1-176-ga5650b9 linuxx86-64 edu.wpi.first.ntcore ntcore-jni - 2019.4.1 + 2019.4.1-176-ga5650b9 windowsx86-64 @@ -188,11 +194,10 @@ edu.wpi.first.wpiutil wpiutil-java - 2019.4.1 + 2019.4.1-176-ga5650b9 - edu.wpi.first.thirdparty.frc2020.opencv opencv-java @@ -228,36 +233,5 @@ 3.4.7-1 windowsx86-64 - diff --git a/Main/src/main/java/com/chameleonvision/Main.java b/Main/src/main/java/com/chameleonvision/Main.java index 5f1ba3330..ea276512e 100644 --- a/Main/src/main/java/com/chameleonvision/Main.java +++ b/Main/src/main/java/com/chameleonvision/Main.java @@ -4,15 +4,29 @@ import com.chameleonvision.settings.SettingsManager; import com.chameleonvision.vision.camera.CameraManager; import com.chameleonvision.vision.process.VisionProcess; import com.chameleonvision.web.Server; +import edu.wpi.cscore.CameraServerCvJNI; +import edu.wpi.cscore.CameraServerJNI; import edu.wpi.first.networktables.NetworkTableInstance; +import java.io.IOException; + public class Main { public static void main(String[] args) { + // Attempt to load the JNI Libraries + try { + CameraServerJNI.forceLoad(); + CameraServerCvJNI.forceLoad(); + } catch (IOException e) { + var errorStr = SettingsManager.getCurrentPlatform().equals(SettingsManager.Platform.UNSUPPORTED) ? "Unsupported platform!" : "Failed to load JNI Libraries!"; + throw new RuntimeException(errorStr); + } + if (CameraManager.initializeCameras()) { SettingsManager.initialize(); for (var camSet : CameraManager.getAllCamerasByName().entrySet()) { new Thread(new VisionProcess(camSet.getValue())).start(); } + NetworkTableInstance.getDefault().startClientTeam(SettingsManager.GeneralSettings.team_number); // NetworkTableInstance.getDefault().startClient("localhost"); Server.main(8888); diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java b/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java index 709f07a18..fd9fd3105 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java @@ -36,8 +36,6 @@ public class Camera { private CamVideoMode camVideoMode; private int currentPipelineIndex; private HashMap pipelines; - private long initTimeout; - public Camera(String cameraName) { this(cameraName, DEFAULT_FOV); @@ -71,7 +69,7 @@ public class Camera { // set up video modes according to minimums if (SettingsManager.getCurrentPlatform() == SettingsManager.Platform.WINDOWS_64 && !UsbCam.isConnected()) { System.out.print("Waiting on camera... "); - initTimeout = System.nanoTime(); + long initTimeout = System.nanoTime(); while(!UsbCam.isConnected()) { //TODO add a time sleep, can wait only so long before giving up @@ -96,8 +94,6 @@ public class Camera { cvSink = cs.getVideo(UsbCam); cvSource = cs.putVideo(name, camVals.ImageWidth, camVals.ImageHeight); - var s = (MjpegServer) cs.getServer("serve_" + name); - CameraManager.CameraPorts.put(name, s.getPort()); } VideoMode[] getAvailableVideoModes() { diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/CameraManager.java b/Main/src/main/java/com/chameleonvision/vision/camera/CameraManager.java index 1ea46c803..03f1a8f53 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/CameraManager.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/CameraManager.java @@ -20,7 +20,6 @@ import java.util.List; public class CameraManager { private static final Path CamConfigPath = Paths.get(SettingsManager.SettingsPath.toString(), "Cams"); - public static HashMap CameraPorts = new HashMap<>(); private static HashMap AllCamerasByName = new HashMap<>();