There are several different ways to extend EVA ICS functionality, each one is preferred for certain tasks.
Tips and tricks
- put development = yes in [server] section of etc/<controller>.ini. This option automatically enables traceback logging and debug mode (don’t use on production!)
- instead of e.g. eva uc server start, run eva uc server launch to output everything to the system console.
- use debuggers and profilers. We use and recommend ipdb and ppTOP.
- don’t be surprised that the system performance is much slower, when debug mode is enabled.
- EVA ICS uses asyncio only for the internal code. All user scripts and extensions are executed in separate threads. So keep your code thread-safe.
- Invent own bus connections only if there is no virtual bus provided.
- Core plug-ins - applications and function libraries that run inside EVA ICS. This is the most advanced way to extend EVA ICS functionality: plug-ins can implement all of the above plus much and much more.
Extensions as packages