mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-22 01:11:40 +00:00
* Add native stuff * use runtimeloader * add more native methods * more stuff * Switch JNI methods to static * Remove non-java classes from the picam jni * Add gradle task for JNI generation * Migrate my previous GPU accel work * Initial work on defining JNI interface * Change libpicam to a symlink for now * Initial work on adding no-copy OMX GPU accel on the pi * Make DIRECT_OMX GPU accel mode not crash * Clean up OMX changes (still not getting valid data back) * Re-add GPU unit test * A couple debugging tweaks/notes * Add temporary special cases to get RGB out of ProcessingMode.NONE * Code clarity improvements; fix possible VBO bug * Get DIRECT_OMX working * Remove some debugging switches in GPUAccelerator * Pipe in VCSM stuff to read out pixels FAST * Apply Spotless * Revert versioningHelper changes * Add missing import * Convert to MMAL and move everything to native * Re-add shared object * Rework to use MMAL and do everything natively * Condense pipeline settings classes * Add OutputStreamPipeline * Apply spotless * Fix duplicate variable inits and add more video modes * Integrate color frames and latency measurements for GPU * Fix camera detection on pi and other platforms * Add proper color copy disabling and camera settings calls * Fix things that were broken by rebase * Fix spotless issues and remove uneeded prints * Remove libpicam symlink * Fix stream resolution limiting * Remove testing code in GPUAcceleratedHSVPipe * Make profiling options general to all computers * Make PicamJNI load from resources * run spotlessApply * Address review comments * Update Maven repo for JOGL * Fix release race condition * Only run GPU accel test on the pi * Lint fix and merge conflict accident fixes * Make Jackson ignore extra fields when unmarshalling HardwareConfig * Fix Mat releasing data race * Spotless apply * Remove broken header generation task * Fix shared library loading typo * Add a ZeroCopyPicam quirk to allow setting gain with the MMAL backend * Make sure that exposure/brightness/gain get set after res changes * Make rawInputMat properly local * Remove bogus set of shouldRun flag * Clean up small GPUHSVPipe print * Add in some things that missed the ZeroCopyPiCameraSource rename * Fix incorrect scoping introduced in past rebase * Don't filter out too-low resolutions * Only show latency when GPU accel is enabled * Don't free Mats in stream thread before we use them * Fix use-after-free and latency caluclation bugs on USB camera source * Update libpicam * Remove unwanted print * Add libpicam forceLoad in unit test * Fix streaming during camera calibration * Fix zerocopy Picam calculation * Use logger trace method instead of raw prints * Fix calibration and driver mode pipes with the Picam Co-authored-by: Matt <matthew.morley.ca@gmail.com> Co-authored-by: Banks Troutman <btrout.dhrs@gmail.com>
133 lines
2.8 KiB
Vue
133 lines
2.8 KiB
Vue
<template>
|
|
<v-card
|
|
dark
|
|
class="pt-3"
|
|
color="primary"
|
|
flat
|
|
>
|
|
<v-card-title>
|
|
View Program Logs
|
|
|
|
<v-btn
|
|
color="secondary"
|
|
style="margin-left: auto;"
|
|
depressed
|
|
@click="download('photonlog.log', rawLogs.map(it => it.message).join('\n'))"
|
|
>
|
|
<v-icon left>
|
|
mdi-download
|
|
</v-icon>
|
|
Download Log
|
|
</v-btn>
|
|
</v-card-title>
|
|
<div class="pr-6 pl-6">
|
|
<v-btn-toggle
|
|
v-model="logLevel"
|
|
dark
|
|
multiple
|
|
class="fill mb-4"
|
|
>
|
|
<v-btn
|
|
v-for="(level) in possibleLevelArray"
|
|
:key="level"
|
|
color="secondary"
|
|
class="fill"
|
|
>
|
|
{{ level }}
|
|
</v-btn>
|
|
</v-btn-toggle>
|
|
<!-- Logs -->
|
|
|
|
<v-virtual-scroll
|
|
:items="logMessageArray"
|
|
item-height="50"
|
|
height="600"
|
|
>
|
|
<template v-slot="{ item }">
|
|
<div :class="[getColor(item) + '--text', 'log-item']">
|
|
{{ item.message }}
|
|
</div>
|
|
</template>
|
|
</v-virtual-scroll>
|
|
</div>
|
|
|
|
<v-divider />
|
|
|
|
<v-card-actions>
|
|
<v-spacer />
|
|
<v-btn
|
|
color="white"
|
|
text
|
|
@click="$store.state.logsOverlay = false"
|
|
>
|
|
Close
|
|
</v-btn>
|
|
</v-card-actions>
|
|
</v-card>
|
|
</template>
|
|
|
|
<script>
|
|
|
|
export default {
|
|
name: "Logs",
|
|
components: {
|
|
},
|
|
data() {
|
|
return {
|
|
selectedLevel: [0, 1, 2],
|
|
possibleLevelArray: ['ERROR', 'WARN', 'INFO', 'DEBUG'],
|
|
colorArray: ['red', 'yellow','green', 'white'],
|
|
}
|
|
},
|
|
computed: {
|
|
rawLogs() {
|
|
return this.$store.state.logMessages;
|
|
},
|
|
logMessageArray() {
|
|
const logArray = this.$store.state.logMessages;
|
|
return logArray.filter(it => this.selectedLevel.includes(it.level));
|
|
},
|
|
logLevel: {
|
|
get() {
|
|
return this.selectedLevel
|
|
},
|
|
set(value) {
|
|
this.selectedLevel = value;
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
getColor(message) {
|
|
return this.colorArray[message.level];
|
|
},
|
|
|
|
download(filename, text) {
|
|
const element = document.createElement('a');
|
|
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
|
|
element.setAttribute('download', filename);
|
|
|
|
element.style.display = 'none';
|
|
document.body.appendChild(element);
|
|
|
|
element.click();
|
|
|
|
document.body.removeChild(element);
|
|
}
|
|
}
|
|
}
|
|
|
|
</script>
|
|
|
|
<style scoped>
|
|
.v-btn-toggle.fill {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.v-btn-toggle.fill > .v-btn {
|
|
width: 25%;
|
|
height: 100%;
|
|
}
|
|
|
|
</style>
|