diff options
Diffstat (limited to 'site/jekyll/_snippet.md')
-rw-r--r-- | site/jekyll/_snippet.md | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/site/jekyll/_snippet.md b/site/jekyll/_snippet.md deleted file mode 100644 index 65598ec..0000000 --- a/site/jekyll/_snippet.md +++ /dev/null @@ -1,57 +0,0 @@ -{% highlight scala %} -import akka.actor.{Actor, ActorLogging, ActorRef, Props, Terminated} -import akka.io.IO -import akka.util.ByteString -import com.github.jodersky.flow.{Serial, SerialSettings} - -/** - * Sample actor representing a simple terminal. - */ -class Terminal(port: String, settings: SerialSettings) extends Actor with ActorLogging { - import context._ - - override def preStart() = { - log.info(s"Requesting manager to open port: ${port}, baud: ${settings.baud}") - IO(Serial) ! Serial.Open(port, settings) - } - - def receive: Receive = { - - case Serial.CommandFailed(cmd, reason) => - log.error(s"Connection failed, stopping terminal. Reason: ${reason}") - context stop self - - case Serial.Opened(port) => - log.info(s"Port ${port} is now open.") - context become opened(sender) - context watch sender // get notified in the event the operator crashes - - } - - def opened(operator: ActorRef): Receive = { - - case Serial.Received(data) => - log.info(s"Received data: " + data) - - case Serial.Closed => - log.info("Operator closed normally, exiting terminal.") - context stop self - - case Terminated(`operator`) => - log.error("Operator crashed unexpectedly, exiting terminal.") - context stop self - - case ":q" => - operator ! Serial.Close - - case str: String => - operator ! Serial.Write(ByteString(str)) - - } - -} - -object Terminal { - def apply(port: String, settings: SerialSettings) = Props(classOf[Terminal], port, settings) -} -{% endhighlight %} |