Releases: SciProgCentre/controls-kt
Releases · SciProgCentre/controls-kt
Release list
0.4.0
Added
- Controls-table module to work with compact data from PLC
- Introduce separate classes for DeviceFactory and DeviceTreeFactory
- Add DeviceTreeSpec
TimerStateimplementsClock.setCachedValueAPI forCachingDeviceto 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.
DeviceClientproperly evaluates lifecycle and logsPeerConnectionAPI 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 optionalrootDeviceand its children areDeviceTrees instead ofDevices. - 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
DeviceWithStateFactorythat could be used to create both specification and device factory at the same time. - Add optional names to model states and submodels
StateContainerrenamed toConstructor- Separate StateContainer and MutableStateContainer
DeviceStaterenamed toValueState- Update logic of
DeviceStateto properly address subscriptions. getPropertyrenamed togetCachedPropertyforCachingDevice- Milo migrated to the stable version
- Constructor properties return
DeviceStatein order to be able to subscribe to them - Refactored ports. Now we have
AsynchronousPortas well asSynchronousPort DeviceClientnow initializes property and action descriptors eagerly.DeviceHubnow works withNameinstead ofNameToken. Tree-like structure is made usingPath. Device messages no longer have access to sub-devices.- Add some utility methods to ports. Synchronous port response could be now consumed as
Source. DeviceLifecycleStateis replaced byLifecycleState.- 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
- 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