photonlibpy 2025.0.0b7__py3-none-any.whl → 2025.1.1rc1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
photonlibpy/__init__.py CHANGED
@@ -1,19 +1,26 @@
1
- ###############################################################################
2
- ## Copyright (C) Photon Vision.
3
- ###############################################################################
4
- ## This program is free software: you can redistribute it and/or modify
5
- ## it under the terms of the GNU General Public License as published by
6
- ## the Free Software Foundation, either version 3 of the License, or
7
- ## (at your option) any later version.
8
- ##
9
- ## This program is distributed in the hope that it will be useful,
10
- ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- ## GNU General Public License for more details.
13
- ##
14
- ## You should have received a copy of the GNU General Public License
15
- ## along with this program. If not, see <https://www.gnu.org/licenses/>.
16
- ###############################################################################
1
+ #
2
+ # MIT License
3
+ #
4
+ # Copyright (c) PhotonVision
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ #
17
24
 
18
25
  from .estimatedRobotPose import EstimatedRobotPose # noqa
19
26
  from .packet import Packet # noqa
@@ -1,19 +1,26 @@
1
- ###############################################################################
2
- ## Copyright (C) Photon Vision.
3
- ###############################################################################
4
- ## This program is free software: you can redistribute it and/or modify
5
- ## it under the terms of the GNU General Public License as published by
6
- ## the Free Software Foundation, either version 3 of the License, or
7
- ## (at your option) any later version.
8
- ##
9
- ## This program is distributed in the hope that it will be useful,
10
- ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- ## GNU General Public License for more details.
13
- ##
14
- ## You should have received a copy of the GNU General Public License
15
- ## along with this program. If not, see <https://www.gnu.org/licenses/>.
16
- ###############################################################################
1
+ #
2
+ # MIT License
3
+ #
4
+ # Copyright (c) PhotonVision
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ #
17
24
 
18
25
  ###############################################################################
19
26
  ## THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py.
@@ -1,19 +1,26 @@
1
- ###############################################################################
2
- ## Copyright (C) Photon Vision.
3
- ###############################################################################
4
- ## This program is free software: you can redistribute it and/or modify
5
- ## it under the terms of the GNU General Public License as published by
6
- ## the Free Software Foundation, either version 3 of the License, or
7
- ## (at your option) any later version.
8
- ##
9
- ## This program is distributed in the hope that it will be useful,
10
- ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- ## GNU General Public License for more details.
13
- ##
14
- ## You should have received a copy of the GNU General Public License
15
- ## along with this program. If not, see <https://www.gnu.org/licenses/>.
16
- ###############################################################################
1
+ #
2
+ # MIT License
3
+ #
4
+ # Copyright (c) PhotonVision
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ #
17
24
 
18
25
  ###############################################################################
19
26
  ## THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py.
@@ -1,19 +1,26 @@
1
- ###############################################################################
2
- ## Copyright (C) Photon Vision.
3
- ###############################################################################
4
- ## This program is free software: you can redistribute it and/or modify
5
- ## it under the terms of the GNU General Public License as published by
6
- ## the Free Software Foundation, either version 3 of the License, or
7
- ## (at your option) any later version.
8
- ##
9
- ## This program is distributed in the hope that it will be useful,
10
- ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- ## GNU General Public License for more details.
13
- ##
14
- ## You should have received a copy of the GNU General Public License
15
- ## along with this program. If not, see <https://www.gnu.org/licenses/>.
16
- ###############################################################################
1
+ #
2
+ # MIT License
3
+ #
4
+ # Copyright (c) PhotonVision
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ #
17
24
 
18
25
  ###############################################################################
19
26
  ## THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py.
