DNP3 (IEEE-1815) protocol stack. Modern C++ with bindings for .NET and Java.
PrintingSOEHandler
octet string size not printing properly. See 4372862
LinkContext
and MContext
possible lifetime issue. See #407.LinkConfig
constructor with an unused useConfirms
argument. See #439.CommandHeader
builder methods now all return CommandHeaders
. See #440.LinkStatusListener
not getting called. Also added the missing onUnknownDestinationAddress
and onUnknownSourceAddress
callbacks. All the callbacks now have an empty default implementation. See #441.ServerAcceptMode::CloseNew
. See #442.? Fix static octet string serilazation bug. ⭐ Add missing octet string configuration to C# EventBufferConfig.
DNPTime::TimestampQuality
and HeaderInfo::TimestampQuality
#377.New features:
0x07
), Immediate Freeze No Ack
(0x08
), Freeze-and-Clear (0x09
), Freeze-and-Clear No Ack (0x10
). See PR #320.API changes:
ICommandHandler
now includes a Begin
and a End
callback to know
which commands were grouped together in a single APDU. See PR
#341.ISOEHandler
now includes a BeginFragment
and EndFragment
to help
determine if it's a multi-fragment response or an unsolicited response. See PR
#298.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.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.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.TaskConfig
now takes a std::shared_ptr
instead of a reference. See
issue #238 and PR
#367.Bindings changes:
DNP3Manager
fails, an descriptive
exception is thrown instead of returning a null
. See PR
#367.IDnpTimeSource
interface in Java and C#. See issue
#353 and PR
#357.typesAllowedInClass0
in Java bindings. See PR
#360.CI:
Other:
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.