You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libiec61850/javaiec61850/tutorial.md

1.9 KiB

Building

Before building you should install swig and java.

From the root directory of the libiec61850 project you have to build some of the dependant libraries

cd ..

make clean

make INSTALL_PREFIX=/usr/local install

make clean

make INSTALL_PREFIX=/usr/local dynlib

Now change into the Java project subdirectory

cd javaiec61850

swig -java -I/usr/local/include iec61850.i

gcc -fpic -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -c iec61850_wrap.c

ld -shared ../build/libiec61850.so iec61850_wrap.o -o libiec61850.so

javac test_javaiec61850.java

java test_javaiec61850

This test programme should show an out put of

MyThread for IEC61850Server has STARTED
IEC61850Server has STARTED
IEC61850Client has connected to the IEC61850Server
IEC61850Client has read testmodelSENSORS
IEC61850Client caught a error = 0
IEC61850Client read a temperature set point of = 0.0
IEC61850Client read a temperature set point of = 10.0
IEC61850Server has been Interrupted and STOPPED

The CMakeLists file does not exist yet, however it would be a nice to have a build of the java bindings by turning on a BUILD_JAVA_BINDINGS flag in CMake from cmake-gui or in command line:

$ cmake -DBUILD_JAVA_BINDINGS=ON .

Then compile the library and install it.

javaiec61850 library is to be imported calling

import iec61850

Client tutorial

The java bindings works similarly to the python and basic C library ones.

Have a look at the Client, Server and test programme.

For example to create a connection, call:

  if (con == null) {
    con = iec61850.IedConnection_create();
  }

  iec61850.IedConnection_connect(con, error, "localhost", tcpPort);

  conState = iec61850.IedConnection_getState(con);

  if ( conState.toString() == "IED_STATE_CONNECTED" || conState.toString() == "IED_STATE_IDLE") {
  System.out.println("IEC61850Client has connected to the IEC61850Server" );
  }