diff options
Diffstat (limited to 'flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala')
-rw-r--r-- | flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala b/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala index e47de31..ce75cc0 100644 --- a/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala +++ b/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala @@ -8,8 +8,7 @@ import scala.util.Try import com.github.jodersky.flow.internal.InternalSerial -import Serial.Open -import Serial.OpenFailed +import Serial._ import akka.actor.Actor import akka.actor.ActorLogging import akka.actor.OneForOneStrategy @@ -33,9 +32,13 @@ class SerialManager extends Actor with ActorLogging { } def receive = { - case Open(port, baud, cs, tsb, parity) => Try { InternalSerial.open(port, baud, cs, tsb, parity.id) } match { - case Failure(t) => sender ! OpenFailed(t, port, baud, cs, tsb, parity) - case Success(serial) => context.actorOf(Props(classOf[SerialOperator], sender, serial), name = escapePortString(port)) + case c @ Open(port, baud, cs, tsb, parity) => Try { InternalSerial.open(port, baud, cs, tsb, parity.id) } match { + case Failure(t) => sender ! CommandFailed(c, t) + case Success(serial) => { + val operator = context.actorOf(Props(classOf[SerialOperator], serial), name = escapePortString(port)) + val opened = Opened(serial.port, serial.baud, serial.characterSize, serial.twoStopBits, Parity(serial.parity)) + sender.tell(opened, operator) + } } } |