diff options
Diffstat (limited to 'mavigator-uav/src/main/scala/mavigator/uav/Uav.scala')
-rw-r--r-- | mavigator-uav/src/main/scala/mavigator/uav/Uav.scala | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/mavigator-uav/src/main/scala/mavigator/uav/Uav.scala b/mavigator-uav/src/main/scala/mavigator/uav/Uav.scala index ed677ea..06a8f00 100644 --- a/mavigator-uav/src/main/scala/mavigator/uav/Uav.scala +++ b/mavigator-uav/src/main/scala/mavigator/uav/Uav.scala @@ -1,6 +1,7 @@ package mavigator package uav +import java.lang.IllegalArgumentException import mock._ import akka._ import akka.actor._ @@ -10,6 +11,23 @@ import akka.stream.scaladsl._ class Uav(system: ExtendedActorSystem) extends Extension { private lazy val config = system.settings.config.getConfig("mavigator.uav") + private lazy val tpe = config.getString("type") + private lazy val componentId = config.getInt("componentId").toByte + private lazy val heartbeat = config.getInt("heartbeat") + private lazy val connection = config.getConfig(tpe) + + lazy val source = tpe match { + case "mock" => + new MockConnection( + connection.getInt("remote_system_id").toByte, + componentId, + connection.getDouble("prescaler") + ) + + case "serial" => ??? + + case _ => throw new IllegalArgumentException(s"Unsupported connection type: $tpe") + } def connect(): Flow[ByteString, ByteString, NotUsed] = { Flow.fromSinkAndSource( |