forked from jeffective/gatorcat
EtherCAT MainDevice for Zig
- Zig 100%
| doc | investigate why zenoh session is not closed | |
| src | cleanup assertions | |
| test | new maindevice state transition api | |
| .gitignore | release v0.4.9 | |
| build.zig | restore windows build | |
| build.zig.zon | release v0.4.10 | |
| LICENSE | use Eclipse Public License 2.0 (EPL-2.0) | |
| README.md | new maindevice state transition api | |
/\_/\
/ 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
- remove external dependency for CLI parsing
- arbitrary maximum mailbox size
- simulator should use simulated time (std.Io eventually)
Contributing
Please open an issue before contributing so we can discuss. PRs without an open issue will be rejected.