Skip to content

Commit 5b655a9

Browse files
authored
Merge pull request #9 from SciProgCentre/dev
0.2.0
2 parents 64e240f + 61af278 commit 5b655a9

File tree

145 files changed

+5187
-1063
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

145 files changed

+5187
-1063
lines changed

CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Changelog
2+
3+
## Unreleased
4+
5+
### Added
6+
- Core interfaces for building a device server
7+
- Magix service for binding controls devices (both as RPC client and server)
8+
- A plugin for Controls-kt device server on top of modbus-rtu/modbus-tcp protocols
9+
- A client and server connectors for OPC-UA via Eclipse Milo
10+
- Implementation of byte ports on top os ktor-io asynchronous API
11+
- Implementation of direct serial port communication with JSerialComm
12+
- A combined Magix event loop server with web server for visualization.
13+
- An API for stand-alone Controls-kt device or a hub.
14+
- An implementation of controls-storage on top of JetBrains Xodus.
15+
- A kotlin API for magix standard and some zero-dependency magix services
16+
- Java API to work with magix endpoints without Kotlin
17+
- MQTT client magix endpoint
18+
- RabbitMQ client magix endpoint
19+
- Magix endpoint (client) based on RSocket
20+
- A magix event loop implementation in Kotlin. Includes HTTP/SSE and RSocket routes.
21+
- Magix history database API
22+
- ZMQ client endpoint for Magix
23+
24+
### Changed
25+
26+
### Deprecated
27+
28+
### Removed
29+
30+
### Fixed
31+
32+
### Security

README.md

Lines changed: 49 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -43,143 +43,158 @@ Example view of a demo:
4343

4444

4545
### [controls-core](controls-core)
46-
>
46+
> Core interfaces for building a device server
4747
>
4848
> **Maturity**: EXPERIMENTAL
4949
>
5050
> **Features:**
5151
> - [device](controls-core/src/commonMain/kotlin/space/kscience/controls/api/Device.kt) : Device API with subscription (asynchronous and pseudo-synchronous properties)
5252
> - [deviceMessage](controls-core/src/commonMain/kotlin/space/kscience/controls/api/DeviceMessage.kt) : Specification for messages used to communicate between Controls-kt devices.
5353
> - [deviceHub](controls-core/src/commonMain/kotlin/space/kscience/controls/api/DeviceHub.kt) : Grouping of devices into local tree-like hubs.
54+
> - [deviceSpec](controls-core/src/commonMain/kotlin/space/kscience/controls/spec) : Mechanics and type-safe builders for devices. Including separation of device specification and device state.
55+
> - [deviceManager](controls-core/src/commonMain/kotlin/space/kscience/controls/manager) : DataForge DI integration for devices. Includes device builders.
56+
> - [ports](controls-core/src/commonMain/kotlin/space/kscience/controls/ports) : Working with asynchronous data sending and receiving raw byte arrays
5457
5558

56-
### [controls-ktor-tcp](controls-ktor-tcp)
57-
>
59+
### [controls-magix](controls-magix)
60+
> Magix service for binding controls devices (both as RPC client and server)
5861
>
5962
> **Maturity**: EXPERIMENTAL
60-
61-
### [controls-magix-client](controls-magix-client)
62-
>
6363
>
64-
> **Maturity**: EXPERIMENTAL
64+
> **Features:**
65+
> - [controlsMagix](controls-magix/src/commonMain/kotlin/space/kscience/controls/client/controlsMagix.kt) : Connect a `DeviceManage` with one or many devices to the Magix endpoint
66+
> - [DeviceClient](controls-magix/src/commonMain/kotlin/space/kscience/controls/client/DeviceClient.kt) : A remote connector to Controls-kt device via Magix
67+
6568

