mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-22 01:11:40 +00:00
Fix driver mode settings, sort resolutions (#115)
* Fix DriverMode settings * Update FileVisionSource.java * Sort modes by resolution * Filter duplicated modes * run spotless * Fix calibration bug * run format * aaaaa * Add hardware and platform support * decrease timing sensitivity * Better handle jvm exitg * Make reboot happen immediately * Cleanup restart * Remove debug print * Fix Jackson exploding when deserializing old versions of configs * Add unit test for old config versions * Run format * Add a comment * remove isvendorcam from pipeline manager * oops
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
package org.photonvision.common.configuration;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
@@ -28,6 +29,7 @@ import org.photonvision.common.logging.LogGroup;
|
||||
import org.photonvision.common.logging.LogLevel;
|
||||
import org.photonvision.common.logging.Logger;
|
||||
import org.photonvision.common.util.TestUtils;
|
||||
import org.photonvision.common.util.file.JacksonUtils;
|
||||
import org.photonvision.vision.pipeline.ColoredShapePipelineSettings;
|
||||
import org.photonvision.vision.pipeline.ReflectivePipelineSettings;
|
||||
import org.photonvision.vision.target.TargetModel;
|
||||
@@ -116,4 +118,16 @@ public class ConfigTest {
|
||||
FileUtils.cleanDirectory(configMgr.configDirectoryFile);
|
||||
configMgr.configDirectoryFile.delete();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJacksonHandlesOldVersions() throws IOException {
|
||||
var str =
|
||||
"{\"baseName\":\"aaaaaa\",\"uniqueName\":\"aaaaaa\",\"nickname\":\"aaaaaa\",\"FOV\":70.0,\"path\":\"dev/vid\",\"cameraType\":\"UsbCamera\",\"currentPipelineIndex\":0,\"camPitch\":{\"radians\":0.0},\"calibrations\":[], \"cameraLEDs\":[]}";
|
||||
var writer = new FileWriter("test.json");
|
||||
writer.write(str);
|
||||
writer.flush();
|
||||
writer.close();
|
||||
Assertions.assertDoesNotThrow(
|
||||
() -> JacksonUtils.deserialize(Path.of("test.json"), CameraConfiguration.class));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ package org.photonvision.vision.processes;
|
||||
import edu.wpi.cscore.VideoMode;
|
||||
import edu.wpi.first.wpilibj.geometry.Rotation2d;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.*;
|
||||
import org.photonvision.common.configuration.CameraConfiguration;
|
||||
import org.photonvision.common.configuration.ConfigManager;
|
||||
@@ -29,7 +28,6 @@ import org.photonvision.common.util.TestUtils;
|
||||
import org.photonvision.vision.frame.FrameProvider;
|
||||
import org.photonvision.vision.frame.FrameStaticProperties;
|
||||
import org.photonvision.vision.frame.provider.FileFrameProvider;
|
||||
import org.photonvision.vision.pipeline.CVPipelineSettings;
|
||||
import org.photonvision.vision.pipeline.result.CVPipelineResult;
|
||||
|
||||
public class VisionModuleManagerTest {
|
||||
@@ -57,6 +55,11 @@ public class VisionModuleManagerTest {
|
||||
public VisionSourceSettables getSettables() {
|
||||
return new TestSettables(new CameraConfiguration("", "", "", ""));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVendorCamera() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static class TestSettables extends VisionSourceSettables {
|
||||
@@ -105,14 +108,14 @@ public class VisionModuleManagerTest {
|
||||
@Test
|
||||
public void setupManager() {
|
||||
ConfigManager.getInstance().load();
|
||||
var sources = new HashMap<VisionSource, List<CVPipelineSettings>>();
|
||||
var sources = new HashMap<VisionSource, CameraConfiguration>();
|
||||
sources.put(
|
||||
new TestSource(
|
||||
new FileFrameProvider(
|
||||
TestUtils.getWPIImagePath(
|
||||
TestUtils.WPI2019Image.kCargoStraightDark72in_HighRes, false),
|
||||
TestUtils.WPI2019Image.FOV)),
|
||||
List.of());
|
||||
new CameraConfiguration("Foo", "Barr"));
|
||||
|
||||
var modules = VisionModuleManager.getInstance().addSources(sources);
|
||||
var module0DataConsumer = new TestDataConsumer();
|
||||
@@ -121,7 +124,7 @@ public class VisionModuleManagerTest {
|
||||
|
||||
modules.forEach(VisionModule::start);
|
||||
|
||||
sleep(500);
|
||||
sleep(1500);
|
||||
|
||||
Assertions.assertNotNull(module0DataConsumer.result);
|
||||
printTestResults(module0DataConsumer.result);
|
||||
|
||||
@@ -25,6 +25,7 @@ import java.util.ArrayList;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.photonvision.common.configuration.CameraConfiguration;
|
||||
import org.photonvision.common.configuration.ConfigManager;
|
||||
import org.photonvision.common.util.TestUtils;
|
||||
|
||||
public class VisionSourceManagerTest {
|
||||
@@ -38,6 +39,7 @@ public class VisionSourceManagerTest {
|
||||
var inst = new VisionSourceManager();
|
||||
var infoList = new ArrayList<UsbCameraInfo>();
|
||||
inst.cameraInfoSupplier = () -> infoList;
|
||||
ConfigManager.getInstance().load();
|
||||
|
||||
inst.tryMatchUSBCamImpl();
|
||||
var config = new CameraConfiguration("secondTestVideo", "dev/video1");
|
||||
|
||||
Reference in New Issue
Block a user