001/* 002 * MIT License 003 * 004 * Copyright (c) PhotonVision 005 * 006 * Permission is hereby granted, free of charge, to any person obtaining a copy 007 * of this software and associated documentation files (the "Software"), to deal 008 * in the Software without restriction, including without limitation the rights 009 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 010 * copies of the Software, and to permit persons to whom the Software is 011 * furnished to do so, subject to the following conditions: 012 * 013 * The above copyright notice and this permission notice shall be included in all 014 * copies or substantial portions of the Software. 015 * 016 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 017 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 018 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 019 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 020 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 021 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 022 * SOFTWARE. 023 */ 024 025// THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO NOT MODIFY 026 027package org.photonvision.struct; 028 029import org.photonvision.common.dataflow.structures.Packet; 030import org.photonvision.common.dataflow.structures.PacketSerde; 031 032// Assume that the base class lives here and we can import it 033import org.photonvision.targeting.*; 034 035// WPILib imports (if any) 036import org.wpilib.util.struct.Struct; 037 038 039/** 040 * Auto-generated serialization/deserialization helper for PhotonPipelineResult 041 */ 042public class PhotonPipelineResultSerde implements PacketSerde<PhotonPipelineResult> { 043 044 @Override 045 public final String getInterfaceUUID() { return "4b2ff16a964b5e2bf04be0c1454d91c4"; } 046 @Override 047 public final String getSchema() { return "PhotonPipelineMetadata:ac0a45f686457856fb30af77699ea356 metadata;PhotonTrackedTarget:cc6dbb5c5c1e0fa808108019b20863f1 targets[?];optional MultiTargetPNPResult:541096947e9f3ca2d3f425ff7b04aa7b multitagResult;"; } 048 @Override 049 public final String getTypeName() { return "PhotonPipelineResult"; } 050 051 @Override 052 public int getMaxByteSize() { 053 // TODO Auto-generated method stub 054 throw new UnsupportedOperationException("Unimplemented method 'getMaxByteSize'"); 055 } 056 057 @Override 058 public void pack(Packet packet, PhotonPipelineResult value) { 059 // field metadata is of non-intrinsic type PhotonPipelineMetadata 060 PhotonPipelineMetadata.photonStruct.pack(packet, value.metadata); 061 062 // targets is a custom VLA! 063 packet.encodeList(value.targets); 064 065 // multitagResult is optional! it better not be a VLA too 066 packet.encodeOptional(value.multitagResult); 067 } 068 069 @Override 070 public PhotonPipelineResult unpack(Packet packet) { 071 var ret = new PhotonPipelineResult(); 072 073 // metadata is of non-intrinsic type PhotonPipelineMetadata 074 ret.metadata = PhotonPipelineMetadata.photonStruct.unpack(packet); 075 076 // targets is a custom VLA! 077 ret.targets = packet.decodeList(PhotonTrackedTarget.photonStruct); 078 079 // multitagResult is optional! it better not be a VLA too 080 ret.multitagResult = packet.decodeOptional(MultiTargetPNPResult.photonStruct); 081 082 return ret; 083 } 084 085 @Override 086 public PacketSerde<?>[] getNestedPhotonMessages() { 087 return new PacketSerde<?>[] { 088 PhotonTrackedTarget.photonStruct,MultiTargetPNPResult.photonStruct,PhotonPipelineMetadata.photonStruct 089 }; 090 } 091 092 @Override 093 public Struct<?>[] getNestedWpilibMessages() { 094 return new Struct<?>[] { 095 096 }; 097 } 098}