aboutsummaryrefslogtreecommitdiff
path: root/vfd-mavlink/src/main/scala/org/mavlink/messages/message.scala
diff options
context:
space:
mode:
Diffstat (limited to 'vfd-mavlink/src/main/scala/org/mavlink/messages/message.scala')
-rw-r--r--vfd-mavlink/src/main/scala/org/mavlink/messages/message.scala73
1 files changed, 0 insertions, 73 deletions
diff --git a/vfd-mavlink/src/main/scala/org/mavlink/messages/message.scala b/vfd-mavlink/src/main/scala/org/mavlink/messages/message.scala
deleted file mode 100644
index cf8694a..0000000
--- a/vfd-mavlink/src/main/scala/org/mavlink/messages/message.scala
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.mavlink.messages
-
-import org.mavlink.Packet
-
-import org.mavlink.enums.SystemStatus
-import org.mavlink.enums.SystemStatus._
-
-sealed trait Message
-case class Heartbeat(`type`: Byte, autopilot: Byte, baseMode: Byte, customMode: Int, systemStatus: SystemStatus, mavlinkVersion: Byte) extends Message
-case class RadioStatus(rssi: Byte, remoteRssi: Byte, txBuf: Byte, noise: Byte, remoteNoise: Byte, rxErrors: Short, fixed: Short) extends Message
-case class Attitude(time: Int, roll: Float, pitch: Float, heading: Float) extends Message
-case class Pressure(time: Int, pressure: Float, diffPressure: Float, temperature: Short) extends Message
-case class Battery(id: Byte, function: Byte, `type`: Byte, temperature: Short,
- voltages: Seq[Short], current: Short, currentConsumed: Int, energyConsumed: Int, remaining: Byte) extends Message
-case class Unknown(id: Int, payload: Seq[Byte]) extends Message
-
-object Message {
-
- def unpack(id: Byte, payload: Seq[Byte])(implicit mkReader: Seq[Byte] => PayloadReader): Message = {
- val r = mkReader(payload)
-
- id & 0xff match {
- case 0 =>
- val cm = r.int32
- Heartbeat(r.int8, r.int8, r.int8, cm, SystemStatus(r.int8), r.int8)
- case 29 =>
- Pressure(r.int32, r.float, r.float, r.int16)
- case 30 =>
- Attitude(r.int32, r.float, r.float, r.float)
- case 109 =>
- val re = r.int16
- val fi = r.int16
- RadioStatus(r.int8, r.int8, r.int8, r.int8, r.int8, re, fi)
- case 147 =>
- val cc = r.int32
- val ec = r.int32
- val t = r.int16
- val v = for (i <- 0 until 10) yield r.int16
- val c = r.int16
- val id = r.int8
- val fct = r.int8
- val tpe = r.int8
- val rm = r.int8
- Battery(id, fct, tpe, t, v, c, cc, ec, rm)
-
- case u => Unknown(u, payload)
- }
- }
-
- def pack(m: Message)(implicit mkWriter: Array[Byte] => PayloadWriter): (Byte, Seq[Byte]) = {
- val (id, size) = m match {
- case _: Heartbeat => (0, 9)
- case _: RadioStatus => (109, 9)
- case u: Unknown => (u.id, u.payload.length)
- }
-
- val arr = new Array[Byte](size)
- val w = mkWriter(arr)
-
- m match {
- case Heartbeat(tp, a, b, cm, s, mv) => w.int32(cm); w.int8(tp); w.int8(b); w.int8(s.id.toByte); w.int8(mv);
- case RadioStatus(r, rr, tx, n, rn, rx, fi) => w.int16(rx); w.int16(fi); w.int8(r); w.int8(rr); w.int8(tx); w.int8(n); w.int8(rn);
- case Unknown(_, payload) => for (p <- payload) w.int8(p)
- }
-
- (id.toByte, arr)
-
- }
-
-
-
-}
- \ No newline at end of file