Evok

The EVOK is our Apache-licensed open-source application programming interface (API), serving for a remote access to our PLC units. It is a simple software to make the access to hardware as simple as possible without any extensive programming.

The software can be downloaded via its GitHub repository. Here, the user can also find documentation, installation instructions and a technical manu al.

Basic features

EVOK is equipped with six protocols (or unified methods) serving as a replacement of the need to write custom code - that means the user can use almost any programming language. The API itself then serves as a layer between the hardware and the EVOK web-based control interface. Resulting software is so easy to use, even an absolute beginner can use it.

EVOK gives the user an option to control basic operations via a simple web interface, such as switching I/O modules, monitoring the system state, carrying out measurements etc. For more complex operations (such as specific system / behaviour programming), the user has to use a suitable external application. Such an application would then use EVOK as a communication layer between the I/O modules and itself.

Support for TCP-Modbus interface and SysFS is also included, along with a basic Wi-Fi functionality.

Simplified EVOK scheme

Protocols used

REST is a type of API design, which is based on endpoint operations in accordance with the HTTP specification. The WebForm interface provides native web-based access to our API, based on the same communication principle as plain HTML forms.

Bulk JSON protocol is designed to send a series of commands at once, achieving much lower latency than using separate TCP connections. Without the use of this protocol, sending e.g. 20 commands -each with 25 millisecond latency- would take up to 0.5 s. That would make the device unsuitable for use in time-critical applications, such as for lighting switches. With the bulk protocol however, the user can send a large series of commands such as this, with total latency (for the example given) not exceeding 30 milliseconds.

REST JSON is very similar to REST WebForms. The difference is that it uses the JSON (JavaScript Object Notation) file format, which transmits attribute-value pairs, along with array certain array data types, in the form of JavaScripts data objects. This makes is much easier to process in JavaScript.

SOAP (Simple Object Access Protocol) is a protocol based on XML, which utilises a pre-defined access interface called WSDL, making it simpler to parse and allowing easier integration of EVOK into existing systems.

WebSocket is an independent communication protocol, which allows creating a full-duplex (i.e. two-way, simultaneous data transfer) communication over a standard TCP connection. It can be used in machine-to-user as well as machine-to-machine applications.

JSON-RPC is a designation for protocol which uses JSON objects to remotely invoke scripting functions. This allows the integration of remote functions, without the need to create transport objects.

Full EVOK technical scheme