# Change Log All notable changes to the CAPS client library will be documented in this file. ## 2025.206 3.0.1 ### Added - Stream ID check. Before sending data, the stream ID is checked to ensure that it meets the server requirements. Specical characters like '?' are not allowed. ## 2025.163 3.0.0 ### Changed - Make session table item start and end time optional ## 2024.352 2.7.4 ### Changed - Optimize package encoding ## 2024.226 2.7.3 ### Fixed - Parse server output address correctly ## 2024.162 2.7.2 ### Fixed - Do not crash when the journal file does not follow the format ## 2024.162 2.7.1 ### Changed - Redirect log messages to SeisComP log by default ## 2024.151 2.7.0 ### Added - Add plugin instance pointer to log messages ## 2023.184 2.6.0 ### Added - More convenience push functions ## 2023.184 2.5.0 ### Added - Direct API access to last acknowledged packet end time ## 2023.107 2.4.0 ### Added - PluginApplication class logs CAPS connection settings ### Changed - Reworked connection handling to perfom better in poor network environments - Removed unnecessary debug output ## 2022.284 2.3.1 ### Changed - Minor changes ## 2022-04-20 2.3.0 ### Added - CAPS agent support ## 2022-04-20 2.2.0 ### Added - API function to access internal packet buffer that keeps packets until they have been acknowledged by CAPS ## 2021-09-01 2.1.0 ### Added - Extended plugin class by the possibility to dump **outgoing** RAW and MSEED packets to stdout. RAW data ouput is in SLIST format and MSEED packets are dumped as binary MSEED. Applications derived from the plugin application class can enable this feature with the command line option ``--dump-packets``. ## 2021-06-21 2.0.3 ### Fixed - CAPS Python encoder factory ownership ## 2021-06-15 2.0.2 ### Fixed - Broken uncompressed MSEED support ## 2021-05-10 2.0.1 ### Fixed - Unit tests that work on 64-bit systems only ## 2021-05-10 2.0.0 ### Added - Log status responses from server in plugin application - SSL and authentication support for plugin application. With this version the data output URL can be set with the config option ``output.address``. The formal definition of the field is: [[caps|capss]://][user:pass@]host[:port] e.g. ```script output.address = capss://caps:caps@localhost:18003 ``` The new output.address parameter superseds the output.host and output.port parameter of previous versions and takes precedence. The old parameters are kept for compatibility reasons but are marked as deprecated. ## 2021-04-21 1.0.0 ### Changed - Set library version to 1.0.0 ## 2021-02-16 ### Added - Allow to set maximum allowed future end time via plugin API. In additon add commandline and config support to the plugin application class e.g. ```script output.maxFutureEndTime = 120 ``` By default the option is set to 120 seconds. ## 2020-12-14 ### Added - Support to set miniSEED record length via API ## 2020-09-22 ### Changed - Use last sample time as reference time for maximum future time check. Before we used the packet end time as reference time but this makes no sense in case of low sampled data. - So far we used the current time as start time if journal entries exceeded the maximum allowed future time. With this release we use the journal time no matter what its value but display a warning when the journal time is more than one day in the future. ## 2020-06-22 ### Added - Python3 byte array support to any record push ## 2020-02-21 ### Changed - Increase default timeout for acknowledgement messages from 5s to 60s ## 2019-09-24 ### Fixed - Fix high load if packets could not be sent to CAPS. In that case the plugin automatically reconnects after some amount of time. If triggered under certain circumstances this delay was not in effect and caused unnecessarily high amount of connection attempts. Under some circumstances the plugin could have crashed due to a stack overflow. - The quit method has now the semantics to continue pushing packets as long as the connection is established and only abort in case of an error without attempting a reconnect. ## 2019-09-20 ### Fixed - Fix error string if not all data could be sent to the server ## 2019-08-19 ### Changed - Discard packets whose end time is more than 120 seconds before the system time. ## 2019-08-06 ### Added - new config option ``output.addr`` ### Fixed - ambiguous command line option ``-h``. With this version of the library the host and port can be set via the command line option ``--addr``. - wrong config option parsing ## 2019-08-05 ### Fixed - seg fault in date time parser ## 2019-08-02 ### Fixed - Hanging TCP connections. In case of the remote side does not shutdown cleanly the plugin did not notice that the connection is no longer available. With this version the plugin reconnects to the server when the TCP send buffer is full and tries to send all not acknowledged packets again. - Do not discard packets if the packet buffer is full. Instead we block until the server acknowledges some packets. ### Changed - The plugin application class checks whether the configured buffer size is below the minimum. ## 2019-07-05 ### Changed - Ignore journal entries where the timestamp is more than 10 seconds before the system time. ## 2018-12-19 ### Fixed - Read journal from file in plugin application. ## 2018-12-18 ### Fixed - Do not reconnect if the plugin buffer is full. Instead of we try to read acknowledgements from the CAPS server until the plugin buffer is below the threshold. ## 2018-12-17 ### Added - Support to retrieve status information e.g. the number of buffered bytes from plugin. ## 2018-09-06 ### Changed - Enable more verbose logging for MSEED packets ## 2018-07-25 ### Fixed - unset variable of the raw data record - trim function will return false in case of an unknown datatype ## 2018-05-30 ### Fixed - Fixed unexpected closed SSL connections ## 2018-06-05 ### Fixed - Fix RawDataRecord::setHeader ## 2018-05-16 ### Fixed - RAW data end time calculation ## 2018-03-19 ### Fixed - SSL support ## 2017-11-20 ### Added - Float and double support for Steim encoders. All values will be converted implicitly to int 32 values. ## 2017-11-08 ### Added - Timing quality parameter to push call. By default the timing quality is set to -1. ## 2017-11-07 ### Fixed - Do not flush encoders after reconnect ## 2017-10-26 ### Added - SSL support ## 2017-10-24 ### Fixed - Packet synchronization error after reconnect