Skip to content

Releases: SciProgCentre/controls-kt

Release list

0.4.0

Choose a tag to compare

@SPC-code SPC-code released this 18 Jul 17:13

Added

  • Controls-table module to work with compact data from PLC
  • Introduce separate classes for DeviceFactory and DeviceTreeFactory
  • Add DeviceTreeSpec
  • TimerState implements Clock.
  • setCachedValue API for CachingDevice to directly manipulate cached value and solve circular write problem with virtual properties.
  • Flow control simulation
  • Value averaging plot extension
  • PLC4X bindings
  • Shortcuts to access all Controls devices in a magix network.
  • DeviceClient properly evaluates lifecycle and logs
  • PeerConnection API for direct device-device binary sharing
  • DeviceDrawable2D intermediate visualization implementation
  • New interface WithLifeCycle. Change Port API to adhere to it.

Changed

  • Flow and mechanical models moved to controls-models modules
  • Minor change to the continuous model library
  • BREAKING Removed Model and replaced it with Device.
  • BREAKING DeviceHub is renamed to DeviceTree, has optional rootDevice and its children are DeviceTrees instead of Devices.
  • BREAKING DeviceHub works with string device names instead of Name.
  • ValueState now works both with and without time mark. Time is automatically provided and could be accessed with several new methods.
  • BREAKING Full refactor of device spec and device builders. Now device spec is a separate content. There is a DeviceWithStateFactory that could be used to create both specification and device factory at the same time.
  • Add optional names to model states and submodels
  • StateContainer renamed to Constructor
  • Separate StateContainer and MutableStateContainer
  • DeviceState renamed to ValueState
  • Update logic of DeviceState to properly address subscriptions.
  • getProperty renamed to getCachedProperty for CachingDevice
  • Milo migrated to the stable version
  • Constructor properties return DeviceState in order to be able to subscribe to them
  • Refactored ports. Now we have AsynchronousPort as well as SynchronousPort
  • DeviceClient now initializes property and action descriptors eagerly.
  • DeviceHub now works with Name instead of NameToken. Tree-like structure is made using Path. Device messages no longer have access to sub-devices.
  • Add some utility methods to ports. Synchronous port response could be now consumed as Source.
  • DeviceLifecycleState is replaced by LifecycleState.
  • Time is now the mandatory first field of all device messages

Fixed

  • Fix a problem with rsocket endpoint with no filter.

Full Changelog: v0.2.0...v0.4.0

0.2.0

Choose a tag to compare

@SPC-code SPC-code released this 23 Aug 13:28
5b655a9
  • Core interfaces for building a device server
  • Magix service for binding controls devices (both as RPC client and server)
  • A plugin for Controls-kt device server on top of modbus-rtu/modbus-tcp protocols
  • A client and server connectors for OPC-UA via Eclipse Milo
  • Implementation of byte ports on top os ktor-io asynchronous API
  • Implementation of direct serial port communication with JSerialComm
  • A combined Magix event loop server with web server for visualization.
  • An API for stand-alone Controls-kt device or a hub.
  • An implementation of controls-storage on top of JetBrains Xodus.
  • A kotlin API for magix standard and some zero-dependency magix services
  • Java API to work with magix endpoints without Kotlin
  • MQTT client magix endpoint
  • RabbitMQ client magix endpoint
  • Magix endpoint (client) based on RSocket
  • A magix event loop implementation in Kotlin. Includes HTTP/SSE and RSocket routes.
  • Magix history database API
  • ZMQ client endpoint for Magix