aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2014-12-21 11:19:11 +0100
committerJakob Odersky <jodersky@gmail.com>2014-12-21 11:19:11 +0100
commitc5a6f9ceab3a99b1f5dda7f00d01bdc7e4c52ea5 (patch)
treec54fd219967e3181925950fba01be984a2aa9075
parent7ed5f8025db1652b6bfaa0dca4dd309f1be6fe22 (diff)
downloadmavigator-c5a6f9ceab3a99b1f5dda7f00d01bdc7e4c52ea5.tar.gz
mavigator-c5a6f9ceab3a99b1f5dda7f00d01bdc7e4c52ea5.tar.bz2
mavigator-c5a6f9ceab3a99b1f5dda7f00d01bdc7e4c52ea5.zip
update mock connection
-rw-r--r--vfd-backend/conf/application.conf2
-rw-r--r--vfd-uav/src/main/scala/vfd/uav/MockConnection.scala17
2 files changed, 9 insertions, 10 deletions
diff --git a/vfd-backend/conf/application.conf b/vfd-backend/conf/application.conf
index cecd0f9..e069b23 100644
--- a/vfd-backend/conf/application.conf
+++ b/vfd-backend/conf/application.conf
@@ -69,7 +69,7 @@ uav.system_id=1
# Type of connection to use
# 'mock' for a sample connection
-uav.connection.type=mock
+uav.connection.type=serial
# Mavlink component id used by this connection (not the web frontend),
# in case it needs to inject messages
diff --git a/vfd-uav/src/main/scala/vfd/uav/MockConnection.scala b/vfd-uav/src/main/scala/vfd/uav/MockConnection.scala
index 1217291..238ccdd 100644
--- a/vfd-uav/src/main/scala/vfd/uav/MockConnection.scala
+++ b/vfd-uav/src/main/scala/vfd/uav/MockConnection.scala
@@ -15,7 +15,7 @@ class MockConnection extends Actor with ActorLogging with Connection {
import Connection._
import context._
- val messageInterval = FiniteDuration(250, MILLISECONDS)
+ val messageInterval = FiniteDuration(100, MILLISECONDS)
override def preStart() = {
context.system.scheduler.schedule(messageInterval, messageInterval) {
@@ -42,14 +42,14 @@ object MockPackets {
Packet(5, 42, 1, id, payload).toSeq.toArray
}
}
-
+
def messages = Heartbeat(0) ::
Motor(Random.nextInt(101).toByte, Random.nextInt(101).toByte, Random.nextInt(101).toByte, Random.nextInt(101).toByte) ::
Attitude((Random.nextInt(160) - 80).toShort, (Random.nextInt(160) - 80).toShort.toShort, Random.nextInt(360).toShort) ::
Power(Random.nextInt(12000).toShort) :: Nil
-
+
def valid: Array[Byte] = messages.flatMap(_.bytes).toArray
-
+
val invalidCrc = Array(254, 1, 123, 13, 13).map(_.toByte)
val invalidOverflow = {
val data = Array.fill[Byte](Packet.MaxPayloadLength + 10)(42)
@@ -58,15 +58,14 @@ object MockPackets {
data(1) = -1
data
}
-
+
def randomInvalid = Random.nextInt(2) match {
case 0 => invalidCrc
case 1 => invalidOverflow
}
- def random: Array[Byte] = if (Random.nextInt(5) == 0) {
- randomInvalid
- } else {
- valid
+ def random: Array[Byte] = Random.nextInt(messages.length + 1) match {
+ case 0 => randomInvalid
+ case i => messages(i - 1).bytes
}
} \ No newline at end of file