diff options
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.scala | 22 |
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 |