WLR722 frame start (azimuth)
Recovered from the existing ai-deck/wlr722-cadence/plugin driver; namespace,
type name and assembly identity remain DetourLitePlugin.WLR722Lidar, WLR722Plugin.
Install one copy of WLR722Plugin.dll in Detour's plugins directory; remove
duplicate copies of this assembly under other names before restarting.
startingOffset: raw increasing encoder degrees, default 0; negative and multi-turn values normalize modulo 360. It is not a mounting yaw, mirror, per-beam calibration or a device configuration command.- With
usePtpFrames=false, split at that angle. For physically phase-locked sensors at 0/180 degrees, select the corresponding 0/180 cuts. The block crossing the cut belongs to the new scan, with progression starting at zero. Point coordinates and packet timestamps are not shifted. Startup and setting changes wait for a complete revolution; ambiguous backwards jumps reset framing. - With
usePtpFrames=true, existing common timestamp windows stay unchanged;startingOffsetis deliberately ignored. This is the mode required by AggregateLidar'srequireSynchronizedFrames=trueexact-epoch matcher. Angular framing alone does not create PTP lock or exact shared epoch metadata. - M2:
LidarController.init("WLR722", []), setlidarIp,localPort,startingOffset, then callStart(). Set fields before starting each sensor; use distinct local UDP ports. Its existing shared-memory format remains unchanged (scan counter and polar points, no PTP epoch fields). Do not treat that legacy transport as exact-epoch synchronized Detour input.
WLR722Shared/*.cs in M2 LidarController is a byte-identical vendored copy of
these six C# files, compiled with WLR722_MEDULLA. Keep the copies in sync.
Build WLR722Plugin after the matching DetourCore/DetourDance Release assemblies.
Release: WLR722Plugin 1.0.5-azimuth, M2 LidarController 0.5.5-azimuth.
The released Detour plugin targets the existing epoch ABI: DetourCore 1.7.31 /
DetourDance 1.0.8 or newer (DetourLite 0.3.44-epoch and later). The TX's existing
swift host is newer than this baseline. Older public DetourLite 0.3.41 lacks this
contract; do not install this plugin on that host. No host upgrade is included.
Release builds set DetourReferenceDir to a directory containing the baseline
DetourCore/bin/Release/net8.0 and DetourDance/bin/Release/net8.0 assemblies,
statically extracted from the saved real epoch deployment's DetourLite.dll.
Compilation only: TX powered off; physical dual-lidar synchronization is not
validated. No hardware settings, running cart processes or timestamps changed.