Remove camera index in ui (#1677)

With the new camera matching, this is SUPER BAD! Convert to using camera
uuid.

---------

Co-authored-by: Matt <matthew.morley.ca@gmail.com>
This commit is contained in:
Cameron (3539)
2025-01-03 18:50:25 -05:00
committed by GitHub
parent 6c7a174424
commit ab844a77b8
19 changed files with 271 additions and 250 deletions

View File

@@ -19,7 +19,7 @@ const host = inject<string>("backendHost");
const activateModule = (moduleUniqueName: string) => {
const url = new URL(`http://${host}/api/utils/activateMatchedCamera`);
url.searchParams.set("uniqueName", moduleUniqueName);
url.searchParams.set("cameraUniqueName", moduleUniqueName);
fetch(url.toString(), {
method: "POST"
@@ -34,8 +34,9 @@ const activateCamera = (cameraInfo: PVCameraInfo) => {
});
};
const deactivateCamera = (cameraUniqueName: string) => {
console.log("Deactivating " + cameraUniqueName);
const url = new URL(`http://${host}/api/utils/unassignCamera`);
url.searchParams.set("uniqueName", cameraUniqueName);
url.searchParams.set("cameraUniqueName", cameraUniqueName);
fetch(url.toString(), {
method: "POST"
@@ -134,7 +135,9 @@ const getMatchedDevice = (info: PVCameraInfo | undefined): PVCameraInfo => {
};
const unmatchedCameras = computed(() => {
const activeVmPaths = useCameraSettingsStore().cameras.map((it) => uniquePathForCamera(it.matchedCameraInfo));
const activeVmPaths = Object.values(useCameraSettingsStore().cameras).map((it) =>
uniquePathForCamera(it.matchedCameraInfo)
);
const disabledVmPaths = useStateStore().vsmState.disabledConfigs.map((it) =>
uniquePathForCamera(it.matchedCameraInfo)
);
@@ -145,7 +148,7 @@ const unmatchedCameras = computed(() => {
});
const activeVisionModules = computed(() =>
useCameraSettingsStore().cameras.filter(
Object.values(useCameraSettingsStore().cameras).filter(
(camera) => JSON.stringify(camera) !== JSON.stringify(PlaceholderCameraSettings)
)
);
@@ -166,13 +169,7 @@ const setCameraView = (camera: PVCameraInfo | null, showCurrent: boolean = false
<div class="pa-5">
<v-row>
<!-- Active modules -->
<v-col
v-for="(module, index) in activeVisionModules"
:key="`enabled-${module.uniqueName}`"
cols="12"
sm="6"
lg="4"
>
<v-col v-for="module in activeVisionModules" :key="`enabled-${module.uniqueName}`" cols="12" sm="6" lg="4">
<v-card dark color="primary">
<v-card-title>{{ module.nickname }}</v-card-title>
<v-card-subtitle v-if="_.isEqual(getMatchedDevice(module.matchedCameraInfo), module.matchedCameraInfo)"
@@ -211,11 +208,11 @@ const setCameraView = (camera: PVCameraInfo | null, showCurrent: boolean = false
}}
</td>
</tr>
<tr v-if="module.isConnected && useStateStore().backendResults[index]">
<tr v-if="module.isConnected && useStateStore().backendResults[module.uniqueName]">
<td>Frames Processed</td>
<td>
{{ useStateStore().backendResults[index].sequenceID }} ({{
useStateStore().backendResults[index].fps
{{ useStateStore().backendResults[module.uniqueName].sequenceID }} ({{
useStateStore().backendResults[module.uniqueName].fps
}}
FPS)
</td>