Bootup sprint (#18)

* Did some stuff

* Fix gradle, start implementing mjpeg frame consumer

* Did some stuff

* bade changes

* rename camera config to USBCameraConfiguration, add name

* unrename cameraconfiguration

* Add pub/sub framework

* Add setResolution to mjpeg frame consumer

* add NTDataConsumer

* Add some totally broken hsv hacks

* Start refactoring UI data

* Update index.js

* Commit and push, he says

* Fix up some errors

* Fix input tab

* Fix fps

* Update index.js

* Add pipeline field setting, update PipelineManager, fix nullpointers and USBCameraSettables

* Change v-model to point to data()

* update hsv to use mutations

* Work on saving, fix hsv

* Rename shouldErode/shouldDilate to erode and dilate

* Hook all the tabs up to the Store

* Change handleData to handlePipelineData

* camera quirk redo, add ICCSub to SocketHandler

* Fix some property names

* Fixed tons of naming in UI, fix backend for multi-val PSCs, fix PSC enums

* change pipeline type to an int in store

* Fix mutation naming

* Attempt threshold fix

* Update SocketHandler.java

* Add truthy data sending

* Start adding logging support

* [UI] Add delay to slider input boxes (#1)

* [UI] [Backend] potentially fix camera settings, various logging tweaks

* Don't release raw input mat

* add setVideoModeIndex to vision settables

* Implement pipeline index in socket handler, add framework for renaming/changing pipes

* (ish) get pipeline change working

* Create index.html

* Cleanups, fix pipeline index bug, fix stream res for MJPG, add dashboard stream (unused)

* Refactor UI to use mutatePipeline, send pipeline results

* Update NetworkConfig.java

* Change double to number

* Run spotless

* Fix reversal of large/small comparators

* Fix left/right

* Fix pitch/yaw calculation bug, fix area bug

* Use Vue.set instead of assignment

This fixes {{ }}

* Update App.vue

* run spotless

* Actually add pipelines and reassign indecies

* Delete old pipeline configs

Fixes duplication on renaming pipeline

* Start working on deleting pipes

* Fix camera nickname change

* run spotless

* Fix some test stuff

* Update VisionModuleManagerTest.java

* vision source manager test is still broken

* Fix VisionSourceManager test

* Apply spotless 2 electric boogaloo

Co-authored-by: Banks Troutman <btrout.dhrs@gmail.com>
Co-authored-by: Declan Freeman-Gleason <declanfreemangleason@gmail.com>
Co-authored-by: Aaryan Agrawal <54345060+13Ducks@users.noreply.github.com>
This commit is contained in:
Matt
2020-07-07 01:01:58 -07:00
committed by GitHub
parent 01712a7396
commit 4cd2262acc
106 changed files with 3666 additions and 623 deletions

View File

@@ -23,6 +23,7 @@
<script>
export default {
name: 'Icon',
// eslint-disable-next-line vue/require-prop-types
props: ['color', 'tooltip', 'text', 'right', 'hover'],
data() {
return {}

View File

@@ -12,6 +12,7 @@
<script>
export default {
name: "CvImage",
// eslint-disable-next-line vue/require-prop-types
props: ['address', 'scale'],
data: () => {
return {}

View File

@@ -24,6 +24,7 @@ s
<script>
export default {
name: 'Input',
// eslint-disable-next-line vue/require-prop-types
props: ['name', 'value', 'disabled', 'errorMessage'],
data() {
return {}

View File

@@ -26,6 +26,7 @@
<script>
export default {
name: 'NumberInput',
// eslint-disable-next-line vue/require-prop-types
props: ['name', 'value', 'step'],
data() {
return {}

View File

@@ -20,6 +20,7 @@
<script>
export default {
name: 'Radio',
// eslint-disable-next-line vue/require-prop-types
props: ['value', 'list'],
data() {
return {}

View File

@@ -1,9 +1,6 @@
<template>
<div>
<v-row
dense
align="center"
>
<v-row dense align="center">
<v-col :cols="2">
<span>{{ name }}</span>
</v-col>
@@ -62,46 +59,65 @@
</template>
<script>
export default {
name: 'RangeSlider',
props: ['name', 'min', 'max', 'value', 'step'],
data() {
return {
prependFocused: false,
appendFocused: false
}
},
computed: {
localValue: {
get() {
return this.value;
},
set(value) {
this.$emit('input', value)
}
}
},
methods: {
handleChange(val) {
let i = 0;
if (this.prependFocused === false && this.appendFocused === true) {
i = 1;
}
if (this.prependFocused || this.appendFocused) {
this.$set(this.localValue, i, val);
this.$emit('rollback', this.localValue)
}
},
handleInput(val) {
if (!this.prependFocused || !this.appendFocused) {
this.localValue = val;
}
}
}
export default {
name: "RangeSlider",
// eslint-disable-next-line vue/require-prop-types
props: ["name", "min", "max", "value", "step"],
data() {
return {
prependFocused: false,
appendFocused: false,
currentBoxVals: [null, null]
};
},
computed: {
localValue: {
get() {
return Object.values(this.value);
},
set(value) {
this.$emit("input", value);
}
}
},
methods: {
// handleChange(val) {
// let i = 0;
// if (this.prependFocused === false && this.appendFocused === true) {
// i = 1;
// }
// if (this.prependFocused || this.appendFocused) {
// this.$set(this.localValue, i, val);
// this.$emit('rollback', this.localValue)
// }
// },
handleChange(val) {
let i = 0;
if (this.prependFocused === false && this.appendFocused === true) {
i = 1;
}
this.currentBoxVals[i] = val;
setTimeout(() => {
if (this.currentBoxVals[i] !== val) return;
//if (this.prependFocused || this.appendFocused) {
let tmp = this.localValue;
let parsed = parseFloat(val);
if (isNaN(parsed)) return;
tmp[i] = parsed;
this.localValue = tmp;
this.$emit("rollback", this.localValue);
//}
}, 200);
},
handleInput(val) {
if (!this.prependFocused || !this.appendFocused) {
this.localValue = val;
}
}
}
};
</script>
<style lang="" scoped>
</style>

View File

@@ -27,6 +27,7 @@
<script>
export default {
name: 'Select',
// eslint-disable-next-line vue/require-prop-types
props: ['list', 'name', 'value', 'disabled'],
data() {
return {}

View File

@@ -1,9 +1,6 @@
<template>
<div>
<v-row
dense
align="center"
>
<v-row dense align="center">
<v-col :cols="2">
<span>{{ name }}</span>
</v-col>
@@ -19,7 +16,7 @@
:step="step"
@start="isClicked = true"
@end="isClicked = false"
@change="handleclick"
@change="handleClick"
@input="handleInput"
@mousedown="$emit('rollback', localValue)"
>
@@ -47,46 +44,51 @@
</template>
<script>
export default {
name: 'Slider',
props: ['min', 'max', 'name', 'value', 'step'],
data() {
return {
isFocused: false,
isClicked: false
}
},
computed: {
localValue: {
get() {
return this.value;
},
set(value) {
this.$emit('input', value)
}
}
},
methods: {
handleChange(val) {
if (this.isFocused) {
this.localValue = parseFloat(val);
this.$emit('rollback', this.localValue)
}
},
handleInput(val) {
if (!this.isFocused && this.isClicked) {
this.localValue = val;
}
},
handleclick(val) {
if (!this.isFocused) {
this.localValue = val;
}
}
}
export default {
name: "Slider",
// eslint-disable-next-line vue/require-prop-types
props: ["min", "max", "name", "value", "step"],
data() {
return {
isFocused: false,
isClicked: false,
currentBoxVal: null
};
},
computed: {
localValue: {
get() {
return this.value;
},
set(value) {
this.$emit("input", value);
}
}
},
methods: {
handleChange(val) {
this.currentBoxVal = val;
setTimeout(() => {
if (this.currentBoxVal !== val) return;
// if (this.isFocused) {
this.localValue = parseFloat(val);
this.$emit("rollback", this.localValue);
// }
}, 200);
},
handleInput(val) {
if (!this.isFocused && this.isClicked) {
this.localValue = val;
}
},
handleClick(val) {
if (!this.isFocused) {
this.localValue = val;
}
}
}
};
</script>
<style lang="" scoped>
</style>

View File

@@ -23,6 +23,7 @@
<script>
export default {
name: 'CVSwitch',
// eslint-disable-next-line vue/require-prop-types
props: ['name', 'value', 'disabled'],
data() {
return {}