Skip to content

Server, hosting process variables for point-to-point communications

License

Notifications You must be signed in to change notification settings

ASukhanov/P2Plant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

P2Plant

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.

Integration with EPICS PVAccess

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.

Usage

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().

Dependency

TinyCBOR

Build

make

Example

Run simulated 8-channel ADC:
bin/simulatedADCs

For access and control see: P2PlantAcces and p2plant_ioc.

Future development

  • 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.

About

Server, hosting process variables for point-to-point communications

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published