2023-08-23 16:21:11 +03:00
# Changelog
## Unreleased
2023-09-24 13:29:15 +03:00
### Added
2024-03-18 09:34:14 +03:00
- Value averaging plot extension
- PLC4X bindings
2024-05-19 10:44:34 +03:00
- Shortcuts to access all Controls devices in a magix network.
- `DeviceClient` properly evaluates lifecycle and logs
2024-06-07 10:52:28 +03:00
- `PeerConnection` API for direct device-device binary sharing
2024-07-22 18:46:58 +03:00
- DeviceDrawable2D intermediate visualization implementation
2024-03-04 15:58:53 +03:00
### Changed
2024-05-19 10:44:34 +03:00
- Constructor properties return `DeviceState` in order to be able to subscribe to them
2024-03-31 16:13:02 +03:00
- Refactored ports. Now we have `AsynchronousPort` as well as `SynchronousPort`
2024-05-19 10:44:34 +03:00
- `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.
2024-05-28 09:51:30 +03:00
- Add some utility methods to ports. Synchronous port response could be now consumed as `Source` .
2024-03-04 15:58:53 +03:00
### Deprecated
### Removed
### Fixed
2024-05-21 09:44:45 +03:00
- Fix a problem with rsocket endpoint with no filter.
2024-03-04 15:58:53 +03:00
### Security
## 0.3.0 - 2024-03-04
### Added
2023-10-28 14:18:00 +03:00
- Device lifecycle message
- Low-code constructor
2023-11-18 19:02:56 +03:00
- Automatic description generation for spec properties (JVM only)
2023-09-24 13:29:15 +03:00
### Changed
2024-03-04 15:58:53 +03:00
2023-10-30 21:35:46 +03:00
- Property caching moved from core `Device` to the `CachingDevice`
2023-11-18 14:49:23 +03:00
- `DeviceSpec` properties no explicitly pass property name to getters and setters.
2023-12-28 21:09:23 +03:00
- `DeviceHub.respondHubMessage` now returns a list of messages to allow querying multiple devices. Device server also returns an array.
2024-03-04 15:58:53 +03:00
- DataForge 0.8.0
2023-09-24 13:29:15 +03:00
### Fixed
2024-03-04 15:58:53 +03:00
2023-10-02 21:24:01 +03:00
- Property writing does not trigger change if logical state already is the same as value to be set.
- Modbus-slave triggers only once for multi-register write.
2024-02-27 10:31:35 +03:00
- Removed unnecessary scope in hub messageFlow
2023-09-24 13:29:15 +03:00
## 0.2.2-dev-1 - 2023-09-24
### Changed
2024-03-04 15:58:53 +03:00
2023-09-24 13:29:15 +03:00
- updating logical state in `DeviceBase` is now protected and called `propertyChanged()`
- `DeviceBase` tries to read property after write if the writer does not set the value.
## 0.2.1 - 2023-09-24
2023-08-23 16:21:11 +03:00
### Added
2024-03-04 15:58:53 +03:00
2023-08-23 16:21:11 +03:00
- 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