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

80 lines
2.3 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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
```sh
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:
```sh
$ cmake -DBUILD_JAVA_BINDINGS=ON .
```
Then compile the library and install it.
javaiec61850 library is to be imported calling
```java
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:
```java
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" );
}
```
Copyright Waterford Institute of Technology 2017~2019, Telecommunications Software and Systems Group (TSSG), Author Miguel Ponce de Leon <miguelpdl@tssg.org>
This work is supported by European Unions Horizon 2020 research and innovation programme under grant agreement No 727481, project RE-SERVE (Re- newables in a Stable Electric Grid)