There are several different ways to extend EVA ICS functionality, each one is preferred for certain tasks.
Tips and tricks
put development: true in server field of config/<controller>/main registry key. 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