The DNP3 library by JPEmbedded is easily portable to any device with or without an operating system. It supports both outstation and master side, serial and TCP operation modes. The implementation in the C++ language takes into account specific requirements for embedded platforms, like:
- Resource efficiency
- High configuration flexibility
- Hardware platform independence
DNP3 library supports level 4 interoperability and the following features:
- Static data points (class 0)
- Events (class 1-3)
- Reading / writing of data objects
- Control operations
- Data freeze
- Unsolicited messages
- File transfer
- Cybersecurity (IEC 62351 and SAv5)
The main components of the library are:
- DNP3 core library
- Hardware abstraction layer (HAL)
- Configuration file
- Master application or outstation application (refer to the picture below)
- Dedicated API (C, C++, Java)

Core library implements the bulk of the functionality specified by the standard and it is common for outstation and master. It handles data access, generation of events and control model. HAL provides an abstraction of hardware platform and operating system (if used). The configuration file defines a set of macro-definitions, which enable or disable selected features of the library, customize its behavior and configures resource (for example, RAM) utilization by specifying the size of buffers used for reporting or maximum number of instances. Outstation / Master application realizes logic specific for a given device and is usually implemented by the end-user of the library.
| 支持的器件 | STM32 |
| 可交付成果 | 源文件 |
| 许可类型 | 商业(免费试用版) |
| 地点 |