aboutsummaryrefslogtreecommitdiff
path: root/ROMFS
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2012-09-14 17:51:49 +0200
committerLorenz Meier <lm@inf.ethz.ch>2012-09-14 17:51:49 +0200
commitfb397c8dc473fdf7b9639b86c15535397515cef5 (patch)
treec26eae562d819d589806192c11d1b2c69d9df68d /ROMFS
parent595ec0113bc278996e7831053eaae1c8e2e08c8e (diff)
downloadpx4-firmware-fb397c8dc473fdf7b9639b86c15535397515cef5.tar.gz
px4-firmware-fb397c8dc473fdf7b9639b86c15535397515cef5.tar.bz2
px4-firmware-fb397c8dc473fdf7b9639b86c15535397515cef5.zip
Added log converter to ROMFS
Diffstat (limited to 'ROMFS')
-rw-r--r--ROMFS/Makefile3
-rwxr-xr-xROMFS/logging/sdcard_logconverter.m72
2 files changed, 74 insertions, 1 deletions
diff --git a/ROMFS/Makefile b/ROMFS/Makefile
index 39d74d682..ba694b055 100644
--- a/ROMFS/Makefile
+++ b/ROMFS/Makefile
@@ -28,7 +28,8 @@ ROMFS_FSSPEC := $(SRCROOT)/scripts/rcS~init.d/rcS \
$(SRCROOT)/mixers/FMU_AET.mix~mixers/FMU_AET.mix \
$(SRCROOT)/mixers/FMU_RET.mix~mixers/FMU_ERT.mix \
$(SRCROOT)/mixers/FMU_quad_x.mix~mixers/FMU_quad_x.mix \
- $(SRCROOT)/mixers/FMU_quad_+.mix~mixers/FMU_quad_+.mix
+ $(SRCROOT)/mixers/FMU_quad_+.mix~mixers/FMU_quad_+.mix \
+ $(SRCROOT)/logging/sdcard_logconverter.m~logging/sdcard_logconverter.m
#
# Add the PX4IO firmware to the spec if someone has dropped it into the
diff --git a/ROMFS/logging/sdcard_logconverter.m b/ROMFS/logging/sdcard_logconverter.m
new file mode 100755
index 000000000..09702494c
--- /dev/null
+++ b/ROMFS/logging/sdcard_logconverter.m
@@ -0,0 +1,72 @@
+clear all
+clc
+
+% Read actuators file
+fileInfo = dir('sensors_combined.bin');
+fileSize = fileInfo.bytes;
+
+fid = fopen('actuator_outputs0.bin', 'r');
+elements = int64(fileSize/16*4+8)
+
+for i=1:(elements-2)
+ actuators(i, 2:18) = fread(fid, inf, 'float');
+end
+
+% Read sensor combined file
+% Type definition: Firmware/apps/uORB/topics/sensor_combined.h
+% Struct: sensor_combined_s
+fileInfo = dir('sensors_combined.bin');
+fileSize = fileInfo.bytes;
+
+fid = fopen('sensors_combined.bin', 'r');
+
+for i=1:elements-2
+ % timestamp
+ sensors(i,1) = double(fread(fid, 1, '*uint64', 0, 'ieee-le.l64'));
+ % gyro raw
+ sensors(i,2:4) = fread(fid, 3, 'int16', 0, 'ieee-le');
+ % gyro counter
+ sensors(i,5) = fread(fid, 1, 'uint16', 0, 'ieee-le');
+ % gyro in rad/s
+ sensors(i,6:8) = fread(fid, 3, 'float', 0, 'ieee-le');
+
+ % accelerometer raw
+ sensors(i,9:11) = fread(fid, 3, 'int16', 0, 'ieee-le');
+ % padding bytes
+ fread(fid, 1, 'int16', 0, 'ieee-le');
+ % accelerometer counter
+ sensors(i,12) = fread(fid, 1, 'uint32', 0, 'ieee-le');
+ % accel in m/s2
+ sensors(i,13:15) = fread(fid, 3, 'float', 0, 'ieee-le');
+ % accel mode
+ sensors(i,16) = fread(fid, 1, 'int32', 0, 'ieee-le');
+ % accel range
+ sensors(i,17) = fread(fid, 1, 'float', 0, 'ieee-le');
+
+ % mag raw
+ sensors(i,18:20) = fread(fid, 3, 'int16', 0, 'ieee-le');
+ % padding bytes
+ fread(fid, 1, 'int16', 0, 'ieee-le');
+ % mag in Gauss
+ sensors(i,21:23) = fread(fid, 3, 'float', 0, 'ieee-le');
+ % mag mode
+ sensors(i,24) = fread(fid, 1, 'int32', 0, 'ieee-le');
+ % mag range
+ sensors(i,25) = fread(fid, 1, 'float', 0, 'ieee-le');
+ % mag cuttoff freq
+ sensors(i,26) = fread(fid, 1, 'float', 0, 'ieee-le');
+ % mag counter
+ sensors(i,27) = fread(fid, 1, 'int32', 0, 'ieee-le');
+
+ % baro pressure millibar
+ % baro alt meter
+ % baro temp celcius
+ % battery voltage
+ % adc voltage (3 channels)
+ sensors(i,28:34) = fread(fid, 7, 'float', 0, 'ieee-le');
+ % baro counter and battery counter
+ sensors(i,35:36) = fread(fid, 2, 'uint32', 0, 'ieee-le');
+ % battery voltage valid flag
+ sensors(i,37) = fread(fid, 1, 'uint32', 0, 'ieee-le');
+
+end \ No newline at end of file