UI now partially running, but errors still getting thrown

This commit is contained in:
Banks Troutman
2019-11-23 20:02:21 -05:00
parent bca207fc3f
commit d6e435a124
7 changed files with 98 additions and 61 deletions

View File

@@ -3,6 +3,7 @@ package com.chameleonvision.vision.camera;
import com.chameleonvision.vision.enums.StreamDivisor;
import com.chameleonvision.web.ServerHandler;
import edu.wpi.cscore.CvSource;
import edu.wpi.cscore.MjpegServer;
import edu.wpi.cscore.VideoMode;
import edu.wpi.first.cameraserver.CameraServer;
import org.opencv.core.CvType;
@@ -22,10 +23,10 @@ public class CameraStreamer {
this.cvSource = CameraServer.getInstance().putVideo(name,
cameraProcess.getProperties().staticProperties.imageWidth / divisor.value,
cameraProcess.getProperties().staticProperties.imageHeight / divisor.value);
setDivisor(divisor);
setDivisor(divisor, false);
}
public void setDivisor(StreamDivisor newDivisor) {
public void setDivisor(StreamDivisor newDivisor, boolean updateUI) {
this.divisor = newDivisor;
var camValues = cameraProcess.getProperties();
var newWidth = camValues.staticProperties.imageWidth / newDivisor.value;
@@ -36,7 +37,9 @@ public class CameraStreamer {
cameraProcess.getProperties().staticProperties.imageWidth / divisor.value,
cameraProcess.getProperties().staticProperties.imageHeight / divisor.value);
}
ServerHandler.sendFullSettings();
if (updateUI) {
ServerHandler.sendFullSettings();
}
}
public StreamDivisor getDivisor() {
@@ -46,7 +49,12 @@ public class CameraStreamer {
public void setNewVideoMode(VideoMode newVideoMode) {
// Trick to update cvSource and streamBuffer to the new resolution
// Must change the cameraProcess resolution first
setDivisor(divisor);
setDivisor(divisor, true);
}
public int getStreamPort() {
var s = (MjpegServer) CameraServer.getInstance().getServer("serve_" + name);
return s.getPort();
}
public void runStream(Mat image) {

View File

@@ -98,4 +98,8 @@ public class USBCameraProperties {
public double calculateYaw(double PixelX, double centerX) {
return FastMath.toDegrees(FastMath.atan((PixelX - centerX) / staticProperties.horizontalFocalLength));
}
public List<VideoMode> getVideoModes() {
return videoModes;
}
}