mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-24 01:31:44 +00:00
Auto-generate packet dataclasses with Jinja (#1374)
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO NOT MODIFY
|
||||
|
||||
package org.photonvision.struct;
|
||||
|
||||
import org.photonvision.common.dataflow.structures.Packet;
|
||||
import org.photonvision.common.dataflow.structures.PacketSerde;
|
||||
import org.photonvision.utils.PacketUtils;
|
||||
|
||||
// Assume that the base class lives here and we can import it
|
||||
import org.photonvision.targeting.*;
|
||||
|
||||
|
||||
/**
|
||||
* Auto-generated serialization/deserialization helper for MultiTargetPNPResult
|
||||
*/
|
||||
public class MultiTargetPNPResultSerde implements PacketSerde<MultiTargetPNPResult> {
|
||||
// Message definition md5sum. See photon_packet.adoc for details
|
||||
public static final String MESSAGE_VERSION = "ffc1cb847deb6e796a583a5b1885496b";
|
||||
public static final String MESSAGE_FORMAT = "PnpResult estimatedPose;int16[?] fiducialIDsUsed;";
|
||||
|
||||
public final String getTypeString() { return MESSAGE_FORMAT; }
|
||||
public final String getInterfaceUUID() { return MESSAGE_VERSION; }
|
||||
|
||||
@Override
|
||||
public int getMaxByteSize() {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'getMaxByteSize'");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pack(Packet packet, MultiTargetPNPResult value) {
|
||||
// field estimatedPose is of non-intrinsic type PnpResult
|
||||
PnpResult.photonStruct.pack(packet, value.estimatedPose);
|
||||
|
||||
// fiducialIDsUsed is a intrinsic VLA!
|
||||
packet.encode(value.fiducialIDsUsed);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MultiTargetPNPResult unpack(Packet packet) {
|
||||
var ret = new MultiTargetPNPResult();
|
||||
|
||||
// estimatedPose is of non-intrinsic type PnpResult
|
||||
ret.estimatedPose = PnpResult.photonStruct.unpack(packet);
|
||||
|
||||
// fiducialIDsUsed is a custom VLA!
|
||||
ret.fiducialIDsUsed = packet.decodeShortList();
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO NOT MODIFY
|
||||
|
||||
package org.photonvision.struct;
|
||||
|
||||
import org.photonvision.common.dataflow.structures.Packet;
|
||||
import org.photonvision.common.dataflow.structures.PacketSerde;
|
||||
import org.photonvision.utils.PacketUtils;
|
||||
|
||||
// Assume that the base class lives here and we can import it
|
||||
import org.photonvision.targeting.*;
|
||||
|
||||
|
||||
/**
|
||||
* Auto-generated serialization/deserialization helper for PhotonPipelineMetadata
|
||||
*/
|
||||
public class PhotonPipelineMetadataSerde implements PacketSerde<PhotonPipelineMetadata> {
|
||||
// Message definition md5sum. See photon_packet.adoc for details
|
||||
public static final String MESSAGE_VERSION = "2a7039527bda14d13028a1b9282d40a2";
|
||||
public static final String MESSAGE_FORMAT = "int64 sequenceID;int64 captureTimestampMicros;int64 publishTimestampMicros;";
|
||||
|
||||
public final String getTypeString() { return MESSAGE_FORMAT; }
|
||||
public final String getInterfaceUUID() { return MESSAGE_VERSION; }
|
||||
|
||||
@Override
|
||||
public int getMaxByteSize() {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'getMaxByteSize'");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pack(Packet packet, PhotonPipelineMetadata value) {
|
||||
// field sequenceID is of intrinsic type int64
|
||||
packet.encode((long) value.sequenceID);
|
||||
|
||||
// field captureTimestampMicros is of intrinsic type int64
|
||||
packet.encode((long) value.captureTimestampMicros);
|
||||
|
||||
// field publishTimestampMicros is of intrinsic type int64
|
||||
packet.encode((long) value.publishTimestampMicros);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PhotonPipelineMetadata unpack(Packet packet) {
|
||||
var ret = new PhotonPipelineMetadata();
|
||||
|
||||
// sequenceID is of intrinsic type int64
|
||||
ret.sequenceID = packet.decodeLong();
|
||||
|
||||
// captureTimestampMicros is of intrinsic type int64
|
||||
ret.captureTimestampMicros = packet.decodeLong();
|
||||
|
||||
// publishTimestampMicros is of intrinsic type int64
|
||||
ret.publishTimestampMicros = packet.decodeLong();
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO NOT MODIFY
|
||||
|
||||
package org.photonvision.struct;
|
||||
|
||||
import org.photonvision.common.dataflow.structures.Packet;
|
||||
import org.photonvision.common.dataflow.structures.PacketSerde;
|
||||
import org.photonvision.utils.PacketUtils;
|
||||
|
||||
// Assume that the base class lives here and we can import it
|
||||
import org.photonvision.targeting.*;
|
||||
|
||||
|
||||
/**
|
||||
* Auto-generated serialization/deserialization helper for PhotonPipelineResult
|
||||
*/
|
||||
public class PhotonPipelineResultSerde implements PacketSerde<PhotonPipelineResult> {
|
||||
// Message definition md5sum. See photon_packet.adoc for details
|
||||
public static final String MESSAGE_VERSION = "cb3e1605048ba49325888eb797399fe2";
|
||||
public static final String MESSAGE_FORMAT = "PhotonPipelineMetadata metadata;PhotonTrackedTarget[?] targets;MultiTargetPNPResult? multitagResult;";
|
||||
|
||||
public final String getTypeString() { return MESSAGE_FORMAT; }
|
||||
public final String getInterfaceUUID() { return MESSAGE_VERSION; }
|
||||
|
||||
@Override
|
||||
public int getMaxByteSize() {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'getMaxByteSize'");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pack(Packet packet, PhotonPipelineResult value) {
|
||||
// field metadata is of non-intrinsic type PhotonPipelineMetadata
|
||||
PhotonPipelineMetadata.photonStruct.pack(packet, value.metadata);
|
||||
|
||||
// targets is a custom VLA!
|
||||
packet.encodeList(value.targets);
|
||||
|
||||
// multitagResult is optional! it better not be a VLA too
|
||||
packet.encodeOptional(value.multitagResult);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PhotonPipelineResult unpack(Packet packet) {
|
||||
var ret = new PhotonPipelineResult();
|
||||
|
||||
// metadata is of non-intrinsic type PhotonPipelineMetadata
|
||||
ret.metadata = PhotonPipelineMetadata.photonStruct.unpack(packet);
|
||||
|
||||
// targets is a custom VLA!
|
||||
ret.targets = packet.decodeList(PhotonTrackedTarget.photonStruct);
|
||||
|
||||
// multitagResult is optional! it better not be a VLA too
|
||||
ret.multitagResult = packet.decodeOptional(MultiTargetPNPResult.photonStruct);
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO NOT MODIFY
|
||||
|
||||
package org.photonvision.struct;
|
||||
|
||||
import org.photonvision.common.dataflow.structures.Packet;
|
||||
import org.photonvision.common.dataflow.structures.PacketSerde;
|
||||
import org.photonvision.utils.PacketUtils;
|
||||
|
||||
// Assume that the base class lives here and we can import it
|
||||
import org.photonvision.targeting.*;
|
||||
|
||||
|
||||
/**
|
||||
* Auto-generated serialization/deserialization helper for PhotonTrackedTarget
|
||||
*/
|
||||
public class PhotonTrackedTargetSerde implements PacketSerde<PhotonTrackedTarget> {
|
||||
// Message definition md5sum. See photon_packet.adoc for details
|
||||
public static final String MESSAGE_VERSION = "8fdada56b9162f2e32bd24f0055d7b60";
|
||||
public static final String MESSAGE_FORMAT = "float64 yaw;float64 pitch;float64 area;float64 skew;int32 fiducialId;int32 objDetectId;float32 objDetectConf;Transform3d bestCameraToTarget;Transform3d altCameraToTarget;float64 poseAmbiguity;TargetCorner[?] minAreaRectCorners;TargetCorner[?] detectedCorners;";
|
||||
|
||||
public final String getTypeString() { return MESSAGE_FORMAT; }
|
||||
public final String getInterfaceUUID() { return MESSAGE_VERSION; }
|
||||
|
||||
@Override
|
||||
public int getMaxByteSize() {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'getMaxByteSize'");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pack(Packet packet, PhotonTrackedTarget value) {
|
||||
// field yaw is of intrinsic type float64
|
||||
packet.encode((double) value.yaw);
|
||||
|
||||
// field pitch is of intrinsic type float64
|
||||
packet.encode((double) value.pitch);
|
||||
|
||||
// field area is of intrinsic type float64
|
||||
packet.encode((double) value.area);
|
||||
|
||||
// field skew is of intrinsic type float64
|
||||
packet.encode((double) value.skew);
|
||||
|
||||
// field fiducialId is of intrinsic type int32
|
||||
packet.encode((int) value.fiducialId);
|
||||
|
||||
// field objDetectId is of intrinsic type int32
|
||||
packet.encode((int) value.objDetectId);
|
||||
|
||||
// field objDetectConf is of intrinsic type float32
|
||||
packet.encode((float) value.objDetectConf);
|
||||
|
||||
// field is shimmed!
|
||||
PacketUtils.packTransform3d(packet, value.bestCameraToTarget);
|
||||
|
||||
// field is shimmed!
|
||||
PacketUtils.packTransform3d(packet, value.altCameraToTarget);
|
||||
|
||||
// field poseAmbiguity is of intrinsic type float64
|
||||
packet.encode((double) value.poseAmbiguity);
|
||||
|
||||
// minAreaRectCorners is a custom VLA!
|
||||
packet.encodeList(value.minAreaRectCorners);
|
||||
|
||||
// detectedCorners is a custom VLA!
|
||||
packet.encodeList(value.detectedCorners);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PhotonTrackedTarget unpack(Packet packet) {
|
||||
var ret = new PhotonTrackedTarget();
|
||||
|
||||
// yaw is of intrinsic type float64
|
||||
ret.yaw = packet.decodeDouble();
|
||||
|
||||
// pitch is of intrinsic type float64
|
||||
ret.pitch = packet.decodeDouble();
|
||||
|
||||
// area is of intrinsic type float64
|
||||
ret.area = packet.decodeDouble();
|
||||
|
||||
// skew is of intrinsic type float64
|
||||
ret.skew = packet.decodeDouble();
|
||||
|
||||
// fiducialId is of intrinsic type int32
|
||||
ret.fiducialId = packet.decodeInt();
|
||||
|
||||
// objDetectId is of intrinsic type int32
|
||||
ret.objDetectId = packet.decodeInt();
|
||||
|
||||
// objDetectConf is of intrinsic type float32
|
||||
ret.objDetectConf = packet.decodeFloat();
|
||||
|
||||
// field is shimmed!
|
||||
ret.bestCameraToTarget = PacketUtils.unpackTransform3d(packet);
|
||||
|
||||
// field is shimmed!
|
||||
ret.altCameraToTarget = PacketUtils.unpackTransform3d(packet);
|
||||
|
||||
// poseAmbiguity is of intrinsic type float64
|
||||
ret.poseAmbiguity = packet.decodeDouble();
|
||||
|
||||
// minAreaRectCorners is a custom VLA!
|
||||
ret.minAreaRectCorners = packet.decodeList(TargetCorner.photonStruct);
|
||||
|
||||
// detectedCorners is a custom VLA!
|
||||
ret.detectedCorners = packet.decodeList(TargetCorner.photonStruct);
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO NOT MODIFY
|
||||
|
||||
package org.photonvision.struct;
|
||||
|
||||
import org.photonvision.common.dataflow.structures.Packet;
|
||||
import org.photonvision.common.dataflow.structures.PacketSerde;
|
||||
import org.photonvision.utils.PacketUtils;
|
||||
|
||||
// Assume that the base class lives here and we can import it
|
||||
import org.photonvision.targeting.*;
|
||||
|
||||
|
||||
/**
|
||||
* Auto-generated serialization/deserialization helper for PnpResult
|
||||
*/
|
||||
public class PnpResultSerde implements PacketSerde<PnpResult> {
|
||||
// Message definition md5sum. See photon_packet.adoc for details
|
||||
public static final String MESSAGE_VERSION = "0d1f2546b00f24718e30f38d206d4491";
|
||||
public static final String MESSAGE_FORMAT = "Transform3d best;Transform3d alt;float64 bestReprojErr;float64 altReprojErr;float64 ambiguity;";
|
||||
|
||||
public final String getTypeString() { return MESSAGE_FORMAT; }
|
||||
public final String getInterfaceUUID() { return MESSAGE_VERSION; }
|
||||
|
||||
@Override
|
||||
public int getMaxByteSize() {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'getMaxByteSize'");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pack(Packet packet, PnpResult value) {
|
||||
// field is shimmed!
|
||||
PacketUtils.packTransform3d(packet, value.best);
|
||||
|
||||
// field is shimmed!
|
||||
PacketUtils.packTransform3d(packet, value.alt);
|
||||
|
||||
// field bestReprojErr is of intrinsic type float64
|
||||
packet.encode((double) value.bestReprojErr);
|
||||
|
||||
// field altReprojErr is of intrinsic type float64
|
||||
packet.encode((double) value.altReprojErr);
|
||||
|
||||
// field ambiguity is of intrinsic type float64
|
||||
packet.encode((double) value.ambiguity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PnpResult unpack(Packet packet) {
|
||||
var ret = new PnpResult();
|
||||
|
||||
// field is shimmed!
|
||||
ret.best = PacketUtils.unpackTransform3d(packet);
|
||||
|
||||
// field is shimmed!
|
||||
ret.alt = PacketUtils.unpackTransform3d(packet);
|
||||
|
||||
// bestReprojErr is of intrinsic type float64
|
||||
ret.bestReprojErr = packet.decodeDouble();
|
||||
|
||||
// altReprojErr is of intrinsic type float64
|
||||
ret.altReprojErr = packet.decodeDouble();
|
||||
|
||||
// ambiguity is of intrinsic type float64
|
||||
ret.ambiguity = packet.decodeDouble();
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO NOT MODIFY
|
||||
|
||||
package org.photonvision.struct;
|
||||
|
||||
import org.photonvision.common.dataflow.structures.Packet;
|
||||
import org.photonvision.common.dataflow.structures.PacketSerde;
|
||||
import org.photonvision.utils.PacketUtils;
|
||||
|
||||
// Assume that the base class lives here and we can import it
|
||||
import org.photonvision.targeting.*;
|
||||
|
||||
|
||||
/**
|
||||
* Auto-generated serialization/deserialization helper for TargetCorner
|
||||
*/
|
||||
public class TargetCornerSerde implements PacketSerde<TargetCorner> {
|
||||
// Message definition md5sum. See photon_packet.adoc for details
|
||||
public static final String MESSAGE_VERSION = "22b1ff7551d10215af6fb3672fe4eda8";
|
||||
public static final String MESSAGE_FORMAT = "float64 x;float64 y;";
|
||||
|
||||
public final String getTypeString() { return MESSAGE_FORMAT; }
|
||||
public final String getInterfaceUUID() { return MESSAGE_VERSION; }
|
||||
|
||||
@Override
|
||||
public int getMaxByteSize() {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'getMaxByteSize'");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pack(Packet packet, TargetCorner value) {
|
||||
// field x is of intrinsic type float64
|
||||
packet.encode((double) value.x);
|
||||
|
||||
// field y is of intrinsic type float64
|
||||
packet.encode((double) value.y);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TargetCorner unpack(Packet packet) {
|
||||
var ret = new TargetCorner();
|
||||
|
||||
// x is of intrinsic type float64
|
||||
ret.x = packet.decodeDouble();
|
||||
|
||||
// y is of intrinsic type float64
|
||||
ret.y = packet.decodeDouble();
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include "photon/serde/MultiTargetPNPResultSerde.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
using StructType = SerdeType<MultiTargetPNPResult>;
|
||||
|
||||
void StructType::Pack(Packet& packet, const MultiTargetPNPResult& value) {
|
||||
packet.Pack<photon::PnpResult>(value.estimatedPose);
|
||||
packet.Pack<std::vector<int16_t>>(value.fiducialIDsUsed);
|
||||
}
|
||||
|
||||
MultiTargetPNPResult StructType::Unpack(Packet& packet) {
|
||||
return MultiTargetPNPResult{MultiTargetPNPResult_PhotonStruct{
|
||||
.estimatedPose = packet.Unpack<photon::PnpResult>(),
|
||||
.fiducialIDsUsed = packet.Unpack<std::vector<int16_t>>(),
|
||||
}};
|
||||
}
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include "photon/serde/PhotonPipelineMetadataSerde.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
using StructType = SerdeType<PhotonPipelineMetadata>;
|
||||
|
||||
void StructType::Pack(Packet& packet, const PhotonPipelineMetadata& value) {
|
||||
packet.Pack<int64_t>(value.sequenceID);
|
||||
packet.Pack<int64_t>(value.captureTimestampMicros);
|
||||
packet.Pack<int64_t>(value.publishTimestampMicros);
|
||||
}
|
||||
|
||||
PhotonPipelineMetadata StructType::Unpack(Packet& packet) {
|
||||
return PhotonPipelineMetadata{PhotonPipelineMetadata_PhotonStruct{
|
||||
.sequenceID = packet.Unpack<int64_t>(),
|
||||
.captureTimestampMicros = packet.Unpack<int64_t>(),
|
||||
.publishTimestampMicros = packet.Unpack<int64_t>(),
|
||||
}};
|
||||
}
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include "photon/serde/PhotonPipelineResultSerde.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
using StructType = SerdeType<PhotonPipelineResult>;
|
||||
|
||||
void StructType::Pack(Packet& packet, const PhotonPipelineResult& value) {
|
||||
packet.Pack<photon::PhotonPipelineMetadata>(value.metadata);
|
||||
packet.Pack<std::vector<photon::PhotonTrackedTarget>>(value.targets);
|
||||
packet.Pack<std::optional<photon::MultiTargetPNPResult>>(
|
||||
value.multitagResult);
|
||||
}
|
||||
|
||||
PhotonPipelineResult StructType::Unpack(Packet& packet) {
|
||||
return PhotonPipelineResult{PhotonPipelineResult_PhotonStruct{
|
||||
.metadata = packet.Unpack<photon::PhotonPipelineMetadata>(),
|
||||
.targets = packet.Unpack<std::vector<photon::PhotonTrackedTarget>>(),
|
||||
.multitagResult =
|
||||
packet.Unpack<std::optional<photon::MultiTargetPNPResult>>(),
|
||||
}};
|
||||
}
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include "photon/serde/PhotonTrackedTargetSerde.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
using StructType = SerdeType<PhotonTrackedTarget>;
|
||||
|
||||
void StructType::Pack(Packet& packet, const PhotonTrackedTarget& value) {
|
||||
packet.Pack<double>(value.yaw);
|
||||
packet.Pack<double>(value.pitch);
|
||||
packet.Pack<double>(value.area);
|
||||
packet.Pack<double>(value.skew);
|
||||
packet.Pack<int32_t>(value.fiducialId);
|
||||
packet.Pack<int32_t>(value.objDetectId);
|
||||
packet.Pack<float>(value.objDetectConf);
|
||||
packet.Pack<frc::Transform3d>(value.bestCameraToTarget);
|
||||
packet.Pack<frc::Transform3d>(value.altCameraToTarget);
|
||||
packet.Pack<double>(value.poseAmbiguity);
|
||||
packet.Pack<std::vector<photon::TargetCorner>>(value.minAreaRectCorners);
|
||||
packet.Pack<std::vector<photon::TargetCorner>>(value.detectedCorners);
|
||||
}
|
||||
|
||||
PhotonTrackedTarget StructType::Unpack(Packet& packet) {
|
||||
return PhotonTrackedTarget{PhotonTrackedTarget_PhotonStruct{
|
||||
.yaw = packet.Unpack<double>(),
|
||||
.pitch = packet.Unpack<double>(),
|
||||
.area = packet.Unpack<double>(),
|
||||
.skew = packet.Unpack<double>(),
|
||||
.fiducialId = packet.Unpack<int32_t>(),
|
||||
.objDetectId = packet.Unpack<int32_t>(),
|
||||
.objDetectConf = packet.Unpack<float>(),
|
||||
.bestCameraToTarget = packet.Unpack<frc::Transform3d>(),
|
||||
.altCameraToTarget = packet.Unpack<frc::Transform3d>(),
|
||||
.poseAmbiguity = packet.Unpack<double>(),
|
||||
.minAreaRectCorners = packet.Unpack<std::vector<photon::TargetCorner>>(),
|
||||
.detectedCorners = packet.Unpack<std::vector<photon::TargetCorner>>(),
|
||||
}};
|
||||
}
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include "photon/serde/PnpResultSerde.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
using StructType = SerdeType<PnpResult>;
|
||||
|
||||
void StructType::Pack(Packet& packet, const PnpResult& value) {
|
||||
packet.Pack<frc::Transform3d>(value.best);
|
||||
packet.Pack<frc::Transform3d>(value.alt);
|
||||
packet.Pack<double>(value.bestReprojErr);
|
||||
packet.Pack<double>(value.altReprojErr);
|
||||
packet.Pack<double>(value.ambiguity);
|
||||
}
|
||||
|
||||
PnpResult StructType::Unpack(Packet& packet) {
|
||||
return PnpResult{PnpResult_PhotonStruct{
|
||||
.best = packet.Unpack<frc::Transform3d>(),
|
||||
.alt = packet.Unpack<frc::Transform3d>(),
|
||||
.bestReprojErr = packet.Unpack<double>(),
|
||||
.altReprojErr = packet.Unpack<double>(),
|
||||
.ambiguity = packet.Unpack<double>(),
|
||||
}};
|
||||
}
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include "photon/serde/TargetCornerSerde.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
using StructType = SerdeType<TargetCorner>;
|
||||
|
||||
void StructType::Pack(Packet& packet, const TargetCorner& value) {
|
||||
packet.Pack<double>(value.x);
|
||||
packet.Pack<double>(value.y);
|
||||
}
|
||||
|
||||
TargetCorner StructType::Unpack(Packet& packet) {
|
||||
return TargetCorner{TargetCorner_PhotonStruct{
|
||||
.x = packet.Unpack<double>(),
|
||||
.y = packet.Unpack<double>(),
|
||||
}};
|
||||
}
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/MultiTargetPNPResult.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include "photon/targeting/PnpResult.h"
|
||||
#include <stdint.h>
|
||||
#include <vector>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<MultiTargetPNPResult> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "ffc1cb847deb6e796a583a5b1885496b";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "PnpResult estimatedPose;int16[?] fiducialIDsUsed;";
|
||||
}
|
||||
|
||||
static photon::MultiTargetPNPResult Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet,
|
||||
const photon::MultiTargetPNPResult& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::MultiTargetPNPResult>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/PhotonPipelineMetadata.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<PhotonPipelineMetadata> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "2a7039527bda14d13028a1b9282d40a2";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "int64 sequenceID;int64 captureTimestampMicros;int64 "
|
||||
"publishTimestampMicros;";
|
||||
}
|
||||
|
||||
static photon::PhotonPipelineMetadata Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet,
|
||||
const photon::PhotonPipelineMetadata& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::PhotonPipelineMetadata>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/PhotonPipelineResult.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include "photon/targeting/MultiTargetPNPResult.h"
|
||||
#include "photon/targeting/PhotonPipelineMetadata.h"
|
||||
#include "photon/targeting/PhotonTrackedTarget.h"
|
||||
#include <optional>
|
||||
#include <stdint.h>
|
||||
#include <vector>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<PhotonPipelineResult> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "cb3e1605048ba49325888eb797399fe2";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "PhotonPipelineMetadata metadata;PhotonTrackedTarget[?] "
|
||||
"targets;MultiTargetPNPResult? multitagResult;";
|
||||
}
|
||||
|
||||
static photon::PhotonPipelineResult Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet,
|
||||
const photon::PhotonPipelineResult& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::PhotonPipelineResult>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/PhotonTrackedTarget.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include "photon/targeting/TargetCorner.h"
|
||||
#include <frc/geometry/Transform3d.h>
|
||||
#include <stdint.h>
|
||||
#include <vector>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<PhotonTrackedTarget> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "8fdada56b9162f2e32bd24f0055d7b60";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "float64 yaw;float64 pitch;float64 area;float64 skew;int32 "
|
||||
"fiducialId;int32 objDetectId;float32 objDetectConf;Transform3d "
|
||||
"bestCameraToTarget;Transform3d altCameraToTarget;float64 "
|
||||
"poseAmbiguity;TargetCorner[?] minAreaRectCorners;TargetCorner[?] "
|
||||
"detectedCorners;";
|
||||
}
|
||||
|
||||
static photon::PhotonTrackedTarget Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet,
|
||||
const photon::PhotonTrackedTarget& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::PhotonTrackedTarget>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/PnpResult.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include <frc/geometry/Transform3d.h>
|
||||
#include <stdint.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<PnpResult> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "0d1f2546b00f24718e30f38d206d4491";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "Transform3d best;Transform3d alt;float64 bestReprojErr;float64 "
|
||||
"altReprojErr;float64 ambiguity;";
|
||||
}
|
||||
|
||||
static photon::PnpResult Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet, const photon::PnpResult& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::PnpResult>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/TargetCorner.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<TargetCorner> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "22b1ff7551d10215af6fb3672fe4eda8";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "float64 x;float64 y;";
|
||||
}
|
||||
|
||||
static photon::TargetCorner Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet, const photon::TargetCorner& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::TargetCorner>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "photon/targeting/PnpResult.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct MultiTargetPNPResult_PhotonStruct {
|
||||
photon::PnpResult estimatedPose;
|
||||
std::vector<int16_t> fiducialIDsUsed;
|
||||
|
||||
friend bool operator==(MultiTargetPNPResult_PhotonStruct const&,
|
||||
MultiTargetPNPResult_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct PhotonPipelineMetadata_PhotonStruct {
|
||||
int64_t sequenceID;
|
||||
int64_t captureTimestampMicros;
|
||||
int64_t publishTimestampMicros;
|
||||
|
||||
friend bool operator==(PhotonPipelineMetadata_PhotonStruct const&,
|
||||
PhotonPipelineMetadata_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
#include <optional>
|
||||
#include <vector>
|
||||
|
||||
#include "photon/targeting/MultiTargetPNPResult.h"
|
||||
#include "photon/targeting/PhotonPipelineMetadata.h"
|
||||
#include "photon/targeting/PhotonTrackedTarget.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct PhotonPipelineResult_PhotonStruct {
|
||||
photon::PhotonPipelineMetadata metadata;
|
||||
std::vector<photon::PhotonTrackedTarget> targets;
|
||||
std::optional<photon::MultiTargetPNPResult> multitagResult;
|
||||
|
||||
friend bool operator==(PhotonPipelineResult_PhotonStruct const&,
|
||||
PhotonPipelineResult_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include <frc/geometry/Transform3d.h>
|
||||
|
||||
#include "photon/targeting/TargetCorner.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct PhotonTrackedTarget_PhotonStruct {
|
||||
double yaw;
|
||||
double pitch;
|
||||
double area;
|
||||
double skew;
|
||||
int32_t fiducialId;
|
||||
int32_t objDetectId;
|
||||
float objDetectConf;
|
||||
frc::Transform3d bestCameraToTarget;
|
||||
frc::Transform3d altCameraToTarget;
|
||||
double poseAmbiguity;
|
||||
std::vector<photon::TargetCorner> minAreaRectCorners;
|
||||
std::vector<photon::TargetCorner> detectedCorners;
|
||||
|
||||
friend bool operator==(PhotonTrackedTarget_PhotonStruct const&,
|
||||
PhotonTrackedTarget_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
#include <frc/geometry/Transform3d.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct PnpResult_PhotonStruct {
|
||||
frc::Transform3d best;
|
||||
frc::Transform3d alt;
|
||||
double bestReprojErr;
|
||||
double altReprojErr;
|
||||
double ambiguity;
|
||||
|
||||
friend bool operator==(PnpResult_PhotonStruct const&,
|
||||
PnpResult_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct TargetCorner_PhotonStruct {
|
||||
double x;
|
||||
double y;
|
||||
|
||||
friend bool operator==(TargetCorner_PhotonStruct const&,
|
||||
TargetCorner_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
Reference in New Issue
Block a user