6669
### [controls-modbus](controls-modbus)
67-
>
70+
> A plugin for Controls-kt device server on top of modbus-rtu/modbus-tcp protocols
6871
>
6972
> **Maturity**: EXPERIMENTAL
73+
>
74+
> **Features:**
75+
> - [modbusRegistryMap](controls-modbus/src/main/kotlin/space/kscience/controls/modbus/ModbusRegistryMap.kt) : Type-safe modbus registry map. Allows to define both single-register and multi-register entries (using DataForge IO).
76+
Automatically checks consistency.
77+
> - [modbusProcessImage](controls-modbus/src/main/kotlin/space/kscience/controls/modbus/DeviceProcessImage.kt) : Binding of slave (server) modbus device to Controls-kt device
78+
> - [modbusDevice](controls-modbus/src/main/kotlin/space/kscience/controls/modbus/ModbusDevice.kt) : A device with additional methods to work with modbus registers.
79+
7080

7181
### [controls-opcua](controls-opcua)
72-
>
82+
> A client and server connectors for OPC-UA via Eclipse Milo
83+
>
84+
> **Maturity**: EXPERIMENTAL
85+
>
86+
> **Features:**
87+
> - [opcuaClient](controls-opcua/src/main/kotlin/space/kscience/controls/opcua/client) : Connect a Controls-kt as a client to OPC UA server
88+
> - [opcuaServer](controls-opcua/src/main/kotlin/space/kscience/controls/opcua/server) : Create an OPC UA server on top of Controls-kt device (or device hub)
89+
90+
91+
### [controls-pi](controls-pi)
92+
> Utils to work with controls-kt on Raspberry pi
7393
>
7494
> **Maturity**: EXPERIMENTAL
7595
96+
### [controls-ports-ktor](controls-ports-ktor)
97+
> Implementation of byte ports on top os ktor-io asynchronous API
98+
>
99+
> **Maturity**: PROTOTYPE
100+
76101
### [controls-serial](controls-serial)
77-
>
102+
> Implementation of direct serial port communication with JSerialComm
78103
>
79104
> **Maturity**: EXPERIMENTAL
80105
81106
### [controls-server](controls-server)
82-
>
107+
> A combined Magix event loop server with web server for visualization.
83108
>
84-
> **Maturity**: EXPERIMENTAL
109+
> **Maturity**: PROTOTYPE
85110
86111
### [controls-storage](controls-storage)
87-
>
112+
> An API for stand-alone Controls-kt device or a hub.
88113
>
89114
> **Maturity**: PROTOTYPE
90115
91116
### [demo](demo)
92-
>
93117
>
94118
> **Maturity**: EXPERIMENTAL
95119
96120
### [magix](magix)
97-
>
98121
>
99122
> **Maturity**: EXPERIMENTAL
100123
101124
### [controls-storage/controls-xodus](controls-storage/controls-xodus)
102-
>
125+
> An implementation of controls-storage on top of JetBrains Xodus.
103126
>
104127
> **Maturity**: PROTOTYPE
105128
106129
### [demo/all-things](demo/all-things)
107-
>
108130
>
109131
> **Maturity**: EXPERIMENTAL
110132
111133
### [demo/car](demo/car)
112-
>
113134
>
114135
> **Maturity**: EXPERIMENTAL
115136
116137
### [demo/echo](demo/echo)
117-
>
118138
>
119139
> **Maturity**: EXPERIMENTAL
120140
121141
### [demo/magix-demo](demo/magix-demo)
122-
>
123142
>
124143
> **Maturity**: EXPERIMENTAL
125144
126145
### [demo/many-devices](demo/many-devices)
127-
>
128146
>
129147
> **Maturity**: EXPERIMENTAL
130148
131149
### [demo/mks-pdr900](demo/mks-pdr900)
132-
>
133150
>
134151
> **Maturity**: EXPERIMENTAL
135152
136153
### [demo/motors](demo/motors)
137-
>
138154
>
139155
> **Maturity**: EXPERIMENTAL
140156
141157
### [magix/magix-api](magix/magix-api)
142-
>
158+
> A kotlin API for magix standard and some zero-dependency magix services
143159
>
144160
> **Maturity**: EXPERIMENTAL
145161
146-
### [magix/magix-java-client](magix/magix-java-client)
147-
>
162+
### [magix/magix-java-endpoint](magix/magix-java-endpoint)
163+
> Java API to work with magix endpoints without Kotlin
148164
>
149165
> **Maturity**: EXPERIMENTAL
150166
151167
### [magix/magix-mqtt](magix/magix-mqtt)
152-
>
168+
> MQTT client magix endpoint
153169
>
154170
> **Maturity**: PROTOTYPE
155171
156172
### [magix/magix-rabbit](magix/magix-rabbit)
157-
>
173+
> RabbitMQ client magix endpoint
158174
>
159175
> **Maturity**: PROTOTYPE
160176
161177
### [magix/magix-rsocket](magix/magix-rsocket)
162-
>
178+
> Magix endpoint (client) based on RSocket
163179
>
164180
> **Maturity**: EXPERIMENTAL
165181
166182
### [magix/magix-server](magix/magix-server)
167-
>
183+
> A magix event loop implementation in Kotlin. Includes HTTP/SSE and RSocket routes.
168184
>
169185
> **Maturity**: EXPERIMENTAL
170186
171187
### [magix/magix-storage](magix/magix-storage)
172-
>
188+
> Magix history database API
173189
>
174-
> **Maturity**: EXPERIMENTAL
190+
> **Maturity**: PROTOTYPE
175191
176192
### [magix/magix-zmq](magix/magix-zmq)
177-
>
193+
> ZMQ client endpoint for Magix
178194
>
179195
> **Maturity**: EXPERIMENTAL
180196
181197
### [magix/magix-storage/magix-storage-xodus](magix/magix-storage/magix-storage-xodus)
182-
>
183198
>
184199
> **Maturity**: PROTOTYPE
185200

