Package org.photonvision.targeting
Class PhotonPipelineResult
java.lang.Object
org.photonvision.targeting.PhotonPipelineResult
- All Implemented Interfaces:
ProtobufSerializable
,WPISerializable
,PhotonStructSerializable<PhotonPipelineResult>
public class PhotonPipelineResult
extends Object
implements ProtobufSerializable, PhotonStructSerializable<PhotonPipelineResult>
Represents a pipeline result from a PhotonCamera.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final PhotonPipelineResultSerde
static final PhotonPipelineResultProto
-
Constructor Summary
ConstructorDescriptionConstructs an empty pipeline result.PhotonPipelineResult
(long sequenceID, long captureTimestampMicros, long publishTimestampMicros, long timeSinceLastPong, List<PhotonTrackedTarget> targets) Constructs a pipeline result.PhotonPipelineResult
(long sequenceID, long captureTimestamp, long publishTimestamp, long timeSinceLastPong, List<PhotonTrackedTarget> targets, Optional<MultiTargetPNPResult> result) Constructs a pipeline result.PhotonPipelineResult
(PhotonPipelineMetadata metadata, List<PhotonTrackedTarget> targets, Optional<MultiTargetPNPResult> result) -
Method Summary
Modifier and TypeMethodDescriptionboolean
Returns the best target in this pipeline result.Return the latest multi-target result.int
Returns the size of the packet needed to store this pipeline result.getSerde()
Returns a copy of the vector of targets.double
Returns the estimated time the frame was taken, in the Time Sync Server's time base (nt::Now).int
hashCode()
boolean
Returns whether the pipeline has targets.toString()
-
Field Details
-
metadata
-
targets
-
multitagResult
-
photonStruct
-
proto
-
-
Constructor Details
-
PhotonPipelineResult
public PhotonPipelineResult()Constructs an empty pipeline result. -
PhotonPipelineResult
public PhotonPipelineResult(long sequenceID, long captureTimestampMicros, long publishTimestampMicros, long timeSinceLastPong, List<PhotonTrackedTarget> targets) Constructs a pipeline result.- Parameters:
sequenceID
- The number of frames processed by this camera since bootcaptureTimestampMicros
- The time, in uS in the coprocessor's timebase, that the coprocessor captured the image this result contains the targeting info ofpublishTimestampMicros
- The time, in uS in the coprocessor's timebase, that the coprocessor published targeting infotargets
- The list of targets identified by the pipeline.
-
PhotonPipelineResult
public PhotonPipelineResult(long sequenceID, long captureTimestamp, long publishTimestamp, long timeSinceLastPong, List<PhotonTrackedTarget> targets, Optional<MultiTargetPNPResult> result) Constructs a pipeline result.- Parameters:
sequenceID
- The number of frames processed by this camera since bootcaptureTimestamp
- The time, in uS in the coprocessor's timebase, that the coprocessor captured the image this result contains the targeting info ofpublishTimestamp
- The time, in uS in the coprocessor's timebase, that the coprocessor published targeting infotargets
- The list of targets identified by the pipeline.result
- Result from multi-target PNP.
-
PhotonPipelineResult
public PhotonPipelineResult(PhotonPipelineMetadata metadata, List<PhotonTrackedTarget> targets, Optional<MultiTargetPNPResult> result)
-
-
Method Details
-
getPacketSize
public int getPacketSize()Returns the size of the packet needed to store this pipeline result.- Returns:
- The size of the packet needed to store this pipeline result.
-
getBestTarget
Returns the best target in this pipeline result. If there are no targets, this method will return null. The best target is determined by the target sort mode in the PhotonVision UI.- Returns:
- The best target of the pipeline result.
-
hasTargets
public boolean hasTargets()Returns whether the pipeline has targets.- Returns:
- Whether the pipeline has targets.
-
getTargets
Returns a copy of the vector of targets.Returned in the order set by target sort mode.
- Returns:
- A copy of the vector of targets.
-
getMultiTagResult
Return the latest multi-target result. Be sure to check getMultiTagResult().estimatedPose.isPresent before using the pose estimate! -
getTimestampSeconds
public double getTimestampSeconds()Returns the estimated time the frame was taken, in the Time Sync Server's time base (nt::Now). This is calculated using the estiamted offset between Time Sync Server time and local time. The robot shall run a server, so the offset shall be 0.- Returns:
- The timestamp in seconds
-
toString
-
hashCode
public int hashCode() -
equals
-
getSerde
- Specified by:
getSerde
in interfacePhotonStructSerializable<PhotonPipelineResult>
-