Changelog

v1.7.2 02-May-2024

  • fix sending of wrong StopDT confirmation after the connection is established again and a new S-Frame received

v1.7.1 23-Apr-2024

  • fix sending StopDT con when S-Frame is received after StopDT act frame

v1.7.0 09-Apr-2024

  • added ASDU type filter: Supported ASDU can now be configured through Server.builder().setAllowedASduTypes(). If configured, the stack will automatically respond to incoming ASDUs of unsupported types.
  • server:
    • added return callback method ConnectionEventListener in ServerEventListener.connectionIndication(Connection)
    • removed not necessary callback function setConnectionEventListenerBeforeStart()
    • removed calling connection.setConnectionListener()
  • client:
    • changed place of configuration of connection listener from Connection.setConnectionListener() to ClientConnectionBuilder.setConnectionEventListener()

v1.6.4 17-Jan-2023

  • added internal pending state for correct connection state behavior
  • added ReservedASduTypeDecoder to settings for possible future definitions of reserved range <= 127

v1.6.3 15-Nov-2023

  • added Connection object to ConnectionEventListener methods
  • throws IllegalArgumentException when trying to send ASdu in stopped state

v1.6.2 24-Oct-2023

  • fixed dataTransferStateChanged not triggered when data transfer goes into the stopped state
  • newAsdu method is triggered even if isStopped=true on first connection
  • added method setConnectionEventListenerBeforeStart() to ServerEventListener to make sure a listener is set before connection

v1.6.1 20-Jul-2023

  • fixed not waiting for missing S-Frame from master when sending StoDTCon
  • fixed no TESTFR after initial connection
  • fixed connection closed when receiving reserved ASDU
  • fixed sending S-Format for already confirmed messages

v1.6.0 23-Jun-2023

  • removed deprecated methods:
    • org.openmuc.j60870.Connection#waitForStartDT
    • org.openmuc.j60870.Connection#startDataTransfer(ConnectionEventListener listener, int timeout), replaced by org.openmuc.j60870.Connection#startDataTransfer(ConnectionEventListener listener)
  • fixed missing S-frame confirmation while StopDT
  • fixes missing org.openmuc.j60870.ConnectionEventListener#connectionClosed(Connection connection, IOException) event while StopDT state
  • added check for t2 < t1 and t3 > t1
  • updated junit to 4.13.2, because of CVE-2020-15250
  • CLI app:
  • fixed windows start scripts
  • fixed COUNTER_INTERROGATION_ACTION_KEY exception

v1.5.0 02-Aug-2022

  • set minimum Java version to 1.8
  • added org.openmuc.j60870.ConnectionEventListener#dataTransferStateChanged(Connection, boolean) it notifies if STARTDT ACT or STOPDT ACT was handled
  • added sendConfirmation with Cause of transmission parameter
  • added server connection setting for a IP whitelist
  • added getter for remote and local address
  • added sendActivationTermination for easier interrogation sequence
  • removed javax dependency
  • fixed not closing if max number of connection reached bug thanks to Konstantinos Ntermitzoglou from inaccess
  • CLI app:
  • added Counter Interrogation Command in console client
  • added time to log messages
  • replaced deprecated methods

v1.4.0 19-Jun-2020

  • added STOPDT
    • added STOPDT state
    • added sendStopDataTransfer()
  • added parameter k (set maximum number of outstanding IPDuS)
  • added setConnectionTimeout (t0)
  • added org.openmuc.j60870.Connection#sendResponse with station address parameter
  • set methods to deprecated
    • org.openmuc.j60870.Connection#waitForStartDT, will be removed
    • org.openmuc.j60870.Connection#startDataTransfer(ConnectionEventListener listener, int timeout), will be replaced by org.openmuc.j60870.Connection#startDataTransfer(ConnectionEventListener listener)
  • fixed TimeoutTask not working after start bug
  • fixed continue sending while waiting for acknowledgement
  • CLI app
    • added STARTDT and STOPDT
    • added set connection timeout (t0)

v1.3.1 11-Jun-2019

  • fixed sequence number overflow bug thanks to Sven Liebehentze from Fraunhofer IEE

v1.3.0 29-Mar-2019

  • moved IE objects to separate package: org.openmuc.j60870.ie
  • renamed TypeId to ApduType
  • Builder: call build() instead of connect
  • reduced the number of active threads of a connection
  • added option for setting SO timeout
  • fixed wrong APCI parsing
  • fixed IeBinaryCounterReading bugs
  • fixed DST bug in IeTime56 getTimestamp
  • fixed bug with duplicated timeout tasks in queue
  • fixed maxTimeNoAckSentTimer bug
  • CLI app:
    • CLI app is a separate project now
    • added single commands
    • added set S0 timeout
    • added option for connection retries

v1.2.1 11-Oct-2017

  • fixed C_RC_TA_1 bug

v1.2.0 04-Jan-2017

  • CauseOfTransmission field can now be set explicilty when sending SingleCommand (thanks to Dean Ouelette from RTDS).

v1.1.1 04-Oct-2016

  • replaced fixed thread pool by cached thread pool so that unused threads are closed
  • ASDU notification correctly closed when connection is closed thanks to Mr. Tellenbach
  • Client no longer closes connection if data is received before START_DT CON message, but data is discarded instead.
  • improved normalized value and binary state information element classes, but did not change API behaviour

v1.1.0 06-Jun-2016

  • Renamed ClientSap to ClientConnectionBuilder and ServerSap to Server.Builder
  • fixed time conversion to ms of IeTime24 thanks to Juergen Wieferink from BTC AG
  • added stopListening() to ServerSap allowing for clean close
  • refactored console client

v1.0.0 24-Feb-2016

  • fixed bug when creating multiple parallel connections using the same ClientSap
  • fixed a synchronization problem in the server implementation
  • fixed toString() method of IeTime56 thanks to Jan Gall from Bosch

v0.9 19-Nov-2014

  • added full support for timers t1,t2 and t3
  • fixed bug in information element IeTime56
  • improved documentation

v0.8 07-Aug-2014

  • merged ClientConnection and ServerConnection to a single Connection class, to allow reverse communication for server
  • make Connection functions thread safe
  • removed slf4j dependency

v0.6 24-Apr-2014

  • added client support for automatic sending of S format APDUs to confirm incoming I format APDUs
  • added client support for automatic sending of TESTFRCON messages when TESTFR ACT messages are received.

v0.5 10-Apr-2014

  • Common address higher than 255 are now supported
  • added util functions to calculate common address and information object address from individual bytes
  • added support for private range Type IDs

v0.4 21-Mar-2014

  • added SampleServer
  • added sendConfirmation(ASdu aSdu) to ServerConnection for easy sending of confirmation messages that are simple mirrors of incoming requests except for the causeOfTransmission field.
  • renamed ioException callback function of ASduListener
  • modified build.gradle file to work with gradle v1.11

v0.3 14-Mar-2014

  • improved javadoc and added user guide
  • added support for all possible Type Identifications
  • added toString() method for every possible Information Element
  • added runscripts for ClientApp

v0.2 28-Feb-2014

  • first release