diff options
Diffstat (limited to 'mavlink-library/src/main/scala/com')
-rw-r--r-- | mavlink-library/src/main/scala/com/github/jodersky/mavlink/Parser.scala | 4 | ||||
-rw-r--r-- | mavlink-library/src/main/scala/com/github/jodersky/mavlink/trees/package.scala | 10 |
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 +} |