/*! \mainpage API Reference Manual * * \section intro_sec Introduction * * This is the reference manual of libIEC61850. * libIEC61850 is an open-source (GPLv3) implementation of an IEC 61850 client and server library. It is implemented * in C to provide maximum portability. It can be used to implement IEC 61850 * compatible client and server applications on embedded systems and PCs running Linux and Windows. Included * is a set of simple example applications that can be used as a starting point to implement your own IEC 61850 * compatible devices or to communicate with IEC 61850 devices. * There is also an open-source implementation of IEC 61850 in Java (see http://openmuc.org). * * The library implements the most important parts of IEC 61850 on top of the MMS mapping. It provides the MMS protocol stack * on top of TCP/IP as well as GOOSE for real-time data transfer inside of substations. * * The API of libIEC61850 can be divided into a client and a server part. Both parts also * share common elements. For both client and server there exist two different APIs. There is a * "low-level" MMS API and the more high-level IEC 61850 API. * * \section iec_client_api IEC 61850 client API * * The IEC 61850 client API is a high-level API to access IEC 61850 compliant devices. The API provides * access to MMS services that are supported by IEC 61850. It also contains a GOOSE subscriber. * * \section client_api MMS client API * * This client API is not IEC 61850 specific but is a generic MMS client API that provides * only the features required by the IEC 61850 MMS Mapping. This API can be used if low-level access * to MMS services is required. * * \section server_api IEC 61850 Server API * * Server support for IEC 61850 includes the generation of the MMS device model out of the static IEC 61850 * data model and the generation of reports. Also the IEC 61850 server API provides support for the * IEC 61850 control model. The server API is designed to add very low overhead and can be used to create very * small IEC 61850 compliant MMS server applications. The server does not parse the SCD(XML) file * at runtime. The SCD file will be parsed at build time by a tool that generates C code for the * definition of the IEC 61850 data model and other settings of the SCD file. This will free the * server code from the burden of an XML file parser. Also the target system does not require a * file system to store the SCD file. This design simplifies the usage of the server on very * small embedded systems. * * \section mms_server_api MMS Server API * * The MMS server API provides a generic MMS API. There is no support for IEC 61850 specific * functions in this API. If you want to implement IEC 61850 compliant devices you should use * the IEC 61850 server API instead. * * \section hal Hardware/OS abstraction layer * * libIEC61850 provides a hardware/OS abstraction layer (HAL) to hide the dependencies to the * underlying platform. Currently this layer consists of thread, socket and time abstractions. If * you want to port the library to a new platform you need to implement the functions defined * by this API. At the moment implementations for POSIX(Linux, Mac OS X ...) and Win32 exists. This API * consists of the three files hal/hal.h, hal/socket/socket.h and * hal/thread/thread.h. * * \section examples Building the library and the examples * * To build the library you can simply execute make in the main folder of the * source distribution. It is assumed that a GCC toolchain and the Make tool is installed. * To cross-compile for another platform you can specify the TARGET variable when executing * make. To cross-compile for Windows you can call make TARGET=WIN32. To cross-compile * for ARM Linux you can call make TARGET=LINUX-ARM. It is assumed that a proper * GCC cross-compiler toolchain (like MinGW or arm-linux-gcc) is installed. Probably you * need to adjust the toolchain prefix variables at the beginning of the Makefile. * * To build the examples change to the main directory of the source distribution. On the command line type *
* make examples * * This will build the examples for the host environment (currently Linux and Windows with MinGW are * supported). You can also cross-compile if the target system is different from the host system. * To test the server examples you can use the mms_client_example binary. You can * also use third-party tools like Omicron IEDScout or the openIEC61850 client example to * test the examples. * * \section Licenses * * libIEC61850 itself is released under the GPLv3. The asn1 code parts contain code of asn1c that is * under a BSD style license (see http://lionet.info/asn1c/blog/). * * You can contact the author via info@libiec61850.com */