aboutsummaryrefslogtreecommitdiff
path: root/ROMFS/logging/logconv.m
blob: 5a615228d67b14d10f68b7475a17d94366b077d0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
clear all
clc

if exist('actuator_outputs0.bin', 'file')
    % Read actuators file
    myFile = java.io.File('actuator_outputs0.bin')
    fileSize = length(myFile)

    fid = fopen('actuator_outputs0.bin', 'r');
    elements = int64(fileSize./(16*4+8))

    for i=1:(elements-2)
        % timestamp
        actuators(i,1) = double(fread(fid, 1, '*uint64', 0, 'ieee-le.l64'));
        % actuators 1-16
        % quadrotor: motor 1-4 on the first four positions
        actuators(i, 2:17) = fread(fid,  16, 'float', 'ieee-le');
    end
end

if exist('actuator_controls0.bin', 'file')
    % Read actuators file
    myFile = java.io.File('actuator_controls0.bin')
    fileSize = length(myFile)

    fid = fopen('actuator_controls0.bin', 'r');
    elements = int64(fileSize./(8*4+8))

    for i=1:elements
        % timestamp
        actuator_controls(i,1) = fread(fid, 1, 'uint64', 0, 'ieee-le.l64');
        % actuators 1-16
        % quadrotor: motor 1-4 on the first four positions
        actuator_controls(i, 2:9) = fread(fid,  8, 'float', 'ieee-le');
    end
end


if exist('sensor_combined.bin', 'file')
    % Read sensor combined file
    % Type definition: Firmware/apps/uORB/topics/sensor_combined.h
    % Struct: sensor_combined_s
    fileInfo = dir('sensor_combined.bin');
    fileSize = fileInfo.bytes;

    fid = fopen('sensor_combined.bin', 'r');

    for i=1:elements
        % 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
end