aboutsummaryrefslogtreecommitdiff
path: root/vfd-uav/src/main/scala/vfd/uav/MockConnection.scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2016-02-24 20:33:51 -0800
committerJakob Odersky <jakob@odersky.com>2016-02-24 20:33:51 -0800
commit8186b3622ce1c9d2b50df3d264ab526dc1e61d77 (patch)
treeb4446408291c9f179e1c270a561523023ac6a105 /vfd-uav/src/main/scala/vfd/uav/MockConnection.scala
parent6c4e8849d753734b3e50523dcdb372fbdbccc2c1 (diff)
parenta41de68066007852d7d3dbf019d75b4caf7463ad (diff)
downloadmavigator-8186b3622ce1c9d2b50df3d264ab526dc1e61d77.tar.gz
mavigator-8186b3622ce1c9d2b50df3d264ab526dc1e61d77.tar.bz2
mavigator-8186b3622ce1c9d2b50df3d264ab526dc1e61d77.zip
Merge branch 'akka-streams'
Diffstat (limited to 'vfd-uav/src/main/scala/vfd/uav/MockConnection.scala')
-rw-r--r--vfd-uav/src/main/scala/vfd/uav/MockConnection.scala77
1 files changed, 0 insertions, 77 deletions
diff --git a/vfd-uav/src/main/scala/vfd/uav/MockConnection.scala b/vfd-uav/src/main/scala/vfd/uav/MockConnection.scala
deleted file mode 100644
index d08a8b6..0000000
--- a/vfd-uav/src/main/scala/vfd/uav/MockConnection.scala
+++ /dev/null
@@ -1,77 +0,0 @@
-package vfd.uav
-
-import java.util.concurrent.TimeUnit.MILLISECONDS
-import scala.concurrent.duration.FiniteDuration
-import scala.util.Random
-import org.mavlink.Packet
-import org.mavlink.enums.MavAutopilot
-import org.mavlink.enums.MavModeFlag
-import org.mavlink.enums.MavState
-import org.mavlink.enums.MavType
-import org.mavlink.messages.Heartbeat
-import Connection.Received
-import akka.actor.Actor
-import akka.actor.ActorLogging
-import akka.actor.Props
-import akka.util.ByteString
-import scala.concurrent.duration._
-import org.mavlink.messages.Message
-import vfd.uav.mock.RandomFlightPlan
-
-class MockConnection(
- localSystemId: Byte,
- localComponentId: Byte,
- remoteSystemId: Byte,
- prescaler: Int)
- extends Actor with ActorLogging with Connection with MavlinkUtil {
-
- import Connection._
- import context._
-
- override val systemId = remoteSystemId
- override val componentId = remoteSystemId
-
- val plan = new RandomFlightPlan
-
- def scheduleMessage(delay: FiniteDuration)(fct: => Message) = system.scheduler.schedule(delay, delay){
- sendAll(Received(assemble(fct)))
- }
- def scheduleBytes(delay: FiniteDuration)(fct: => Array[Byte]) = system.scheduler.schedule(delay, delay){
- sendAll(Received(ByteString(fct)))
- }
-
- override def preStart() = {
- //increment state
- system.scheduler.schedule(0.01.seconds * prescaler, 0.01.seconds * prescaler){plan.tick(0.01)}
-
- //send messages
- scheduleMessage(0.1.seconds * prescaler)(plan.position)
- scheduleMessage(0.05.seconds * prescaler)(plan.attitude)
- scheduleMessage(0.05.seconds * prescaler)(plan.motors)
- scheduleMessage(0.1.seconds * prescaler)(plan.distance)
- scheduleMessage(1.seconds)(plan.heartbeat)
-
- //simulate noisy line
- scheduleBytes(0.3.seconds * prescaler)(MockPackets.invalidCrc)
- scheduleBytes(1.5.seconds * prescaler)(MockPackets.invalidOverflow)
- }
-
- def receive = registration
-
-}
-
-object MockConnection {
- def apply(systemId: Byte, componentId: Byte, remoteSystemId: Byte, prescaler: Int = 1) =
- Props(classOf[MockConnection], systemId, componentId, remoteSystemId, prescaler)
-}
-
-object MockPackets {
- val invalidCrc = Array(254, 1, 123, 13, 13).map(_.toByte)
- val invalidOverflow = {
- val data = Array.fill[Byte](Packet.MaxPayloadLength + 100)(42)
- data(0) = -2
- data(1) = 2
- data(1) = -1
- data
- }
-}