diff --git a/photon-core/src/main/java/org/photonvision/raspi/PicamJNI.java b/photon-core/src/main/java/org/photonvision/raspi/PicamJNI.java index 94908de13..c96e32c89 100644 --- a/photon-core/src/main/java/org/photonvision/raspi/PicamJNI.java +++ b/photon-core/src/main/java/org/photonvision/raspi/PicamJNI.java @@ -85,7 +85,7 @@ public class PicamJNI { } public static boolean isSupported() { - return libraryLoaded && isVCSMSupported() && getSensorModel() != SensorModel.Disconnected; + return libraryLoaded && !isVCSMSupported() && getSensorModel() != SensorModel.Disconnected; } public static SensorModel getSensorModel() { diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/ZeroCopyPicamSource.java b/photon-core/src/main/java/org/photonvision/vision/camera/ZeroCopyPicamSource.java index 1b2443f3a..995ad8b58 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/ZeroCopyPicamSource.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/ZeroCopyPicamSource.java @@ -136,22 +136,22 @@ public class ZeroCopyPicamSource extends VisionSource { @Override public void setExposure(double exposure) { lastExposure = exposure; - var success = PicamJNI.setExposure((int) Math.round(exposure)); - if (!success) logger.warn("Couldn't set Pi camera exposure"); + var failure = PicamJNI.setExposure((int) Math.round(exposure)); + if (failure) logger.warn("Couldn't set Pi camera exposure"); } @Override public void setBrightness(int brightness) { lastBrightness = brightness; - var success = PicamJNI.setBrightness(brightness); - if (!success) logger.warn("Couldn't set Pi camera brightness"); + var failure = PicamJNI.setBrightness(brightness); + if (failure) logger.warn("Couldn't set Pi camera brightness"); } @Override public void setGain(int gain) { lastGain = gain; - var success = PicamJNI.setGain(gain); - if (!success) logger.warn("Couldn't set Pi camera gain"); + var failure = PicamJNI.setGain(gain); + if (failure) logger.warn("Couldn't set Pi camera gain"); } @Override @@ -162,12 +162,12 @@ public class ZeroCopyPicamSource extends VisionSource { @Override protected void setVideoModeInternal(VideoMode videoMode) { var mode = (FPSRatedVideoMode) videoMode; - var success = PicamJNI.destroyCamera(); - if (!success) + var failure = PicamJNI.destroyCamera(); + if (failure) throw new RuntimeException( "Couldn't destroy a zero copy Pi camera while switching video modes"); - success = PicamJNI.createCamera(mode.width, mode.height, mode.fpsActual); - if (!success) + failure = PicamJNI.createCamera(mode.width, mode.height, mode.fpsActual); + if (failure) throw new RuntimeException( "Couldn't create a zero copy Pi camera while switching video modes"); diff --git a/photon-core/src/main/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProvider.java b/photon-core/src/main/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProvider.java index d48491f54..8ce20cd79 100644 --- a/photon-core/src/main/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProvider.java +++ b/photon-core/src/main/java/org/photonvision/vision/frame/provider/AcceleratedPicamFrameProvider.java @@ -35,10 +35,10 @@ public class AcceleratedPicamFrameProvider implements FrameProvider { this.settables = visionSettables; var vidMode = settables.getCurrentVideoMode(); - var success = PicamJNI.createCamera(vidMode.width, vidMode.height, vidMode.fps); - if (!success) { - success = PicamJNI.destroyCamera(); - if (!success) throw new RuntimeException("Couldn't destroy Pi camera after init failure!"); + var failure = PicamJNI.createCamera(vidMode.width, vidMode.height, vidMode.fps); + if (failure) { + failure = PicamJNI.destroyCamera(); + if (failure) throw new RuntimeException("Couldn't destroy Pi camera after init failure!"); throw new RuntimeException( "Couldn't initialize zero copy Pi camera; check stdout for native code logs"); } diff --git a/photon-core/src/main/java/org/photonvision/vision/processes/VisionSourceManager.java b/photon-core/src/main/java/org/photonvision/vision/processes/VisionSourceManager.java index e812c56e8..8109f5821 100644 --- a/photon-core/src/main/java/org/photonvision/vision/processes/VisionSourceManager.java +++ b/photon-core/src/main/java/org/photonvision/vision/processes/VisionSourceManager.java @@ -302,6 +302,7 @@ public class VisionSourceManager { var cameraSources = new ArrayList(); for (var configuration : camConfigs) { if (configuration.baseName.startsWith("mmal service") && PicamJNI.isSupported()) { + configuration.cameraType = CameraType.ZeroCopyPicam; var piCamSrc = new ZeroCopyPicamSource(configuration); configuration.cameraType = CameraType.ZeroCopyPicam; diff --git a/photon-server/src/main/resources/nativelibraries/libpicam.so b/photon-server/src/main/resources/nativelibraries/libpicam.so index b76359bfe..426a29ec0 100755 Binary files a/photon-server/src/main/resources/nativelibraries/libpicam.so and b/photon-server/src/main/resources/nativelibraries/libpicam.so differ