Extending HOWTO

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.

I/O

Logic

Plug-ins

  • 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

See Packages