diff --git a/controls-pi/build.gradle.kts b/controls-pi/build.gradle.kts new file mode 100644 index 0000000..3fa0dbc --- /dev/null +++ b/controls-pi/build.gradle.kts @@ -0,0 +1,12 @@ +plugins { + id("space.kscience.gradle.jvm") + `maven-publish` +} + +dependencies{ + api(project(":controls-core")) + implementation("com.pi4j:pi4j-ktx:2.4.0") // Kotlin DSL + implementation("com.pi4j:pi4j-core:2.3.0") + implementation("com.pi4j:pi4j-plugin-raspberrypi:2.3.0") + implementation("com.pi4j:pi4j-plugin-pigpio:2.3.0") +} \ No newline at end of file diff --git a/controls-pi/src/main/kotlin/space/kscience/controls/pi/PiSerialPort.kt b/controls-pi/src/main/kotlin/space/kscience/controls/pi/PiSerialPort.kt new file mode 100644 index 0000000..4cdee6d --- /dev/null +++ b/controls-pi/src/main/kotlin/space/kscience/controls/pi/PiSerialPort.kt @@ -0,0 +1,25 @@ +package space.kscience.controls.pi + +import com.pi4j.io.serial.FlowControl +import com.pi4j.io.serial.Parity +import com.pi4j.io.serial.Serial +import com.pi4j.io.serial.StopBits +import com.pi4j.ktx.io.open +import com.pi4j.ktx.io.piGpioSerialProvider +import com.pi4j.ktx.io.serial +import space.kscience.controls.ports.AbstractPort +import space.kscience.dataforge.context.Context +import kotlin.coroutines.CoroutineContext + +public class PiSerialPort( + context: Context, + coroutineContext: CoroutineContext = context.coroutineContext, + public val serialBuilder: () -> Serial, +) : AbstractPort(context, coroutineContext) { + + private val serial by lazy { serialBuilder() } + + override suspend fun write(data: ByteArray) { + TODO() + } +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 21b2467..72a29bd 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -43,6 +43,7 @@ include( ":controls-core", ":controls-ktor-tcp", ":controls-serial", + ":controls-pi", ":controls-server", ":controls-opcua", ":controls-modbus",