mirror of
https://github.com/PhotonVision/photonvision
synced 2026-07-01 02:41:42 +00:00
JSONAlias on old tag type enum names (#1055)
add aliases for older enum names * two more aliases for 6.5" 36h11 tags * added unit test for missing @JsonAlias * use proper tempfiles * check proper TargetModel enum
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.photonvision.vision.target;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAlias;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
@@ -108,6 +109,7 @@ public enum TargetModel implements Releasable {
|
||||
-Units.inchesToMeters(9.5) / 2)),
|
||||
0),
|
||||
// 2023 AprilTag, with 6 inch marker width (inner black square).
|
||||
@JsonAlias({"k6in_16h5"})
|
||||
kAprilTag6in_16h5(
|
||||
// Corners of the tag's inner black square (excluding white border)
|
||||
List.of(
|
||||
@@ -117,6 +119,7 @@ public enum TargetModel implements Releasable {
|
||||
new Point3(Units.inchesToMeters(3), -Units.inchesToMeters(3), 0)),
|
||||
Units.inchesToMeters(3 * 2)),
|
||||
// 2024 AprilTag, with 6.5 inch marker width (inner black square).
|
||||
@JsonAlias({"k6p5in_36h11", "k200mmAprilTag", "kAruco6p5in_36h11"})
|
||||
kAprilTag6p5in_36h11(
|
||||
// Corners of the tag's inner black square (excluding white border)
|
||||
List.of(
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.photonvision.common.logging.Logger;
|
||||
import org.photonvision.common.util.TestUtils;
|
||||
import org.photonvision.common.util.file.JacksonUtils;
|
||||
import org.photonvision.vision.pipeline.AprilTagPipelineSettings;
|
||||
import org.photonvision.vision.pipeline.CVPipelineSettings;
|
||||
import org.photonvision.vision.pipeline.ColoredShapePipelineSettings;
|
||||
import org.photonvision.vision.pipeline.ReflectivePipelineSettings;
|
||||
import org.photonvision.vision.target.TargetModel;
|
||||
@@ -132,13 +133,34 @@ public class ConfigTest {
|
||||
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");
|
||||
File tempFile = File.createTempFile("test", ".json");
|
||||
tempFile.deleteOnExit();
|
||||
var writer = new FileWriter(tempFile);
|
||||
writer.write(str);
|
||||
writer.flush();
|
||||
writer.close();
|
||||
Assertions.assertDoesNotThrow(
|
||||
() -> JacksonUtils.deserialize(Path.of("test.json"), CameraConfiguration.class));
|
||||
() -> JacksonUtils.deserialize(tempFile.toPath(), CameraConfiguration.class));
|
||||
|
||||
new File("test.json").delete();
|
||||
tempFile.delete();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJacksonHandlesOldTargetEnum() throws IOException {
|
||||
var str = "[ \"AprilTagPipelineSettings\", {\n \"targetModel\" : \"k6in_16h5\"\n} ]\n";
|
||||
|
||||
File tempFile = File.createTempFile("test", ".json");
|
||||
tempFile.deleteOnExit();
|
||||
var writer = new FileWriter(tempFile);
|
||||
writer.write(str);
|
||||
writer.flush();
|
||||
writer.close();
|
||||
|
||||
AprilTagPipelineSettings settings =
|
||||
(AprilTagPipelineSettings)
|
||||
JacksonUtils.deserialize(tempFile.toPath(), CVPipelineSettings.class);
|
||||
Assertions.assertEquals(TargetModel.kAprilTag6in_16h5, settings.targetModel);
|
||||
|
||||
tempFile.delete();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user