aboutsummaryrefslogtreecommitdiff
path: root/samples
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2013-06-18 19:40:22 +0200
committerJakob Odersky <jodersky@gmail.com>2013-06-18 19:40:22 +0200
commit98241aa830bedb006ae041dce661afd57c3d90a8 (patch)
tree70443e7597aca759733e587220a8323fde89af1f /samples
parentb0c32f5325702dd7f7ef3d5ccc0eb9a2b972cf7a (diff)
downloadakka-serial-98241aa830bedb006ae041dce661afd57c3d90a8.tar.gz
akka-serial-98241aa830bedb006ae041dce661afd57c3d90a8.tar.bz2
akka-serial-98241aa830bedb006ae041dce661afd57c3d90a8.zip
use sbt-native plugin and restructure build
Diffstat (limited to 'samples')
-rw-r--r--samples/src/main/scala/com/github/jodersky/flow/example/Main.scala44
-rw-r--r--samples/src/main/scala/com/github/jodersky/flow/example/SerialHandler.scala36
2 files changed, 80 insertions, 0 deletions
diff --git a/samples/src/main/scala/com/github/jodersky/flow/example/Main.scala b/samples/src/main/scala/com/github/jodersky/flow/example/Main.scala
new file mode 100644
index 0000000..20fffe2
--- /dev/null
+++ b/samples/src/main/scala/com/github/jodersky/flow/example/Main.scala
@@ -0,0 +1,44 @@
+package com.github.jodersky.flow
+package example
+
+import scala.concurrent.ExecutionContext.Implicits.global
+import scala.util.Success
+import scala.util.Try
+
+import com.github.jodersky.flow.Serial
+import com.github.jodersky.flow.Serial._
+
+import akka.actor.ActorSystem
+import akka.actor.Props
+import akka.io.IO
+import akka.util.ByteString
+
+object Main {
+
+ def main(args: Array[String]): Unit = {
+ /*val isInt = Try(args(1).toInt) match { case Success(_) => true; case _ => false }
+ if (!(args.length == 2 && isInt)) {
+ println("invalid parameters")
+ println("parameters: port baud")
+ println("example: /dev/ttyACM0 115200")
+ return
+ }*/
+ val port = "/dev/ttyACM0"
+ val baud = 115200
+
+ //low.Serial.debug(true)
+
+ implicit val system = ActorSystem("flow")
+ val serial = system.actorOf(Props[SerialHandler], name = "serial-handler")
+
+ IO(Serial) ! Serial.Open(serial, port, baud)
+
+ readLine()
+ serial ! Write(ByteString(42))
+
+ readLine()
+ //serial ! Close
+ system.shutdown()
+
+ }
+} \ No newline at end of file
diff --git a/samples/src/main/scala/com/github/jodersky/flow/example/SerialHandler.scala b/samples/src/main/scala/com/github/jodersky/flow/example/SerialHandler.scala
new file mode 100644
index 0000000..d228cb9
--- /dev/null
+++ b/samples/src/main/scala/com/github/jodersky/flow/example/SerialHandler.scala
@@ -0,0 +1,36 @@
+package com.github.jodersky.flow.example
+
+import com.github.jodersky.flow.Serial._
+import com.github.jodersky.flow.low.{Serial => LowSerial}
+import akka.actor.Actor
+import akka.actor.ActorLogging
+import akka.actor.ActorRef
+import akka.util.ByteString
+
+class SerialHandler extends Actor with ActorLogging {
+ var operator: Option[ActorRef] = None
+
+ def receive = {
+ case Opened(operator) => this.operator = Some(operator)
+
+ case CommandFailed(cmd, reason) =>
+ println(s"command ${cmd} failed, reason: ${reason}")
+
+ case Received(data) => println("received data: " + formatData(data))
+
+ case Close =>
+ operator.map(_ ! Close)
+
+ case Closed(_) => println("port closed")
+
+ case Write(data) => {
+ operator.map(_ ! Write(data))
+ }
+
+ case Wrote(data) => println("wrote data: " + formatData(data))
+
+ }
+
+ private def formatData(data: ByteString) = data.mkString("[",",","]")
+
+} \ No newline at end of file