mesicat
A Python script to automate creation of supporting EtherCAT files including SSI EEPROM, EtherCATInfo XML (ESI file), and certain related source and header files for the Beckhoff slave stack code.
mesicat accepts a .mesi file (Meta ESI) containing a description of the EtherCAT CoE dictionary and other stack configuration information. Make commands in this file then trigger the creation of sane defaults, SII EEPROM, XML files, and so forth. The .mesi file is inspired by the various IDL files used in web space (e.g. protobuf) and uses a C-like syntax to reduce cognitive overhead when developing slave code.
The C source and header files are generated using the mustache template language. Additional templates may be easily added to support generation of files for a master stack or other purpose.
The goal is to automate EtherCAT compliance to the extent practicable and provide a DRY (don't repeat yourself) automated build for the required files.