aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-08-13 07:33:32 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-08-13 07:33:32 +0200
commitda9d9781f999361009b2c7b8e9b18d0d500c072c (patch)
treea867c8da42a5c10e8635913214893b785bd7ad68 /Tools
parentb3d2efc90af671f13f8f473230e3af6e8d91153c (diff)
downloadpx4-firmware-da9d9781f999361009b2c7b8e9b18d0d500c072c.tar.gz
px4-firmware-da9d9781f999361009b2c7b8e9b18d0d500c072c.tar.bz2
px4-firmware-da9d9781f999361009b2c7b8e9b18d0d500c072c.zip
Final version of log conversion script, runs with Python 2 or 3 on Windows, Linux and MacOS. Tested on Mac with 2 and 3
Diffstat (limited to 'Tools')
-rw-r--r--Tools/sdlog2_dump.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/Tools/sdlog2_dump.py b/Tools/sdlog2_dump.py
index 8746a9947..a376e03d3 100644
--- a/Tools/sdlog2_dump.py
+++ b/Tools/sdlog2_dump.py
@@ -198,14 +198,19 @@ class SDLog2Parser:
if runningPython3:
data = struct.unpack(self.MSG_FORMAT_STRUCT, self.__buffer[self.__ptr + 3 : self.__ptr + self.MSG_FORMAT_PACKET_LEN])
else:
- data = struct.unpack(self.MSG_FORMAT_STRUCT, self.__buffer[self.__ptr + 3 : self.__ptr + self.MSG_FORMAT_PACKET_LEN])
+ data = struct.unpack(self.MSG_FORMAT_STRUCT, str(self.__buffer[self.__ptr + 3 : self.__ptr + self.MSG_FORMAT_PACKET_LEN]))
msg_type = data[0]
print(msg_type)
if msg_type != self.MSG_TYPE_FORMAT:
msg_length = data[1]
- msg_name = str(data[2]).strip("\0")
- msg_format = str(data[3]).strip("\0")
- msg_labels = str(data[4]).strip("\0").split(",")
+ if runningPython3:
+ msg_name = str(data[2], 'ascii').strip("\0")
+ msg_format = str(data[3], 'ascii').strip("\0")
+ msg_labels = str(data[4], 'ascii').strip("\0").split(",")
+ else:
+ msg_name = str(data[2]).strip("\0")
+ msg_format = str(data[3]).strip("\0")
+ msg_labels = str(data[4]).strip("\0").split(",")
# Convert msg_format to struct.unpack format string
msg_struct = ""
msg_mults = []
@@ -233,7 +238,10 @@ class SDLog2Parser:
self.__csv_updated = False
show_fields = self.__filterMsg(msg_name)
if (show_fields != None):
- data = list(struct.unpack(msg_struct, str(bytearray(self.__buffer[self.__ptr+self.MSG_HEADER_LEN:self.__ptr+msg_length]))))
+ if runningPython3:
+ data = list(struct.unpack(msg_struct, self.__buffer[self.__ptr+self.MSG_HEADER_LEN:self.__ptr+msg_length]))
+ else:
+ data = list(struct.unpack(msg_struct, str(self.__buffer[self.__ptr+self.MSG_HEADER_LEN:self.__ptr+msg_length])))
for i in range(len(data)):
if type(data[i]) is str:
data[i] = data[i].strip("\0")