Update readme and API

This commit is contained in:
Alexander Nozik 2024-03-04 15:58:53 +03:00
parent 2a700a5a2a
commit e8c6e90a0f
29 changed files with 147 additions and 121 deletions

View File

@ -3,35 +3,49 @@
## Unreleased ## Unreleased
### Added ### Added
- Device lifecycle message
- Low-code constructor
- Automatic description generation for spec properties (JVM only)
### Changed ### Changed
- Property caching moved from core `Device` to the `CachingDevice`
- `DeviceSpec` properties no explicitly pass property name to getters and setters.
- `DeviceHub.respondHubMessage` now returns a list of messages to allow querying multiple devices. Device server also returns an array.
### Deprecated ### Deprecated
### Removed ### Removed
### Fixed ### Fixed
### Security
## 0.3.0 - 2024-03-04
### Added
- Device lifecycle message
- Low-code constructor
- Automatic description generation for spec properties (JVM only)
### Changed
- Property caching moved from core `Device` to the `CachingDevice`
- `DeviceSpec` properties no explicitly pass property name to getters and setters.
- `DeviceHub.respondHubMessage` now returns a list of messages to allow querying multiple devices. Device server also returns an array.
- DataForge 0.8.0
### Fixed
- Property writing does not trigger change if logical state already is the same as value to be set. - 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. - Modbus-slave triggers only once for multi-register write.
- Removed unnecessary scope in hub messageFlow - Removed unnecessary scope in hub messageFlow
### Security
## 0.2.2-dev-1 - 2023-09-24 ## 0.2.2-dev-1 - 2023-09-24
### Changed ### Changed
- updating logical state in `DeviceBase` is now protected and called `propertyChanged()` - 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. - `DeviceBase` tries to read property after write if the writer does not set the value.
## 0.2.1 - 2023-09-24 ## 0.2.1 - 2023-09-24
### Added ### Added
- Core interfaces for building a device server - Core interfaces for building a device server
- Magix service for binding controls devices (both as RPC client and 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 plugin for Controls-kt device server on top of modbus-rtu/modbus-tcp protocols

View File

@ -1,14 +1,14 @@
[![JetBrains Research](https://jb.gg/badges/research.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) [![JetBrains Research](https://jb.gg/badges/research.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
[![DOI](https://zenodo.org/badge/240888288.svg)](https://zenodo.org/badge/latestdoi/240888288) [![](https://maven.sciprog.center/api/badge/latest/kscience/space/kscience/controls-core-jvm?color=40c14a&name=repo.kotlin.link&prefix=v)](https://maven.sciprog.center/)
# Controls-kt # Controls.kt
Controls-kt (former DataForge-control) is a data acquisition framework (work in progress). It is based on DataForge, a software framework for automated data processing. Controls.kt (former DataForge-control) is a data acquisition framework (work in progress). It is based on DataForge, a software framework for automated data processing.
This repository contains a prototype of API and simple implementation This repository contains a prototype of API and simple implementation
of a slow control system, including a demo. of a slow control system, including a demo.
Controls-kt uses some concepts and modules of DataForge, Controls.kt uses some concepts and modules of DataForge,
such as `Meta` (tree-like value structure). such as `Meta` (tree-like value structure).
To learn more about DataForge, please consult the following URLs: To learn more about DataForge, please consult the following URLs:
@ -44,6 +44,11 @@ Example view of a demo:
## Modules ## Modules
### [controls-constructor](controls-constructor)
> A low-code constructor for composite devices simulation
>
> **Maturity**: PROTOTYPE
### [controls-core](controls-core) ### [controls-core](controls-core)
> Core interfaces for building a device server > Core interfaces for building a device server
> >
@ -58,6 +63,10 @@ Example view of a demo:
> - [ports](controls-core/src/commonMain/kotlin/space/kscience/controls/ports) : Working with asynchronous data sending and receiving raw byte arrays > - [ports](controls-core/src/commonMain/kotlin/space/kscience/controls/ports) : Working with asynchronous data sending and receiving raw byte arrays
### [controls-jupyter](controls-jupyter)
>
> **Maturity**: EXPERIMENTAL
### [controls-magix](controls-magix) ### [controls-magix](controls-magix)
> Magix service for binding controls devices (both as RPC client and server) > Magix service for binding controls devices (both as RPC client and server)
> >
@ -115,6 +124,11 @@ Automatically checks consistency.
> >
> **Maturity**: PROTOTYPE > **Maturity**: PROTOTYPE
### [controls-vision](controls-vision)
> Dashboard and visualization extensions for devices
>
> **Maturity**: PROTOTYPE
### [demo](demo) ### [demo](demo)
> >
> **Maturity**: EXPERIMENTAL > **Maturity**: EXPERIMENTAL
@ -136,6 +150,10 @@ Automatically checks consistency.
> >
> **Maturity**: EXPERIMENTAL > **Maturity**: EXPERIMENTAL
### [demo/constructor](demo/constructor)
>
> **Maturity**: EXPERIMENTAL
### [demo/echo](demo/echo) ### [demo/echo](demo/echo)
> >
> **Maturity**: EXPERIMENTAL > **Maturity**: EXPERIMENTAL

View File

@ -13,7 +13,7 @@ val xodusVersion by extra("2.0.1")
allprojects { allprojects {
group = "space.kscience" group = "space.kscience"
version = "0.3.0-dev-6" version = "0.3.0"
repositories{ repositories{
maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
} }

View File

@ -16,18 +16,16 @@ Core interfaces for building a device server
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:controls-core:0.2.0`. The Maven coordinates of this project are `space.kscience:controls-core:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:controls-core:0.2.0") implementation("space.kscience:controls-core:0.3.0")
} }
``` ```

View File

@ -0,0 +1,8 @@
public final class space/kscience/controls/jupyter/ControlsJupyter : space/kscience/visionforge/jupyter/VisionForgeIntegration {
public static final field Companion Lspace/kscience/controls/jupyter/ControlsJupyter$Companion;
public fun <init> ()V
}
public final class space/kscience/controls/jupyter/ControlsJupyter$Companion {
}

View File

@ -12,18 +12,16 @@ Magix service for binding controls devices (both as RPC client and server)
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:controls-magix:0.2.0`. The Maven coordinates of this project are `space.kscience:controls-magix:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:controls-magix:0.2.0") implementation("space.kscience:controls-magix:0.3.0")
} }
``` ```

View File

@ -14,18 +14,16 @@ Automatically checks consistency.
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:controls-modbus:0.2.0`. The Maven coordinates of this project are `space.kscience:controls-modbus:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:controls-modbus:0.2.0") implementation("space.kscience:controls-modbus:0.3.0")
} }
``` ```

View File

@ -12,18 +12,16 @@ A client and server connectors for OPC-UA via Eclipse Milo
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:controls-opcua:0.2.0`. The Maven coordinates of this project are `space.kscience:controls-opcua:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:controls-opcua:0.2.0") implementation("space.kscience:controls-opcua:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ Utils to work with controls-kt on Raspberry pi
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:controls-pi:0.2.0`. The Maven coordinates of this project are `space.kscience:controls-pi:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:controls-pi:0.2.0") implementation("space.kscience:controls-pi:0.3.0")
} }
``` ```

