aboutsummaryrefslogtreecommitdiff
path: root/scala/ace/src/main/scala/com/github/jodersky/ace/protocol/SecureSerial.scala
diff options
context:
space:
mode:
Diffstat (limited to 'scala/ace/src/main/scala/com/github/jodersky/ace/protocol/SecureSerial.scala')
-rw-r--r--scala/ace/src/main/scala/com/github/jodersky/ace/protocol/SecureSerial.scala22
1 files changed, 22 insertions, 0 deletions
diff --git a/scala/ace/src/main/scala/com/github/jodersky/ace/protocol/SecureSerial.scala b/scala/ace/src/main/scala/com/github/jodersky/ace/protocol/SecureSerial.scala
new file mode 100644
index 0000000..e229b82
--- /dev/null
+++ b/scala/ace/src/main/scala/com/github/jodersky/ace/protocol/SecureSerial.scala
@@ -0,0 +1,22 @@
+package com.github.jodersky.ace.protocol
+
+import jssc.SerialPort
+import scala.concurrent.ExecutionContext.Implicits.global
+import scala.util.Try
+
+class SecureSerial(port: SerialPort) { self =>
+ val physical = new PhysicalLayer(port)
+ val link = new LinkLayer
+ val transport = new TransportLayer
+
+ val application = new ReactiveLayer[Message, String] {
+ def receive(message: Message) = Console.println(message.data.mkString(""))
+ def write(s: String) = writeToLower(Message(s.map(_.toInt))).map(x => s)
+ }
+
+ def send(s: String) = application.write(s)
+ def close() = Try(port.closePort())
+
+ physical connect link connect transport connect application
+ physical.begin()
+} \ No newline at end of file