aboutsummaryrefslogtreecommitdiff
path: root/vfd-uav/src/main/scala/vfd/uav/MockConnection.scala
diff options
context:
space:
mode:
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
- }
-}