diff options
Diffstat (limited to 'scala/ace/src/main/scala/com/github/jodersky/ace/serial')
-rw-r--r-- | scala/ace/src/main/scala/com/github/jodersky/ace/serial/Serial.scala | 15 | ||||
-rw-r--r-- | scala/ace/src/main/scala/com/github/jodersky/ace/serial/SerialProvider.scala | 7 |
2 files changed, 22 insertions, 0 deletions
diff --git a/scala/ace/src/main/scala/com/github/jodersky/ace/serial/Serial.scala b/scala/ace/src/main/scala/com/github/jodersky/ace/serial/Serial.scala new file mode 100644 index 0000000..b688ec8 --- /dev/null +++ b/scala/ace/src/main/scala/com/github/jodersky/ace/serial/Serial.scala @@ -0,0 +1,15 @@ +package com.github.jodersky.ace.serial + +import com.github.jodersky.ace.protocol.ReactiveLayer + +trait Serial extends ReactiveLayer[Nothing, Seq[Int]] { + protected def receive(nothing: Nothing) = throw new UnsupportedOperationException("A receive function cannot be called on the lowest layer.") + + def begin(): Unit + def close(): Unit + +} + +object Serial { + def open(port: String, baudRate: Int)(implicit provider: SerialProvider) = provider.open(port, baudRate) +}
\ No newline at end of file diff --git a/scala/ace/src/main/scala/com/github/jodersky/ace/serial/SerialProvider.scala b/scala/ace/src/main/scala/com/github/jodersky/ace/serial/SerialProvider.scala new file mode 100644 index 0000000..9c7b95c --- /dev/null +++ b/scala/ace/src/main/scala/com/github/jodersky/ace/serial/SerialProvider.scala @@ -0,0 +1,7 @@ +package com.github.jodersky.ace.serial + +trait SerialProvider { + + def open(port: String, baudRate: Int): Serial + +}
\ No newline at end of file |