Add photonlibpy (#1040)

* Added a pure-python implementation of photonlib, named photonlibpy and hosted on pypi

---------

Co-authored-by: Matt <matthew.morley.ca@gmail.com>
This commit is contained in:
Chris Gerth
2023-12-16 12:32:49 -06:00
committed by GitHub
parent 2e39549771
commit 47aea29b6b
12 changed files with 899 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
from dataclasses import dataclass, field
from photonlibpy.multiTargetPNPResult import MultiTargetPNPResult
from photonlibpy.packet import Packet
from photonlibpy.photonTrackedTarget import PhotonTrackedTarget
@dataclass
class PhotonPipelineResult:
latencyMillis: float = -1.0
timestampSec: float = -1.0
targets: list[PhotonTrackedTarget] = field(default_factory=list)
multiTagResult: MultiTargetPNPResult = field(default_factory=MultiTargetPNPResult)
def populateFromPacket(self, packet: Packet) -> Packet:
self.targets = []
self.latencyMillis = packet.decodeDouble()
self.multiTagResult = MultiTargetPNPResult()
self.multiTagResult.createFromPacket(packet)
targetCount = packet.decode8()
for _ in range(targetCount):
target = PhotonTrackedTarget()
target.createFromPacket(packet)
self.targets.append(target)
return packet
def setTimestampSeconds(self, timestampSec: float) -> None:
self.timestampSec = timestampSec
def getLatencyMillis(self) -> float:
return self.latencyMillis
def getTimestamp(self) -> float:
return self.timestampSec
def getTargets(self) -> list[PhotonTrackedTarget]:
return self.targets