aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2013-07-11 15:41:26 +0200
committerJakob Odersky <jodersky@gmail.com>2013-07-11 15:41:26 +0200
commit1b6b235e6fc31481b6f672e423e6779b0db14329 (patch)
tree4c2e67c8da38161493dd0d79a534efeba03d9a2e
parentb686a116e484cc8f315443e09a8e20a9ccb7abce (diff)
downloadakka-serial-1b6b235e6fc31481b6f672e423e6779b0db14329.tar.gz
akka-serial-1b6b235e6fc31481b6f672e423e6779b0db14329.tar.bz2
akka-serial-1b6b235e6fc31481b6f672e423e6779b0db14329.zip
add settings support to high-level scala code
-rw-r--r--flow-main/src/main/scala/com/github/jodersky/flow/Parity.scala8
-rw-r--r--flow-main/src/main/scala/com/github/jodersky/flow/Serial.scala2
-rw-r--r--flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala2
-rw-r--r--flow-main/src/main/scala/com/github/jodersky/flow/internal/InternalSerial.scala2
4 files changed, 11 insertions, 3 deletions
diff --git a/flow-main/src/main/scala/com/github/jodersky/flow/Parity.scala b/flow-main/src/main/scala/com/github/jodersky/flow/Parity.scala
new file mode 100644
index 0000000..9a0d3ac
--- /dev/null
+++ b/flow-main/src/main/scala/com/github/jodersky/flow/Parity.scala
@@ -0,0 +1,8 @@
+package com.github.jodersky.flow
+
+object Parity extends Enumeration {
+ type Parity = Value
+ val None = Value(0)
+ val Odd = Value(1)
+ val Even = Value(2)
+} \ No newline at end of file
diff --git a/flow-main/src/main/scala/com/github/jodersky/flow/Serial.scala b/flow-main/src/main/scala/com/github/jodersky/flow/Serial.scala
index 6e4aefb..bff0ad0 100644
--- a/flow-main/src/main/scala/com/github/jodersky/flow/Serial.scala
+++ b/flow-main/src/main/scala/com/github/jodersky/flow/Serial.scala
@@ -10,7 +10,7 @@ object Serial extends ExtensionKey[SerialExt] {
trait Command
trait Event
- case class Open(handler: ActorRef, port: String, baud: Int) extends Command
+ case class Open(handler: ActorRef, port: String, baud: Int, characterSize: Int = 8, twoStopBits: Boolean = false, parity: Parity.Parity = Parity.None) extends Command
case class Opened(port: String) extends Event
case class OpenFailed(port: String, reason: Throwable) extends Event
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 688ae3c..1a38ef5 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
@@ -29,7 +29,7 @@ class SerialManager extends Actor with ActorLogging {
}
def receive = {
- case Open(handler, port, baud) => Try { InternalSerial.open(port, baud) } match {
+ case Open(handler, port, baud, cs, tsb, parity) => Try { InternalSerial.open(port, baud, cs, tsb, parity.id) } match {
case Failure(t) => {
log.debug(s"failed to open low serial port at ${port}, baud ${baud}, reason: " + t.getMessage())
handler ! OpenFailed(port, t)
diff --git a/flow-main/src/main/scala/com/github/jodersky/flow/internal/InternalSerial.scala b/flow-main/src/main/scala/com/github/jodersky/flow/internal/InternalSerial.scala
index f3e08b8..fd5aaa4 100644
--- a/flow-main/src/main/scala/com/github/jodersky/flow/internal/InternalSerial.scala
+++ b/flow-main/src/main/scala/com/github/jodersky/flow/internal/InternalSerial.scala
@@ -76,7 +76,7 @@ object InternalSerial {
}
/** Open a new connection to a serial port. */
- def open(port: String, baud: Int, characterSize: Int = 8, twoStopBits: Boolean = false, parity: Int = 0): InternalSerial = synchronized {
+ def open(port: String, baud: Int, characterSize: Int, twoStopBits: Boolean, parity: Int): InternalSerial = synchronized {
val pointer = new Array[Long](1)
except(NativeSerial.open(port, baud, characterSize, twoStopBits, parity, pointer), port)
new InternalSerial(port, pointer(0))