Opendnp3 Versions Save

DNP3 (IEEE-1815) protocol stack. Modern C++ with bindings for .NET and Java.

3.1.2

2 years ago
  • :beetle: Fix PrintingSOEHandler octet string size not printing properly. See 4372862
  • :beetle: Fix keep-alive timer not properly calculated. See #407.
  • :beetle: Fix LinkContext and MContext possible lifetime issue. See #407.
  • :beetle: Fix UDP reconnect delay not being honoured. Also, initial UDP read errors (due to ICMP packets) do not close the socket immediately. See #438.
  • :coffin: Deprecate the LinkConfig constructor with an unused useConfirms argument. See #439.
  • :beetle: In Java, CommandHeader builder methods now all return CommandHeaders. See #440.
  • :beetle: In Java, fix LinkStatusListener not getting called. Also added the missing onUnknownDestinationAddress and onUnknownSourceAddress callbacks. All the callbacks now have an empty default implementation. See #441.
  • :beetle: Added extra log when closing a new connection based on ServerAcceptMode::CloseNew. See #442.
  • :beetle: Fix TLS server not throwing exception when a certificate or key file is not valid. See #443.

3.1.1

3 years ago

? Fix static octet string serilazation bug. ⭐ Add missing octet string configuration to C# EventBufferConfig.

3.1.0

3 years ago
  • :star: Added IOutstationApplication::OnConfirmProcess. See PR #403.
  • :star: OutstationParams::maxControlsPerRequest is now auint32_t and its default value is 4,294,967,295. See issue #390.
  • :beetle: Fix FrozenCounter::toString() in Java bindings. See issue #389.

3.0.4

3 years ago
  • :beetle: Fix regression in 3.0 .NET bindings which causes deadband settings to not be applied. See PR #387.

3.0.3

3 years ago
  • :beetle: Fix TimeDuration overflow bug. See PR #382.
  • :beetle: Revert EventMode::EventOnly to 2.x behaviour. See PR #385 and PR #386.

3.0.2

4 years ago
  • :beetle: Fix discrepancy between DNPTime::TimestampQuality and HeaderInfo::TimestampQuality #377.

3.0.1

4 years ago
  • :beetle: Fix double-delete issue in C# adapter. See PR #376.

3.0.0

4 years ago

New features:

  • :star: Add support for Immediate Freeze (0x07), Immediate Freeze No Ack (0x08), Freeze-and-Clear (0x09), Freeze-and-Clear No Ack (0x10). See PR #320.
  • Add support for broadcast. See PR #312.
  • :star: Add UDP support. See PR #314.
  • :star: Add unsolicited fixed number of retries See PR #323.
  • :star: Add support for timestamp quality and g51v2 (CTO Unsynchronized). See PR #316.
  • :star: Add support for TLS 1.3 (requires OpenSSL 1.1.1). See PR #372.

API changes:

  • :star: Complete reorganization of the code to produce a single library. Properly separate the public header files from the private ones. Refactor the CMake to use modern practices.
  • :star: Outstation database points are now specified using a map instead of a sorted array. See PR #296.
  • :star: ICommandHandler now includes a Begin and a End callback to know which commands were grouped together in a single APDU. See PR #341.
  • :star: ISOEHandler now includes a BeginFragment and EndFragment to help determine if it's a multi-fragment response or an unsolicited response. See PR #298.
  • :star: When sending requests, a distinct SOEHandler can be specified to help associate the response with the request. To keep the old behaviour, simply pass the same SOEHandler on each request. See PR #339.
  • :star: All public enumerations used by the library exposes a to_string and a from_string method. They also expose a to_type and a from_type method to convert to and from the underlying integer value. See PR #308.
  • :star: Control Relay Output Block now expose each field individually. See PR #349.
  • :star: Instead of relying on an output parameter, DNP3Manager now throws an exception on misconfiguration. This also includes if a server was not able to bind to a port. See issue #293 and PR #367.
  • :x: Remove sending data-link confirmation support. It still supports receiving confirmed data to interoperability. See issue #364 and PR #367.
  • :beetle: TaskConfig now takes a std::shared_ptr instead of a reference. See issue #238 and PR #367.

Bindings changes:

  • :star: Add typed flag handling in Java and C#. See PR #342.
  • :star: In the Java bindings, when DNP3Manager fails, an descriptive exception is thrown instead of returning a null. See PR #367.
  • :star: Published NuGet packages now include both x86 and x64 binaries.
  • :beetle: Provide IDnpTimeSource interface in Java and C#. See issue #353 and PR #357.
  • :beetle: Add typesAllowedInClass0 in Java bindings. See PR #360.

CI:

Other:

  • :beetle: Fix few minor conformance issues. See PR #356.
  • :beetle: Fix issue in data-link state machine. See issue #138 and PR #367.
  • :arrow_double_up: Update ASIO dependency to 1.16. See PR #365.

2.4.0

4 years ago
  • :star: Added optional reconnection delay parameter to ChannelRetry. When a connection is lost, this parameter is used to wait before reattempting to establish a connection. Then, the same reconnection strategy as before is used for retries. See issue #354.
  • :beetle: Fix conformance issue with data-link confirmations. See PR #359.
  • :beetle: Fix conformance issue select & operate behaviour. See PR #359.
  • :beetle: Fix issue when compiling with MingW. See PR #345.

2.3.3

4 years ago
  • :beetle: Fix C# exception on time conversion upon restart command not supported. See issue #350.