diff --git a/pyiec61850/tutorial.md b/pyiec61850/README.md similarity index 54% rename from pyiec61850/tutorial.md rename to pyiec61850/README.md index 1e6b4f4f..b2398919 100644 --- a/pyiec61850/tutorial.md +++ b/pyiec61850/README.md @@ -1,6 +1,10 @@ -# Building -Before building you should install swig and python. -To build python bindings you have to turn on the BUILD\_PYTHON\_BINDINGS flag in CMake from cmake-gui or in command line: +# Python wrapper for libIEC61850 + +## Building +Before building you should install SWIG and Python +(see the '[Setup development environment on Linux](#setup-development-environment-on-linux-ubuntu)' section for help). + +To build the Python bindings you have to turn on the BUILD\_PYTHON\_BINDINGS flag in CMake from cmake-gui or in command line: ```sh $ mkdir build && cd build $ cmake -DBUILD_PYTHON_BINDINGS=ON .. @@ -11,21 +15,23 @@ Then compile the library and install it: $ make $ sudo make install ``` -CMake and swig will automatically detect your python version and install the python library in python library directories. +(Eventually, update your ld cache with: `sudo ldconfig`) + +CMake and SWIG will automatically detect your Python version and install the Python library in Python library directories. For running the integrated tests: ```sh $ make test ``` -pyiec61850 library is to be imported calling +pyiec61850 library is to be imported calling: ```python import pyiec61850 as iec61850 ``` -# Client tutorial +## Client tutorial -The python bindings works similarly to the basic C library. However there are some differences: +The Python bindings works similarly to the basic C library. However there are some differences: * a specific function is to be called to cast variables from one type to another * arguments passed by pointer are to be removed from arguments and append to the return list @@ -61,3 +67,29 @@ Reading and writing operations can be performed using this syntax: err = iec61850.IedConnection_writeFloatValue(con, "simpleIOGenericIO/GGIO1.AnIn1.mag.f", iec61850.IEC61850_FC_MX, 10.0) ``` + +## Appendix + +## Setup development environment on Linux Ubuntu + +_[Tested on Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, Ubuntu 23.10]_ + +Here the minimum required packages for compiling libiec61850 and the Python +wrapper (without TLS, SQlite, ...): + +```sh +$ sudo apt-get update +$ sudo apt-get install g++ cmake swig git python3 python3-all-dev +``` + +## Setup development environment on Linux Alpine + +_[Tested on Alpine 3.18]_ + +Here the minimum required packages for compiling libiec61850 and the Python +wrapper (without TLS, SQlite, ...): + +```sh +$ apk update +$ apk add git g++ swig make cmake python3 python3-dev linux-headers +```