View File

@ -1,6 +1,10 @@
public final class space/kscience/controls/pi/PiPlugin : space/kscience/dataforge/context/AbstractPlugin { public final class space/kscience/controls/pi/PiPlugin : space/kscience/dataforge/context/AbstractPlugin {
public static final field Companion Lspace/kscience/controls/pi/PiPlugin$Companion; public static final field Companion Lspace/kscience/controls/pi/PiPlugin$Companion;
public fun <init> ()V public fun <init> ()V
public fun content (Ljava/lang/String;)Ljava/util/Map;
public fun detach ()V
public final fun getDevices ()Lspace/kscience/controls/manager/DeviceManager;
public final fun getPiContext ()Lcom/pi4j/context/Context;
public final fun getPorts ()Lspace/kscience/controls/ports/Ports; public final fun getPorts ()Lspace/kscience/controls/ports/Ports;
public fun getTag ()Lspace/kscience/dataforge/context/PluginTag; public fun getTag ()Lspace/kscience/dataforge/context/PluginTag;
} }
@ -8,15 +12,16 @@ public final class space/kscience/controls/pi/PiPlugin : space/kscience/dataforg
public final class space/kscience/controls/pi/PiPlugin$Companion : space/kscience/dataforge/context/PluginFactory { public final class space/kscience/controls/pi/PiPlugin$Companion : space/kscience/dataforge/context/PluginFactory {
public synthetic fun build (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)Ljava/lang/Object; public synthetic fun build (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)Ljava/lang/Object;
public fun build (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)Lspace/kscience/controls/pi/PiPlugin; public fun build (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)Lspace/kscience/controls/pi/PiPlugin;
public final fun createPiContext (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)Lcom/pi4j/context/Context;
public fun getTag ()Lspace/kscience/dataforge/context/PluginTag; public fun getTag ()Lspace/kscience/dataforge/context/PluginTag;
} }
public final class space/kscience/controls/pi/PiSerialPort : space/kscience/controls/ports/AbstractPort { public final class space/kscience/controls/pi/PiSerialPort : space/kscience/controls/ports/AbstractPort {
public static final field Companion Lspace/kscience/controls/pi/PiSerialPort$Companion; public static final field Companion Lspace/kscience/controls/pi/PiSerialPort$Companion;
public fun <init> (Lspace/kscience/dataforge/context/Context;Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function0;)V public fun <init> (Lspace/kscience/dataforge/context/Context;Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function1;)V
public synthetic fun <init> (Lspace/kscience/dataforge/context/Context;Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public synthetic fun <init> (Lspace/kscience/dataforge/context/Context;Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun close ()V public fun close ()V
public final fun getSerialBuilder ()Lkotlin/jvm/functions/Function0; public final fun getSerialBuilder ()Lkotlin/jvm/functions/Function1;
} }
public final class space/kscience/controls/pi/PiSerialPort$Companion : space/kscience/controls/ports/PortFactory { public final class space/kscience/controls/pi/PiSerialPort$Companion : space/kscience/controls/ports/PortFactory {

View File

@ -6,18 +6,16 @@ Implementation of byte ports on top os ktor-io asynchronous API
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:controls-ports-ktor:0.2.0`. The Maven coordinates of this project are `space.kscience:controls-ports-ktor:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:controls-ports-ktor:0.2.0") implementation("space.kscience:controls-ports-ktor:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ Implementation of direct serial port communication with JSerialComm
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:controls-serial:0.2.0`. The Maven coordinates of this project are `space.kscience:controls-serial:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:controls-serial:0.2.0") implementation("space.kscience:controls-serial:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ A combined Magix event loop server with web server for visualization.
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:controls-server:0.2.0`. The Maven coordinates of this project are `space.kscience:controls-server:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:controls-server:0.2.0") implementation("space.kscience:controls-server:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ An API for stand-alone Controls-kt device or a hub.
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:controls-storage:0.2.0`. The Maven coordinates of this project are `space.kscience:controls-storage:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:controls-storage:0.2.0") implementation("space.kscience:controls-storage:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ An implementation of controls-storage on top of JetBrains Xodus.
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:controls-xodus:0.2.0`. The Maven coordinates of this project are `space.kscience:controls-xodus:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:controls-xodus:0.2.0") implementation("space.kscience:controls-xodus:0.3.0")
} }
``` ```

View File

@ -47,11 +47,12 @@ public final class space/kscience/controls/demo/DemoDevice$Companion : space/ksc
public fun build (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)Lspace/kscience/controls/demo/DemoDevice; public fun build (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)Lspace/kscience/controls/demo/DemoDevice;
public final fun getCoordinates ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getCoordinates ()Lspace/kscience/controls/spec/DevicePropertySpec;
public final fun getCos ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getCos ()Lspace/kscience/controls/spec/DevicePropertySpec;
public final fun getCosScale ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getCosScale ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
public final fun getResetScale ()Lspace/kscience/controls/spec/DeviceActionSpec; public final fun getResetScale ()Lspace/kscience/controls/spec/DeviceActionSpec;
public final fun getSetSinScale ()Lspace/kscience/controls/spec/DeviceActionSpec;
public final fun getSin ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getSin ()Lspace/kscience/controls/spec/DevicePropertySpec;
public final fun getSinScale ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getSinScale ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
public final fun getTimeScale ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getTimeScale ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
public synthetic fun onOpen (Lspace/kscience/controls/api/Device;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public synthetic fun onOpen (Lspace/kscience/controls/api/Device;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun onOpen (Lspace/kscience/controls/demo/IDemoDevice;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun onOpen (Lspace/kscience/controls/demo/IDemoDevice;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
} }

View File

@ -9,7 +9,7 @@ public abstract interface class space/kscience/controls/demo/car/IVirtualCar : s
} }
public final class space/kscience/controls/demo/car/IVirtualCar$Companion : space/kscience/controls/spec/DeviceSpec { public final class space/kscience/controls/demo/car/IVirtualCar$Companion : space/kscience/controls/spec/DeviceSpec {
public final fun getAcceleration ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getAcceleration ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
public final fun getLocation ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getLocation ()Lspace/kscience/controls/spec/DevicePropertySpec;
public final fun getSpeed ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getSpeed ()Lspace/kscience/controls/spec/DevicePropertySpec;
} }
@ -17,7 +17,6 @@ public final class space/kscience/controls/demo/car/IVirtualCar$Companion : spac
public final class space/kscience/controls/demo/car/MagixVirtualCar : space/kscience/controls/demo/car/VirtualCar { public final class space/kscience/controls/demo/car/MagixVirtualCar : space/kscience/controls/demo/car/VirtualCar {
public static final field Companion Lspace/kscience/controls/demo/car/MagixVirtualCar$Companion; public static final field Companion Lspace/kscience/controls/demo/car/MagixVirtualCar$Companion;
public fun <init> (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)V public fun <init> (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)V
public fun open (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
} }
public final class space/kscience/controls/demo/car/MagixVirtualCar$Companion : space/kscience/dataforge/context/Factory { public final class space/kscience/controls/demo/car/MagixVirtualCar$Companion : space/kscience/dataforge/context/Factory {
@ -45,11 +44,11 @@ public final class space/kscience/controls/demo/car/Vector2D : space/kscience/da
public fun toString ()Ljava/lang/String; public fun toString ()Ljava/lang/String;
} }
public final class space/kscience/controls/demo/car/Vector2D$CoordinatesMetaConverter : space/kscience/dataforge/meta/transformations/MetaConverter { public final class space/kscience/controls/demo/car/Vector2D$CoordinatesMetaConverter : space/kscience/dataforge/meta/MetaConverter {
public synthetic fun metaToObject (Lspace/kscience/dataforge/meta/Meta;)Ljava/lang/Object; public synthetic fun convert (Ljava/lang/Object;)Lspace/kscience/dataforge/meta/Meta;
public fun metaToObject (Lspace/kscience/dataforge/meta/Meta;)Lspace/kscience/controls/demo/car/Vector2D; public fun convert (Lspace/kscience/controls/demo/car/Vector2D;)Lspace/kscience/dataforge/meta/Meta;
public synthetic fun objectToMeta (Ljava/lang/Object;)Lspace/kscience/dataforge/meta/Meta; public synthetic fun readOrNull (Lspace/kscience/dataforge/meta/Meta;)Ljava/lang/Object;
public fun objectToMeta (Lspace/kscience/controls/demo/car/Vector2D;)Lspace/kscience/dataforge/meta/Meta; public fun readOrNull (Lspace/kscience/dataforge/meta/Meta;)Lspace/kscience/controls/demo/car/Vector2D;
} }
public class space/kscience/controls/demo/car/VirtualCar : space/kscience/controls/spec/DeviceBySpec, space/kscience/controls/demo/car/IVirtualCar { public class space/kscience/controls/demo/car/VirtualCar : space/kscience/controls/spec/DeviceBySpec, space/kscience/controls/demo/car/IVirtualCar {
@ -59,7 +58,7 @@ public class space/kscience/controls/demo/car/VirtualCar : space/kscience/contro
public fun getAccelerationState ()Lspace/kscience/controls/demo/car/Vector2D; public fun getAccelerationState ()Lspace/kscience/controls/demo/car/Vector2D;
public fun getLocationState ()Lspace/kscience/controls/demo/car/Vector2D; public fun getLocationState ()Lspace/kscience/controls/demo/car/Vector2D;
public fun getSpeedState ()Lspace/kscience/controls/demo/car/Vector2D; public fun getSpeedState ()Lspace/kscience/controls/demo/car/Vector2D;
public fun open (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; protected fun onStart (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun setAccelerationState (Lspace/kscience/controls/demo/car/Vector2D;)V public fun setAccelerationState (Lspace/kscience/controls/demo/car/Vector2D;)V
public fun setLocationState (Lspace/kscience/controls/demo/car/Vector2D;)V public fun setLocationState (Lspace/kscience/controls/demo/car/Vector2D;)V
public fun setSpeedState (Lspace/kscience/controls/demo/car/Vector2D;)V public fun setSpeedState (Lspace/kscience/controls/demo/car/Vector2D;)V

View File

@ -0,0 +1,27 @@
public final class space/kscience/controls/demo/constructor/ComposableSingletons$MainKt {
public static final field INSTANCE Lspace/kscience/controls/demo/constructor/ComposableSingletons$MainKt;
public static field lambda-1 Lkotlin/jvm/functions/Function3;
public static field lambda-2 Lkotlin/jvm/functions/Function3;
public fun <init> ()V
public final fun getLambda-1$constructor ()Lkotlin/jvm/functions/Function3;
public final fun getLambda-2$constructor ()Lkotlin/jvm/functions/Function3;
}
public final class space/kscience/controls/demo/constructor/LinearDrive : space/kscience/controls/constructor/DeviceConstructor {
public static final field $stable I
public fun <init> (Lspace/kscience/dataforge/context/Context;Lspace/kscience/controls/constructor/DoubleRangeState;DLspace/kscience/controls/constructor/PidParameters;Lspace/kscience/dataforge/meta/Meta;)V
public synthetic fun <init> (Lspace/kscience/dataforge/context/Context;Lspace/kscience/controls/constructor/DoubleRangeState;DLspace/kscience/controls/constructor/PidParameters;Lspace/kscience/dataforge/meta/Meta;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun getDrive ()Lspace/kscience/controls/constructor/Drive;
public final fun getEnd ()Lspace/kscience/controls/constructor/LimitSwitch;
public final fun getPid ()Lspace/kscience/controls/constructor/PidRegulator;
public final fun getPosition ()D
public final fun getStart ()Lspace/kscience/controls/constructor/LimitSwitch;
public final fun getTarget ()D
public final fun setTarget (D)V
}
public final class space/kscience/controls/demo/constructor/MainKt {
public static final fun main ()V
public static synthetic fun main ([Ljava/lang/String;)V
}

View File

@ -10,19 +10,11 @@ public final class center/sciprog/devices/mks/MksPdr900Device : space/kscience/c
public final class center/sciprog/devices/mks/MksPdr900Device$Companion : space/kscience/controls/spec/DeviceSpec, space/kscience/dataforge/context/Factory { public final class center/sciprog/devices/mks/MksPdr900Device$Companion : space/kscience/controls/spec/DeviceSpec, space/kscience/dataforge/context/Factory {
public fun build (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)Lcenter/sciprog/devices/mks/MksPdr900Device; public fun build (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)Lcenter/sciprog/devices/mks/MksPdr900Device;
public synthetic fun build (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)Ljava/lang/Object; public synthetic fun build (Lspace/kscience/dataforge/context/Context;Lspace/kscience/dataforge/meta/Meta;)Ljava/lang/Object;
public final fun getChannel ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getChannel ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
public final fun getError ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getError ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
public final fun getPowerOn ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getPowerOn ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
public final fun getValue ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getValue ()Lspace/kscience/controls/spec/DevicePropertySpec;
public fun onClose (Lcenter/sciprog/devices/mks/MksPdr900Device;)V public fun onClose (Lcenter/sciprog/devices/mks/MksPdr900Device;)V
public synthetic fun onClose (Lspace/kscience/controls/api/Device;)V public synthetic fun onClose (Lspace/kscience/controls/api/Device;)V
} }
public final class center/sciprog/devices/mks/NullableStringMetaConverter : space/kscience/dataforge/meta/transformations/MetaConverter {
public static final field INSTANCE Lcenter/sciprog/devices/mks/NullableStringMetaConverter;
public synthetic fun metaToObject (Lspace/kscience/dataforge/meta/Meta;)Ljava/lang/Object;
public fun metaToObject (Lspace/kscience/dataforge/meta/Meta;)Ljava/lang/String;
public synthetic fun objectToMeta (Ljava/lang/Object;)Lspace/kscience/dataforge/meta/Meta;
public fun objectToMeta (Ljava/lang/String;)Lspace/kscience/dataforge/meta/Meta;
}

View File

@ -1,6 +1,6 @@
public final class ru/mipt/npm/devices/pimotionmaster/FxDevicePropertiesKt { public final class ru/mipt/npm/devices/pimotionmaster/FxDevicePropertiesKt {
public static final fun fxProperty (Lspace/kscience/controls/api/Device;Lspace/kscience/controls/spec/DevicePropertySpec;)Ljavafx/beans/property/ReadOnlyProperty; public static final fun fxProperty (Lspace/kscience/controls/api/Device;Lspace/kscience/controls/spec/DevicePropertySpec;)Ljavafx/beans/property/ReadOnlyProperty;
public static final fun fxProperty (Lspace/kscience/controls/api/Device;Lspace/kscience/controls/spec/WritableDevicePropertySpec;)Ljavafx/beans/property/Property; public static final fun fxProperty (Lspace/kscience/controls/api/Device;Lspace/kscience/controls/spec/MutableDevicePropertySpec;)Ljavafx/beans/property/Property;
} }
public final class ru/mipt/npm/devices/pimotionmaster/PiDebugServerKt { public final class ru/mipt/npm/devices/pimotionmaster/PiDebugServerKt {
@ -50,19 +50,19 @@ public final class ru/mipt/npm/devices/pimotionmaster/PiMotionMasterDevice$Axis
} }
public final class ru/mipt/npm/devices/pimotionmaster/PiMotionMasterDevice$Axis$Companion : space/kscience/controls/spec/DeviceSpec { public final class ru/mipt/npm/devices/pimotionmaster/PiMotionMasterDevice$Axis$Companion : space/kscience/controls/spec/DeviceSpec {
public final fun getClosedLoop ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getClosedLoop ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
public final fun getEnabled ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getEnabled ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
public final fun getHalt ()Lspace/kscience/controls/spec/DeviceActionSpec; public final fun getHalt ()Lspace/kscience/controls/spec/DeviceActionSpec;
public final fun getMaxPosition ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getMaxPosition ()Lspace/kscience/controls/spec/DevicePropertySpec;
public final fun getMinPosition ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getMinPosition ()Lspace/kscience/controls/spec/DevicePropertySpec;
public final fun getMove ()Lspace/kscience/controls/spec/DeviceActionSpec; public final fun getMove ()Lspace/kscience/controls/spec/DeviceActionSpec;
public final fun getMoveToReference ()Lspace/kscience/controls/spec/DeviceActionSpec; public final fun getMoveToReference ()Lspace/kscience/controls/spec/DeviceActionSpec;
public final fun getOnTarget ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getOnTarget ()Lspace/kscience/controls/spec/DevicePropertySpec;
public final fun getOpenLoopTarget ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getOpenLoopTarget ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
public final fun getPosition ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getPosition ()Lspace/kscience/controls/spec/DevicePropertySpec;
public final fun getReference ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getReference ()Lspace/kscience/controls/spec/DevicePropertySpec;
public final fun getTargetPosition ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getTargetPosition ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
public final fun getVelocity ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getVelocity ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
} }
public final class ru/mipt/npm/devices/pimotionmaster/PiMotionMasterDevice$Companion : space/kscience/controls/spec/DeviceSpec, space/kscience/dataforge/context/Factory { public final class ru/mipt/npm/devices/pimotionmaster/PiMotionMasterDevice$Companion : space/kscience/controls/spec/DeviceSpec, space/kscience/dataforge/context/Factory {
@ -75,7 +75,7 @@ public final class ru/mipt/npm/devices/pimotionmaster/PiMotionMasterDevice$Compa
public final fun getIdentity ()Lspace/kscience/controls/spec/DevicePropertySpec; public final fun getIdentity ()Lspace/kscience/controls/spec/DevicePropertySpec;
public final fun getInitialize ()Lspace/kscience/controls/spec/DeviceActionSpec; public final fun getInitialize ()Lspace/kscience/controls/spec/DeviceActionSpec;
public final fun getStop ()Lspace/kscience/controls/spec/DeviceActionSpec; public final fun getStop ()Lspace/kscience/controls/spec/DeviceActionSpec;
public final fun getTimeout ()Lspace/kscience/controls/spec/WritableDevicePropertySpec; public final fun getTimeout ()Lspace/kscience/controls/spec/MutableDevicePropertySpec;
} }
public final class ru/mipt/npm/devices/pimotionmaster/PiMotionMasterView : tornadofx/View { public final class ru/mipt/npm/devices/pimotionmaster/PiMotionMasterView : tornadofx/View {

View File

@ -6,18 +6,16 @@ A kotlin API for magix standard and some zero-dependency magix services
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:magix-api:0.2.0`. The Maven coordinates of this project are `space.kscience:magix-api:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:magix-api:0.2.0") implementation("space.kscience:magix-api:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ Java API to work with magix endpoints without Kotlin
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:magix-java-endpoint:0.2.0`. The Maven coordinates of this project are `space.kscience:magix-java-endpoint:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:magix-java-endpoint:0.2.0") implementation("space.kscience:magix-java-endpoint:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ MQTT client magix endpoint
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:magix-mqtt:0.2.0`. The Maven coordinates of this project are `space.kscience:magix-mqtt:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:magix-mqtt:0.2.0") implementation("space.kscience:magix-mqtt:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ RabbitMQ client magix endpoint
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:magix-rabbit:0.2.0`. The Maven coordinates of this project are `space.kscience:magix-rabbit:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:magix-rabbit:0.2.0") implementation("space.kscience:magix-rabbit:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ Magix endpoint (client) based on RSocket
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:magix-rsocket:0.2.0`. The Maven coordinates of this project are `space.kscience:magix-rsocket:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:magix-rsocket:0.2.0") implementation("space.kscience:magix-rsocket:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ A magix event loop implementation in Kotlin. Includes HTTP/SSE and RSocket route
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:magix-server:0.2.0`. The Maven coordinates of this project are `space.kscience:magix-server:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:magix-server:0.2.0") implementation("space.kscience:magix-server:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ Magix history database API
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:magix-storage:0.2.0`. The Maven coordinates of this project are `space.kscience:magix-storage:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:magix-storage:0.2.0") implementation("space.kscience:magix-storage:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:magix-storage-xodus:0.2.0`. The Maven coordinates of this project are `space.kscience:magix-storage-xodus:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:magix-storage-xodus:0.2.0") implementation("space.kscience:magix-storage-xodus:0.3.0")
} }
``` ```

View File

@ -6,18 +6,16 @@ ZMQ client endpoint for Magix
## Artifact: ## Artifact:
The Maven coordinates of this project are `space.kscience:magix-zmq:0.2.0`. The Maven coordinates of this project are `space.kscience:magix-zmq:0.3.0`.
**Gradle Kotlin DSL:** **Gradle Kotlin DSL:**
```kotlin ```kotlin
repositories { repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
//uncomment to access development builds
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation("space.kscience:magix-zmq:0.2.0") implementation("space.kscience:magix-zmq:0.3.0")
} }
``` ```