无法通过pypylon启用Basler相机PTP功能的问题求助
无法通过pypylon启用Basler相机PTP功能的问题求助
我正尝试给多台Basler相机做时钟同步,参考了官方的PTP配置文档,但按照文档里的代码操作时却行不通。
下面是我写的一段独立可运行的测试代码:
from pypylon import pylon _tlf: pylon.TlFactory = pylon.TlFactory.GetInstance() devices: list[pylon.DeviceInfo] = list(filter(lambda d: d.GetModelName() == "a2A4200-12gcBAS", _tlf.EnumerateDevices())) print([d.GetFriendlyName() for d in devices]) cam_array: pylon.InstantCameraArray = pylon.InstantCameraArray(len(devices)) for device, cam in zip(devices, cam_array, strict=True): cam.Attach(_tlf.CreateDevice(device)) cam.Open() for cam in cam_array: assert cam.IsOpen() cam.PtpEnable.Value = True
这个脚本能正确识别到我的所有相机,打印出的序列号如下:
['Basler a2A4200-12gcBAS (40400219)', 'Basler a2A4200-12gcBAS (40400220)', 'Basler a2A4200-12gcBAS (40400221)', 'Basler a2A4200-12gcBAS (40400222)']
但紧接着就抛出了权限相关的错误:
Traceback (most recent call last): File "/home/samdm/Safe/0041-VFE/rt-vfe/packages/vfe_rt_plugin_basler/scripts/ptp_stackoverflow.py", line 14, in <module> cam.PtpEnable.Value = True ^^^^^^^^^^^^^^^^^^^ File "/home/samdm/Safe/0041-VFE/rt-vfe/packages/vfe_rt_plugin_basler/.venv/lib/python3.12/site-packages/pypylon/genicam.py", line 2073, in SetValue return _genicam.IBoolean_SetValue(self, Value, Verify) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _genicam.AccessException: Node is not writable. : AccessException thrown in node 'PtpEnable' while calling 'PtpEnable.SetValue()' (file 'BooleanT.h', line 61)
奇怪的是,我在Pylon Viewer里完全可以正常勾选或取消Enable Ptp这个选项,没有任何问题。
请问我是不是漏掉了某个配置步骤?
备注:内容来源于stack exchange,提问作者Sam De Meyer




