aboutsummaryrefslogtreecommitdiff
path: root/flow-main/src/main/scala/com/github/jodersky/flow/Serial.scala
blob: bff0ad03eea9ac9fd556edcf79294e6169962c01 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.github.jodersky.flow

import akka.actor.ActorRef
import akka.actor.ExtensionKey
import akka.util.ByteString

/** Defines messages used by serial IO layer. */
object Serial extends ExtensionKey[SerialExt] {

  trait Command
  trait Event
  
  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
  
  case class Received(data: ByteString) extends Event
  
  case class Write(data: ByteString, ack: Boolean = false) extends Command
  case class Wrote(data: ByteString) extends Event
  
  case object Close extends Command
  case class Closed(error: Option[Exception]) extends Event
  
}