@@ -1,19 +1,26 @@
1
- ###############################################################################
2
- ## Copyright (C) Photon Vision.
3
- ###############################################################################
4
- ## This program is free software: you can redistribute it and/or modify
5
- ## it under the terms of the GNU General Public License as published by
6
- ## the Free Software Foundation, either version 3 of the License, or
7
- ## (at your option) any later version.
8
- ##
9
- ## This program is distributed in the hope that it will be useful,
10
- ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- ## GNU General Public License for more details.
13
- ##
14
- ## You should have received a copy of the GNU General Public License
15
- ## along with this program. If not, see <https://www.gnu.org/licenses/>.
16
- ###############################################################################
1
+ #
2
+ # MIT License
3
+ #
4
+ # Copyright (c) PhotonVision
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ #
17
24
 
18
25
  ###############################################################################
19
26
  ## THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py.
@@ -1,19 +1,26 @@
1
- ###############################################################################
2
- ## Copyright (C) Photon Vision.
3
- ###############################################################################
4
- ## This program is free software: you can redistribute it and/or modify
5
- ## it under the terms of the GNU General Public License as published by
6
- ## the Free Software Foundation, either version 3 of the License, or
7
- ## (at your option) any later version.
8
- ##
9
- ## This program is distributed in the hope that it will be useful,
10
- ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- ## GNU General Public License for more details.
13
- ##
14
- ## You should have received a copy of the GNU General Public License
15
- ## along with this program. If not, see <https://www.gnu.org/licenses/>.
16
- ###############################################################################
1
+ #
2
+ # MIT License
3
+ #
4
+ # Copyright (c) PhotonVision
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ #
17
24
 
18
25
  ###############################################################################
19
26
  ## THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py.
@@ -1,19 +1,26 @@
1
- ###############################################################################
2
- ## Copyright (C) Photon Vision.
3
- ###############################################################################
4
- ## This program is free software: you can redistribute it and/or modify
5
- ## it under the terms of the GNU General Public License as published by
6
- ## the Free Software Foundation, either version 3 of the License, or
7
- ## (at your option) any later version.
8
- ##
9
- ## This program is distributed in the hope that it will be useful,
10
- ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- ## GNU General Public License for more details.
13
- ##
14
- ## You should have received a copy of the GNU General Public License
15
- ## along with this program. If not, see <https://www.gnu.org/licenses/>.
16
- ###############################################################################
1
+ #
2
+ # MIT License
3
+ #
4
+ # Copyright (c) PhotonVision
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ #
17
24
 
18
25
  ###############################################################################
19
26
  ## THIS FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py.
@@ -27,6 +27,7 @@ from wpilib import RobotController, Timer
27
27
 
28
28
  from .packet import Packet
29
29
  from .targeting.photonPipelineResult import PhotonPipelineResult
30
+ from .timesync.timeSyncServer import inst
30
31
  from .version import PHOTONLIB_VERSION # type: ignore[import-untyped]
31
32
 
32
33
 
@@ -104,6 +105,9 @@ class PhotonCamera:
104
105
  self._prevHeartbeat = 0
105
106
  self._prevHeartbeatChangeTime = Timer.getFPGATimestamp()
106
107
 
108
+ # Start the time sync server
109
+ inst.start()
110
+
107
111
  def getAllUnreadResults(self) -> List[PhotonPipelineResult]:
