Re-implementation of rustbootd's ecat_el6695_* examples as a single binary with fixes found in review and on hardware: - DC-follow PLL hardened against period-2 hunting: slew-limited anchor (+/-50us/cycle), bistable-trap snap re-anchor, re-prime on stale deadline - drift-free absolute-grid ticker mode; probe mode for timestamp forensics - bounded-memory online stats (histograms), graceful SIGINT/SIGTERM shutdown with full report, error-streak abort - timestamp plausibility filter comparing against the previous raw sample (avoids the deadlock after a startup outlier) - XFC scope waveform options: --el2202 (with --el2202-dual), --el2262, --el1252 latch timestamp readback with per-channel edge statistics - register access unified in regs.rs: named bit constants everywhere, read-modify-write for enable/activation bytes - vendored patched ethercrab 0.7.1 (sdo_write_complete, send_raw_coe) Verified on J1900 (PREEMPT_RT 6.6.135): 600k cycles/600s exact 1 kHz, tx/rx zero errors, phase_err p50=164us std=5us; EL2202<->EL1252 loopback edge interval mean 2000.24us std=24.65us.
1.6 KiB
FAQ
This is a draft/living document and will be rough in places as it is currently just used to note down common stub questions. It will be added to over time as more questions come in.
How do I list available network interfaces?
Linux
ip a
macOS
networksetup -listallhardwareports
Example output:
❯ networksetup -listallhardwareports
Hardware Port: Ethernet Adapter (en3)
Device: en3
Ethernet Address: 76:0d:c4:5d:0c:e6
Use en3 as command line arguments to run examples, etc.
Windows
getmac????
TODO
Jeff says maybe getmac /fo csv /v
or:
Get-NetAdapter -Name * -IncludeHidden | Format-List -Property *
Select-Object Name, InterfaceGuid
Does EtherCrab work on Windows?
Yes, but performance is not very good unlike Linux and to a large extend macOS, which can both do realtime transfers.
Windows performance is potentially improved by
xdp-for-windows, but EtherCrab doesn't have
support for it at time of writing.
Does EtherCrab support ESI XML files?
Not yet. This is an often requested feature, but needs some thought into how the ESI file can
integrate into a safe API for SubDevices. This may be a derive macro, build.rs codegen, or
something else.
Why won't my SubDevice go into OP?
TODO: Maybe this should be a separate "troubleshooting" doc?
- SDOs might not be configured correctly
- Some SubDevices need cyclic data before they'll go into op. Try
request_into_oplike in thedc.rsexample instead ofinto_opand see if that helps.