build.gradle.kts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ plugins {
66
id("space.kscience.gradle.project")
77
}
88

9-
val dataforgeVersion: String by extra("0.6.1")
9+
val dataforgeVersion: String by extra("0.6.2-dev-3")
1010
val ktorVersion: String by extra(space.kscience.gradle.KScienceVersions.ktorVersion)
1111
val rsocketVersion by extra("0.15.4")
1212
val xodusVersion by extra("2.0.1")
1313

1414
allprojects {
1515
group = "space.kscience"
16-
version = "0.2.0-dev-1"
16+
version = "0.2.0"
1717
repositories{
1818
maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
1919
}
@@ -29,10 +29,9 @@ ksciencePublish {
2929
if (isInDevelopment) {
3030
"https://maven.pkg.jetbrains.space/spc/p/sci/dev"
3131
} else {
32-
"https://maven.pkg.jetbrains.space/spc/p/sci/release"
32+
"https://maven.pkg.jetbrains.space/spc/p/sci/maven"
3333
}
3434
)
35-
space("https://maven.pkg.jetbrains.space/spc/p/controls/maven")
3635
}
3736

3837
readme.readmeTemplate = file("docs/templates/README-TEMPLATE.md")

controls-core/README.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Module controls-core
2+
3+
Core interfaces for building a device server
4+
5+
## Features
6+
7+
- [device](src/commonMain/kotlin/space/kscience/controls/api/Device.kt) : Device API with subscription (asynchronous and pseudo-synchronous properties)
8+
- [deviceMessage](src/commonMain/kotlin/space/kscience/controls/api/DeviceMessage.kt) : Specification for messages used to communicate between Controls-kt devices.
9+
- [deviceHub](src/commonMain/kotlin/space/kscience/controls/api/DeviceHub.kt) : Grouping of devices into local tree-like hubs.
10+
- [deviceSpec](src/commonMain/kotlin/space/kscience/controls/spec) : Mechanics and type-safe builders for devices. Including separation of device specification and device state.
11+
- [deviceManager](src/commonMain/kotlin/space/kscience/controls/manager) : DataForge DI integration for devices. Includes device builders.
12+
- [ports](src/commonMain/kotlin/space/kscience/controls/ports) : Working with asynchronous data sending and receiving raw byte arrays
13+
14+
15+
## Usage
16+
17+
## Artifact:
18+
19+
The Maven coordinates of this project are `space.kscience:controls-core:0.2.0`.
20+
21+
**Gradle Kotlin DSL:**
22+
```kotlin
23+
repositories {
24+
maven("https://repo.kotlin.link")
25+
//uncomment to access development builds
26+
//maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev")
27+
mavenCentral()
28+
}
29+
30+
dependencies {
31+
implementation("space.kscience:controls-core:0.2.0")
32+
}
33+
```

0 commit comments

Comments
 (0)