108
112
  """
109
113
  The list of pipeline results sent by PhotonVision since the last call to getAllUnreadResults().
@@ -36,6 +36,9 @@ class PhotonCameraSim:
36
36
  self,
37
37
  camera: PhotonCamera,
38
38
  props: SimCameraProperties = SimCameraProperties.PERFECT_90DEG(),
39
+ tagLayout: AprilTagFieldLayout = AprilTagFieldLayout.loadField(
40
+ AprilTagField.kDefaultField
41
+ ),
39
42
  minTargetAreaPercent: float | None = None,
40
43
  maxSightRange: meters | None = None,
41
44
  ):
@@ -64,7 +67,7 @@ class PhotonCameraSim:
64
67
  self.videoSimProcEnabled: bool = False
65
68
  self.heartbeatCounter: int = 0
66
69
  self.nextNtEntryTime = wpilib.Timer.getFPGATimestamp()
67
- self.tagLayout = AprilTagFieldLayout.loadField(AprilTagField.k2024Crescendo)
70
+ self.tagLayout = tagLayout
68
71
 
69
72
  self.cam = camera
70
73
  self.prop = props
@@ -420,9 +423,9 @@ class PhotonCameraSim:
420
423
  now_micros = wpilib.Timer.getFPGATimestamp() * 1e6
421
424
  return PhotonPipelineResult(
422
425
  metadata=PhotonPipelineMetadata(
423
- self.heartbeatCounter,
424
426
  int(now_micros - latency * 1e6),
425
427
  int(now_micros),
428
+ self.heartbeatCounter,
426
429
  # Pretend like we heard a pong recently
427
430
  int(np.random.uniform(950, 1050)),
428
431
  ),
@@ -0,0 +1 @@
1
+ # no one but us chickens
@@ -0,0 +1,94 @@
1
+ import logging
2
+ import socket
3
+ import struct
4
+ import threading
5
+ from typing import Callable, Optional
6
+
7
+ from wpilib import Timer
8
+
9
+
10
+ class TspPing:
11
+ def __init__(self, version: int, message_id: int, client_time: int):
12
+ self.version = version
13
+ self.message_id = message_id
14
+ self.client_time = client_time
15
+
16
+ @staticmethod
17
+ def unpack(data: bytes) -> "TspPing":
18
+ # Unpack using struct.unpack
19
+ version, message_id, client_time = struct.unpack("<BBQ", data)
20
+ return TspPing(version, message_id, client_time)
21
+
22
+ def pack(self) -> bytes:
23
+ # Pack using struct.pack
24
+ return struct.pack("<BBQ", self.version, self.message_id, self.client_time)
25
+
26
+
27
+ class TspPong:
28
+ def __init__(self, ping: "TspPing", server_time: int):
29
+ self.version = ping.version
30
+ self.message_id = 2 # Pong message ID
31
+ self.client_time = ping.client_time
32
+ self.server_time = server_time
33
+
34
+ def pack(self) -> bytes:
35
+ # Pack using struct.pack
36
+ return struct.pack(
37
+ "<BBQQ", self.version, self.message_id, self.client_time, self.server_time
38
+ )
39
+
40
+ @staticmethod
41
+ def unpack(data: bytes) -> "TspPong":
42
+ # Unpack using struct.unpack
43
+ version, message_id, client_time, server_time = struct.unpack("<BBQQ", data)
44
+ ping = TspPing(version, message_id, client_time)
45
+ return TspPong(ping, server_time)
46
+
47
+
48
+ class TimeSyncServer:
49
+ """This class is a python re-write of the UDP time sync server protocol
50
+ which runs on a roboRIO to establish a timebase for all PhotonVision coprocessors.
51
+ """
52
+
53
+ PORT = 5810
54
+
55
+ def __init__(self, time_provider: Optional[Callable[[], int]] = None):
56
+ self.time_provider = time_provider or Timer.getFPGATimestamp
57
+ self._process: Optional[threading.Thread] = None
58
+ self.logger = logging.getLogger("PhotonVision-TimeSyncServer")
59
+
60
+ def _udp_server(self):
61
+ with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as udp_socket:
62
+ udp_socket.bind(("0.0.0.0", self.PORT))
63
+ while True:
64
+ data, addr = udp_socket.recvfrom(1024) # Buffer size of 1024 bytes
65
+
66
+ if len(data) < 10:
67
+ self.logger.error("Too few bytes")
68
+ continue # Ignore incomplete packets
69
+
70
+ ping = TspPing.unpack(data)
71
+ if ping.version != 1 or ping.message_id != 1:
72
+ self.logger.error("Invalid Version/ID")
73
+ continue # Ignore invalid pings
74
+
75
+ server_time = int(self.time_provider() * 1e6) # Convert to microseconds
76
+ pong = TspPong(ping, server_time)
77
+ udp_socket.sendto(pong.pack(), addr)
78
+
79
+ def start(self):
80
+ if self._process is not None and self._process.is_alive():
81
+ return # Nothing to do
82
+
83
+ self._process = threading.Thread(target=self._udp_server, daemon=True)
84
+ self._process.start()
85
+ self.logger.info("Server Started")
86
+
87
+ def stop(self):
88
+ if self._process is not None:
89
+ self._process.join()
90
+ self._process = None
91
+ self.logger.info("Server Stopped")
92
+
93
+
94
+ inst = TimeSyncServer()
photonlibpy/version.py CHANGED
@@ -1,2 +1,2 @@
1
- PHOTONLIB_VERSION="v2025.0.0.beta.7"
2
- PHOTONVISION_VERSION="v2025.0.0-beta-7"
1
+ PHOTONLIB_VERSION="2025.1.1-rc1"
2
+ PHOTONVISION_VERSION="v2025.1.1-rc1"
@@ -1,16 +1,17 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: photonlibpy
3
- Version: 2025.0.0b7
4
- Summary: Pure-python implementation of PhotonLib for interfacing with PhotonVision on coprocessors. Implemented with PhotonVision version v2025.0.0-beta-7 .
3
+ Version: 2025.1.1rc1
4
+ Summary: Pure-python implementation of PhotonLib for interfacing with PhotonVision on coprocessors. Implemented with PhotonVision version v2025.1.1-rc1 .
5
5
  Home-page: https://photonvision.org
6
6
  Author: Photonvision Development Team
7
+ Classifier: License :: OSI Approved :: MIT License
7
8
  Description-Content-Type: text/markdown
8
9
  Requires-Dist: numpy~=2.1
9
- Requires-Dist: wpilib<2026,>=2025.0.0b1
10
- Requires-Dist: robotpy-wpimath<2026,>=2025.0.0b1
11
- Requires-Dist: robotpy-apriltag<2026,>=2025.0.0b1
12
- Requires-Dist: robotpy-cscore<2026,>=2025.0.0b1
13
- Requires-Dist: pyntcore<2026,>=2025.0.0b1
10
+ Requires-Dist: wpilib<2026,>=2025.2.1
11
+ Requires-Dist: robotpy-wpimath<2026,>=2025.2.1
12
+ Requires-Dist: robotpy-apriltag<2026,>=2025.2.1
13
+ Requires-Dist: robotpy-cscore<2026,>=2025.2.1
14
+ Requires-Dist: pyntcore<2026,>=2025.2.1
14
15
  Requires-Dist: opencv-python; platform_machine != "roborio"
15
16
 
16
17
  A Pure-python implementation of PhotonLib
@@ -1,27 +1,27 @@
1
- photonlibpy/__init__.py,sha256=WW1OGrrcNXwwxaHSZlkxmhH2GYiQIHHxSxGVTJZhZbY,1136
1
+ photonlibpy/__init__.py,sha256=ifUZvAcLYVQ-8jkoX_LEt9_SUZA4R8xoLoJwYdBEFQA,1323
2
2
  photonlibpy/estimatedRobotPose.py,sha256=X7wF9xdPXGKSVy0MY0qrWZJOEbuZPd721lYp0KXKlP0,1603
3
3
  photonlibpy/packet.py,sha256=5YomViVFwOljL2FGOetWM9FbPc_yCQ15ylzkYlgLIs8,9724
4
- photonlibpy/photonCamera.py,sha256=ENBHp959it4aLnFtV66rHoAIYCvK4bTflZMrGSCwnZ8,12905
4
+ photonlibpy/photonCamera.py,sha256=r5dH2S4ZcwiBDrpK58aHULrifIA0Tqr4iJp94My75A0,13006
5
5
  photonlibpy/photonPoseEstimator.py,sha256=2iMqxPFsQHTsq95yv-WCSv1a6wXNcHPqOyMc4Bu6IG0,12584
6
6
  photonlibpy/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
7
- photonlibpy/version.py,sha256=BYilKcVVr0-QNCDokqtB4odE1QfHYAG5R7_A_PA2O-I,77
7
+ photonlibpy/version.py,sha256=tyUYpBan4_cvNHlGx5PGKHfJS45JvnhQGXJKzL9g77U,70
8
8
  photonlibpy/estimation/__init__.py,sha256=pZ-d6fN1DJvT-lRl4FfIos5HAvlzmetIOrGIinrdv7k,223
9
9
  photonlibpy/estimation/cameraTargetRelation.py,sha256=i7DPBXtkZve4ToXQscEIe-5F1oGQ1Qmf5QBaE__EeMQ,1158
10
10
  photonlibpy/estimation/openCVHelp.py,sha256=O1dV7v7RHSyw7l5L0QXbal6t9K7iyvEG76tG-t4AFVg,12388
11
11
  photonlibpy/estimation/rotTrlTransform3d.py,sha256=oRYk4V1XF7guNxefJsCPcBWPIkKZl0HYD_Gs86wwToE,2671
12
12
  photonlibpy/estimation/targetModel.py,sha256=fIhkf0-_Sfv-KhYEBnhFWMF4Xu84FfF6B-KUEsuuGjQ,6459
13
13
  photonlibpy/estimation/visionEstimation.py,sha256=Q4KWdLCV1H0wJUJCzG7OYNhVmk2jR1iPUmX_PFylLdA,4174
14
- photonlibpy/generated/MultiTargetPNPResultSerde.py,sha256=CzsCosHUnzxAoSC_sSAqpsXsDp54KW-BClnIXdzfMPc,2506
15
- photonlibpy/generated/PhotonPipelineMetadataSerde.py,sha256=9pq5XUEDEoRowCd7sRnuGV7xtugu5HZCRrnwqZG2xXc,2887
16
- photonlibpy/generated/PhotonPipelineResultSerde.py,sha256=8_YhW1icdhPOx5eAqwKadvnR29NABmhHr6ERAWK8wEo,3115
17
- photonlibpy/generated/PhotonTrackedTargetSerde.py,sha256=-6vKir_ABDVBGbg8ktM48IKm_nBMFBbiyuZLiO_fP9U,4437
18
- photonlibpy/generated/PnpResultSerde.py,sha256=YoTKdQ51oSdxC-7Poy6hunL0-zkMKvP5uedqaHWPudY,2693
19
- photonlibpy/generated/TargetCornerSerde.py,sha256=kziD_rQIwyhzPfgOaDgn-3d87tvtXiAYbBjzu76biYU,2190
14
+ photonlibpy/generated/MultiTargetPNPResultSerde.py,sha256=GH31IKMyHglymJ5phA2I-xJW3QmI9jEv-hmql6r6RoU,2693
15
+ photonlibpy/generated/PhotonPipelineMetadataSerde.py,sha256=RjYLPVE_Od-N2LfeI0_5wvtYKCAjOhArsNSZOcQShmY,3074
16
+ photonlibpy/generated/PhotonPipelineResultSerde.py,sha256=4TrLO8a61eLSfT_cux3Y4AAgjhDoGOiRCfyBLTL6mBg,3302
17
+ photonlibpy/generated/PhotonTrackedTargetSerde.py,sha256=vTuugrX6EzegQYOBspa5i0YAWXvru4NxaBlNkjmnEz0,4624
18
+ photonlibpy/generated/PnpResultSerde.py,sha256=YHKEGaTHNRvd0NMIpw-cO3hOuSqXnkPxmSi3v3nr5OE,2880
19
+ photonlibpy/generated/TargetCornerSerde.py,sha256=FJ6rPTGlwpp6ORUYU-y09xaZxBFlV1o1pft2uVHJMKQ,2377
20
20
  photonlibpy/generated/__init__.py,sha256=mElM8M88---wxTWO-SRqIJ4EfxN0fdIUwZBZ-UIGuRw,428
21
21
  photonlibpy/networktables/NTTopicSet.py,sha256=29wPgXcuqT-u72-YXwSjRHWhECNzU8eDsexcqlA8KQ0,2967
22
22
  photonlibpy/networktables/__init__.py,sha256=o_LxTdyIylAszMy_zhUtTkXHyu6jqxccccj78d44OrI,35
23
23
  photonlibpy/simulation/__init__.py,sha256=HKJV02of5d8bOnuI7syLzSYtOYge7XUrHSaLvawh99M,227
24
- photonlibpy/simulation/photonCameraSim.py,sha256=8ELLcOXUtDftV_OYzGG03wigANimJs2SehV-fluWy3k,19907
24
+ photonlibpy/simulation/photonCameraSim.py,sha256=K4NW9kvyPFtjqvank11YDOdxTQrJzx0OuzTY9oIMUDI,19980
25
25
  photonlibpy/simulation/simCameraProperties.py,sha256=ODVxnylF8zw9HZSbw0PzG_OEtUo9ChRo-G_iEgADOCg,27195
26
26
  photonlibpy/simulation/videoSimUtil.py,sha256=xMuTvJ2Jx9IoQqmAJi_zUm06MdEwhVpIz9OyzYQp0k4,29
27
27
  photonlibpy/simulation/visionSystemSim.py,sha256=GmKs0d32WE8B020YEWnj-0dQuCnVv1ScGdcFl1fOsKo,13835
@@ -31,7 +31,9 @@ photonlibpy/targeting/__init__.py,sha256=YzINSpq6A0cjr-yAQcFqHoiYdLGKPFXThlVYlMj
31
31
  photonlibpy/targeting/multiTargetPNPResult.py,sha256=Y9rweHtMzoCZ6mv6F8CutQi2Thq5pHN0ydBWvTCsOwY,806
32
32
  photonlibpy/targeting/photonPipelineResult.py,sha256=MbaSyHZTJpoKTtLOZztpSGSt9xWWFqhzgwj8medObVA,2732
33
33
  photonlibpy/targeting/photonTrackedTarget.py,sha256=zCoFp32hX-3GmBYEmsYBQieBoMzXtP2F_55_q0zPOXA,1956
34
- photonlibpy-2025.0.0b7.dist-info/METADATA,sha256=1_kdzX3qorgdxPyPEFtZa2ZbKddOjmQbCC4A91OKNes,689
35
- photonlibpy-2025.0.0b7.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
36
- photonlibpy-2025.0.0b7.dist-info/top_level.txt,sha256=T8Xc6U6he2VjKUAca6zawSkHdUZuLanxYIc4nxw2ctc,12
37
- photonlibpy-2025.0.0b7.dist-info/RECORD,,
34
+ photonlibpy/timesync/__init__.py,sha256=pECFraHRZC2Dl4x4OrmhW8oWkawP68pCb-Y61dZycJs,25
35
+ photonlibpy/timesync/timeSyncServer.py,sha256=0d76uHBS_Jo3etvougdZHapbRrbb31iu-jlf8h9U_QQ,3194
36
+ photonlibpy-2025.1.1rc1.dist-info/METADATA,sha256=J1d0FBeAZbSIM2Ved4wARwcHSM86ViiAEPelPi06_x0,728
37
+ photonlibpy-2025.1.1rc1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
38
+ photonlibpy-2025.1.1rc1.dist-info/top_level.txt,sha256=T8Xc6U6he2VjKUAca6zawSkHdUZuLanxYIc4nxw2ctc,12
39
+ photonlibpy-2025.1.1rc1.dist-info/RECORD,,