blob: e229b8257f61b5c947eba0027cba5e3fadce4f20 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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()
}
|