aboutsummaryrefslogtreecommitdiff
path: root/mavlink-library/src/main/scala/com
diff options
context:
space:
mode:
Diffstat (limited to 'mavlink-library/src/main/scala/com')
-rw-r--r--mavlink-library/src/main/scala/com/github/jodersky/mavlink/Parser.scala4
-rw-r--r--mavlink-library/src/main/scala/com/github/jodersky/mavlink/trees/package.scala10
2 files changed, 10 insertions, 4 deletions
diff --git a/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Parser.scala b/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Parser.scala
index e6f0f07..ce645be 100644
--- a/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Parser.scala
+++ b/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Parser.scala
@@ -131,10 +131,10 @@ class Parser(reporter: Reporter) {
case "uint64_t" => IntType(8, false)
case "float" => FloatType(4)
case "double" => FloatType(8)
- case "char" => IntType(1, true)
+ case "char" => CharType
case ArrayPattern("char", l) => StringType(l.toInt)
case ArrayPattern(u, l) => ArrayType(parseType(u, node, file), l.toInt)
case unknown => fatal("unknown field type " + unknown, node, file)
}
-} \ No newline at end of file
+}
diff --git a/mavlink-library/src/main/scala/com/github/jodersky/mavlink/trees/package.scala b/mavlink-library/src/main/scala/com/github/jodersky/mavlink/trees/package.scala
index f59eda6..a26be77 100644
--- a/mavlink-library/src/main/scala/com/github/jodersky/mavlink/trees/package.scala
+++ b/mavlink-library/src/main/scala/com/github/jodersky/mavlink/trees/package.scala
@@ -18,12 +18,18 @@ package trees {
for (field <- orderedFields) {
c = c.accumulate((field.nativeType + " ").getBytes)
c = c.accumulate((field.name + " ").getBytes)
+
+ field.tpe match {
+ case ArrayType(_, len) => c = c.accumulate(len.toByte)
+ case _ =>
+ }
+
}
(c.lsb ^ c.msb).toByte
}
}
- trait Type extends Tree {
+ sealed trait Type extends Tree {
def width: Int // width in bytes of the type
def sizeof: Int = width // size of bytes of the type
}
@@ -42,4 +48,4 @@ package trees {
override def sizeof = width * maxLength
}
-} \ No newline at end of file
+}