Server, which hosts adn posts process variables for point-to-point communications with a client.
It simplifies development of hardware support for control systems like EPICS.
The client access the process variables using get, set and info requests. Multiple requests can be executed in one transaction.
Varying process variables are streamed continuously.
Communication link between server and client is point-to-point IPC. (Support for UDP, TCPIP and serial point-to-point links will be added in near future).
Data are encoded using widely used Concise Binary Object Representation (CBOR) interface: tinycbor.
The client API for python clients is identical to json API.
For maximum efficiency, the vector variables are encoded as typed arrays, no copy operation involved.
Multi-dimensional vectors are supported.
Any P2Plant-based device could be bridged to EPICS PVAccess ecosystem using p2plant_ioc softIocPVA. It recognizes all features of P2Plant process variables and posts them as EPICS PVs.
See tests/simulatedADCs.cpp.
- During initialization phase (plant_init()) the process variables should be defined, initialized and their pointers placed in a PVs array.
- During main loop, the continuously measured parameters need to be updated, timestamped and streamed out by calling deliver_measurements().
make
Run simulated 8-channel ADC:
bin/simulatedADCs
For access and control see: P2PlantAcces and p2plant_ioc.
- Support point-to-point serial link betveen server and client. It is useful for microcontroller based clients.
- Support point-to-point ethernet UDP and TCP links between server and client.