pydnp3 icon indicating copy to clipboard operation
pydnp3 copied to clipboard

Python bindings for opendnp3 libary

pydnp3

Python bindings for the opendnp3 library, an open source implementation of the DNP3 protocol stack written in C++14.

Note: This is a work in progress. See Issues for things we know about and feel free to add your own.

Supported Platforms: Linux, MacOS

Dependencies

To build the library from source, you must have:

  • A toolchain with a C++14 compiler
  • CMake >= 2.8.12 (https://cmake.org/download/)

This repository includes two repositories as submodules (under deps/):

  • dnp3 (https://github.com/automatak/dnp3)
  • pybind11 (https://github.com/Kisensum/pybind11) - This is a fork containing a minor patch required to compile some of the pydnp3 wrapper code. It will be replaced with pybind11 proper when the issue is resolved.

Build & Install

At the moment, this library must be built from source:

    $ clone --recursive http://github.com/Kisensum/pydnp3
    $ cd pydnp3
    $ python setup.py install

Documentation

pydnp3 is a thin wrapper around most all of the opendnp3 classes. Documentation for the opendnp3 classes is available at automatak.

Use python's help to discover the available wrapper classes and functions. For example,

> import pydnp3
> help (pydnp3.opendnp3)
Help on module pydnp3.opendnp3 in pydnp3:

NAME
    pydnp3.opendnp3 - Bindings for opendnp3 namespace

FILE
    (built-in)

CLASSES
    pybind11_builtins.pybind11_object(__builtin__.object)
        AnalogCommandEvent
        AnalogInfo
            AnalogSpec
...