forked from jeffective/gatorcat
EtherCAT MainDevice for Zig
- Zig 99.7%
- Nix 0.3%
| doc | investigate why zenoh session is not closed | |
| src | upgrade to zig 0.16.0 | |
| test | fix flake | |
| .gitignore | fix flake | |
| build.zig | make oci build multiplatform | |
| build.zig.zon | update zbor dependency | |
| LICENSE | use Eclipse Public License 2.0 (EPL-2.0) | |
| README.md | add TODO | |
/\_/\
/ o o \ gatorcat
(_. ^ ._)=^=====^===^===^\\
~~~ //~~~~~~~\\~~~ \\
v v v
Gatorcat is an EtherCAT maindevice written in the Zig programming language.
Warning
Gatorcat is alpha software. Using it today means participating in its development. You may find bugs or need features implemented before you can use Gatorcat effectively.
Gatorcat provides the following:
- CLI: a pre-built executable for running and scanning ethercat networks.
- module: zig module for writing applications that interact with ethercat networks.
Documentation
See doc.
Notably Working Features
- automatic configuration via SII and CoE
- process data published on zenoh
- network operation and topology verification against a config file
- multi-OS support (Linux and Windows)
Notably Missing Features
- distributed clocks
- cable redundancy
- Ethernet Over EtherCAT (EoE), also AoE, FoE, SoE, VoE
- user configurable processing of CoE emergency messages
- mapping the mailbox status into the process data
- async / event loop frames, multi-threading friendly API
- linux XDP, mac-os, embedded support
- Segmented SDO transfer
- EEPROM write access
- Network diagnosis in the CLI (CRC counters etc.)
- resilient mailbox state machine
TODO
- change deserialization of embedded protocols to do zero backtracking
- tech debt
- arbitrary maximum mailbox size
- simulator should use simulated time (std.Io eventually)
- fix release script
- use oci pacakge to generate docker files
- use std.io in port
- make npcap integration suck less
- use XDP
Contributing
Please open an issue before contributing so we can discuss. PRs without an open issue will be rejected.
AI contributions will be an insta-ban.