aboutsummaryrefslogtreecommitdiff
path: root/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala
diff options
context:
space:
mode:
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.scala17
1 files changed, 12 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 eb8c44e..40739ca 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
@@ -5,9 +5,8 @@ import scala.util.Success
import scala.util.Try
import com.github.jodersky.flow.internal.SerialConnection
+import com.github.jodersky.flow.internal.Watcher
-import Serial.CommandFailed
-import Serial.Open
import akka.actor.Actor
import akka.actor.ActorLogging
import akka.actor.OneForOneStrategy
@@ -27,13 +26,21 @@ class SerialManager extends Actor with ActorLogging {
case _: Exception => Stop
}
+ private val watcher = actorOf(Watcher(self), "watcher")
+
def receive = {
- case open @ Open(port, settings, bufferSize) => Try {
+
+ case open @ Serial.Open(port, settings, bufferSize) => Try {
SerialConnection.open(port, settings)
} match {
case Success(connection) => context.actorOf(SerialOperator(connection, bufferSize, sender), name = escapePortString(connection.port))
- case Failure(err) => sender ! CommandFailed(open, err)
+ case Failure(err) => sender ! Serial.CommandFailed(open, err)
}
+
+ case w: Serial.Watch => watcher.forward(w)
+
+ case u: Serial.Unwatch => watcher.forward(u)
+
}
}
@@ -45,4 +52,4 @@ object SerialManager {
case c => c
}
-} \ No newline at end of file
+}