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 37a9dfde8..4354dba05 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/Camera.java @@ -9,6 +9,7 @@ import edu.wpi.first.networktables.NetworkTable; import edu.wpi.first.networktables.NetworkTableInstance; import org.opencv.core.Mat; +import java.lang.reflect.Array; import java.util.*; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -304,9 +305,14 @@ public class Camera { } } - public List getResolutionList() { + public List getResolutionList() { return Arrays.stream(availableVideoModes) - .map(res -> String.format("%sx%s@%sFPS, %s", res.width, res.height, res.fps, res.pixelFormat.toString())) + .map(res -> new HashMap(){{ + put("width", res.width); + put("height", res.height); + put("fps", res.fps); + put("pixelFormat", res.pixelFormat); + }}) .collect(Collectors.toList()); } diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/StreamDivisor.java b/Main/src/main/java/com/chameleonvision/vision/camera/StreamDivisor.java index 8edb165e2..bdda9556c 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/StreamDivisor.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/StreamDivisor.java @@ -4,7 +4,7 @@ public enum StreamDivisor { none(1), half(2), quarter(4), - sixth(6); + eighth(8); public final Integer value; diff --git a/chameleon-client/src/main.js b/chameleon-client/src/main.js index 86192f4ea..562e19df9 100644 --- a/chameleon-client/src/main.js +++ b/chameleon-client/src/main.js @@ -8,7 +8,7 @@ import msgPack from 'msgpack5'; Vue.config.productionTip = false; // Vue.use(VueNativeSock,'ws://' + location.host + '/websocket',{format: 'json'}); -Vue.use(VueNativeSock, 'ws://' + location.hostname + ':8888/websocket'); +Vue.use(VueNativeSock, 'ws://' + location.hostname + ':5800/websocket'); Vue.prototype.$msgPack = msgPack(true); Vue.mixin({ methods: { diff --git a/chameleon-client/src/views/SettingsViewes/Cameras.vue b/chameleon-client/src/views/SettingsViewes/Cameras.vue index 926c69e50..8440de656 100644 --- a/chameleon-client/src/views/SettingsViewes/Cameras.vue +++ b/chameleon-client/src/views/SettingsViewes/Cameras.vue @@ -3,7 +3,7 @@ + :list="streamResolutionList"/> Save Camera Settings @@ -29,7 +29,6 @@ }, computed: { - currentCameraIndex: { get() { return this.$store.state.currentCameraIndex; @@ -48,7 +47,23 @@ }, resolutionList: { get() { - return this.$store.state.resolutionList; + let tmp_list = []; + for (let i of this.$store.state.resolutionList){ + tmp_list.push(`${i['width']} X ${i['height']} at ${i['fps']} FPS, ${i['pixelFormat']}`) + } + return tmp_list; + } + }, + streamResolutionList:{ + get(){ + let cam_res = this.$store.state.resolutionList[this.cameraSettings.resolution]; + let tmp_list = []; + let x = 1; + for (let i = 0; i < 4; i++){ + tmp_list.push(`${cam_res['width']/x} X ${cam_res['height']/x}`); + x *= 2; + } + return tmp_list; } }, cameraSettings: {