|
1 | 1 | Module modIMU_Checks
|
2 |
| - Public Sub IMU_Checks() |
| 2 | + |
| 3 | + Public Sub IMU_MainAnalysis() |
| 4 | + |
3 | 5 | If frmMainForm.chkboxVibrations.Checked = True Then
|
4 |
| - If DataArray(0) = "IMU" Then |
5 |
| - 'An IMU value should have only 7 pieces of numeric data! |
6 |
| - If ReadFileResilienceCheck(7) = True Then |
7 |
| - 'Debug.Print("IMU Data Detected...") |
8 |
| - Log_IMU_TimeMS = Val(DataArray(1)) |
9 |
| - Log_IMU_GyrX = Val(DataArray(2)) |
10 |
| - Log_IMU_GyrY = Val(DataArray(3)) |
11 |
| - Log_IMU_GyrZ = Val(DataArray(4)) |
12 |
| - Log_IMU_AccX = Val(DataArray(5)) |
13 |
| - Log_IMU_AccY = Val(DataArray(6)) |
14 |
| - Log_IMU_AccZ = Val(DataArray(7)) |
15 |
| - |
16 |
| - 'Debug.Print("DataArray(7) = " & DataArray(7)) |
17 |
| - |
18 |
| - 'Are we in flight and either hovering or flying very slow above 3 meters? (Log_GPS_Spd in m/s) |
19 |
| - Dim TempAlt As Single = 0 |
20 |
| - 'set the Vibration variables based on the form Vibration Variables. |
21 |
| - Dim intVibrationSpeed As Integer |
22 |
| - Dim intVibrationAltitude As Integer |
23 |
| - If IsNumeric(frmMainForm.txtVibrationSpeed.Text) = True Then |
24 |
| - intVibrationSpeed = Val(frmMainForm.txtVibrationSpeed.Text) |
25 |
| - Else |
26 |
| - intVibrationSpeed = 1 |
27 |
| - End If |
28 |
| - If IsNumeric(frmMainForm.txtVibrationAltitude.Text) = True Then |
29 |
| - intVibrationAltitude = Val(frmMainForm.txtVibrationAltitude.Text) |
30 |
| - Else |
31 |
| - intVibrationAltitude = 3 |
32 |
| - End If |
33 |
| - |
34 |
| - If CTUN_Logging = True Then TempAlt = Log_CTUN_BarAlt Else TempAlt = Log_GPS_Calculated_Alt |
35 |
| - If Log_GPS_Spd < intVibrationSpeed And Log_In_Flight = frmMainForm.chkboxVibrationInFlight.Checked And TempAlt > intVibrationAltitude Then |
36 |
| - If IMU_Vibration_Start_DL = 0 Then IMU_Vibration_Start_DL = DataLine |
37 |
| - |
38 |
| - 'Capture the Min and Max values from the IMU data if we are currently in slow flight, filter by increasing by half only each time. |
39 |
| - If Log_IMU_AccX < Log_IMU_Min_AccX Then Log_IMU_Min_AccX = Log_IMU_Min_AccX - ((Log_IMU_Min_AccX - Log_IMU_AccX) / 2) |
40 |
| - If Log_IMU_AccX > Log_IMU_Max_AccX Then Log_IMU_Max_AccX = Log_IMU_Max_AccX + ((Log_IMU_AccX - Log_IMU_Max_AccX) / 2) |
41 |
| - If Log_IMU_AccY < Log_IMU_Min_AccY Then Log_IMU_Min_AccY = Log_IMU_Min_AccY - ((Log_IMU_Min_AccY - Log_IMU_AccY) / 2) |
42 |
| - If Log_IMU_AccY > Log_IMU_Max_AccY Then Log_IMU_Max_AccY = Log_IMU_Max_AccY + ((Log_IMU_AccY - Log_IMU_Max_AccY) / 2) |
43 |
| - If Log_IMU_AccZ < Log_IMU_Min_AccZ Then Log_IMU_Min_AccZ = Log_IMU_Min_AccZ - ((Log_IMU_Min_AccZ - Log_IMU_AccZ) / 2) |
44 |
| - If Log_IMU_AccZ > Log_IMU_Max_AccZ Then Log_IMU_Max_AccZ = Log_IMU_Max_AccZ + ((Log_IMU_AccZ - Log_IMU_Max_AccZ) / 2) |
45 |
| - If Log_GPS_Spd < log_IMU_Min_Spd Then log_IMU_Min_Spd = log_IMU_Min_Spd - ((log_IMU_Min_Spd - Log_GPS_Spd) / 2) |
46 |
| - If Log_GPS_Spd > log_IMU_Max_Spd Then log_IMU_Max_Spd = log_IMU_Max_Spd + ((Log_GPS_Spd - log_IMU_Max_Spd) / 2) |
47 |
| - If TempAlt < log_IMU_Min_Alt Then log_IMU_Min_Alt = TempAlt |
48 |
| - If TempAlt > log_IMU_Max_Alt Then log_IMU_Max_Alt = TempAlt |
49 |
| - |
50 |
| - 'Debug.Print("GPS Spd: " & Log_GPS_Spd & " Max AccX: " & Log_IMU_Max_AccX & " Max AccY: " & Log_IMU_Max_AccY & " Max AccZ: " & Log_IMU_Max_AccZ) |
51 |
| - 'Debug.Print("CTUN Alt: " & Log_CTUN_BarAlt & " Min AccX: " & Log_IMU_Min_AccX & " Min AccY: " & Log_IMU_Min_AccY & " Min AccZ: " & Log_IMU_Min_AccZ) |
52 |
| - |
53 |
| - 'Collect the data for the slow flight averages. |
54 |
| - Log_IMU_Sum_AccX = Log_IMU_Sum_AccX + Log_IMU_AccX |
55 |
| - Log_IMU_Sum_AccY = Log_IMU_Sum_AccY + Log_IMU_AccY |
56 |
| - Log_IMU_Sum_AccZ = Log_IMU_Sum_AccZ + Log_IMU_AccZ |
57 |
| - log_IMU_Sum_Spd = log_IMU_Sum_Spd + Log_GPS_Spd |
58 |
| - log_IMU_Sum_Alt = log_IMU_Sum_Alt + TempAlt |
59 |
| - |
60 |
| - |
61 |
| - '### NEW CODE to send data directly to chart #### |
62 |
| - frmMainForm.chartVibrations.Series("AccX").Points.AddY(Log_IMU_AccX) |
63 |
| - frmMainForm.chartVibrations.Series("AccY").Points.AddY(Log_IMU_AccY) |
64 |
| - frmMainForm.chartVibrations.Series("AccZ").Points.AddY(Log_IMU_AccZ) |
65 |
| - frmMainForm.chartVibrations.Series("Altitude").Points.AddY(TempAlt) 'Log_CTUN_BarAlt |
66 |
| - frmMainForm.chartVibrations.Series("Speed").Points.AddY(Log_GPS_Spd) |
67 |
| - |
68 |
| - ' 'Add the Marker Lines |
69 |
| - frmMainForm.chartVibrations.Series("XYHighLine").Points.AddY(3) |
70 |
| - frmMainForm.chartVibrations.Series("XYLowLine").Points.AddY(-3) |
71 |
| - frmMainForm.chartVibrations.Series("ZHighLine").Points.AddY(-5) |
72 |
| - frmMainForm.chartVibrations.Series("ZLowLine").Points.AddY(-15) |
73 |
| - |
74 |
| - Log_IMU_DLs_for_Slow_FLight = Log_IMU_DLs_for_Slow_FLight + 1 |
75 |
| - IMU_Vibration_End_DL = DataLine |
76 |
| - |
77 |
| - |
78 |
| - IMU_Vibration_Check = True |
79 |
| - Else |
80 |
| - |
81 |
| - '### NEW CODE to send data directly to chart #### |
82 |
| - frmMainForm.chartVibrations.Series("AccX").Points.AddY(0) |
83 |
| - frmMainForm.chartVibrations.Series("AccY").Points.AddY(0) |
84 |
| - frmMainForm.chartVibrations.Series("AccZ").Points.AddY(0) |
85 |
| - frmMainForm.chartVibrations.Series("Altitude").Points.AddY(TempAlt) 'Log_CTUN_BarAlt |
86 |
| - frmMainForm.chartVibrations.Series("Speed").Points.AddY(Log_GPS_Spd) |
87 |
| - |
88 |
| - ' 'Add the Marker Lines |
89 |
| - frmMainForm.chartVibrations.Series("XYHighLine").Points.AddY(3) |
90 |
| - frmMainForm.chartVibrations.Series("XYLowLine").Points.AddY(-3) |
91 |
| - frmMainForm.chartVibrations.Series("ZHighLine").Points.AddY(-5) |
92 |
| - frmMainForm.chartVibrations.Series("ZLowLine").Points.AddY(-15) |
93 |
| - |
94 |
| - Log_IMU_DLs_for_Slow_FLight = Log_IMU_DLs_for_Slow_FLight + 1 |
95 |
| - IMU_Vibration_End_DL = DataLine |
96 |
| - |
97 |
| - End If |
98 |
| - End If |
| 6 | + 'Are we in flight and either hovering or flying very slow above 3 meters? (Log_GPS_Spd in m/s) |
| 7 | + Dim TempAlt As Single = 0 |
| 8 | + 'set the Vibration variables based on the form Vibration Variables. |
| 9 | + Dim intVibrationSpeed As Integer |
| 10 | + Dim intVibrationAltitude As Integer |
| 11 | + If IsNumeric(frmMainForm.txtVibrationSpeed.Text) = True Then |
| 12 | + intVibrationSpeed = Val(frmMainForm.txtVibrationSpeed.Text) |
| 13 | + Else |
| 14 | + intVibrationSpeed = 1 |
| 15 | + End If |
| 16 | + If IsNumeric(frmMainForm.txtVibrationAltitude.Text) = True Then |
| 17 | + intVibrationAltitude = Val(frmMainForm.txtVibrationAltitude.Text) |
| 18 | + Else |
| 19 | + intVibrationAltitude = 3 |
| 20 | + End If |
| 21 | + |
| 22 | + If CTUN_Logging = True Then TempAlt = Log_CTUN_BarAlt Else TempAlt = Log_GPS_Calculated_Alt |
| 23 | + If Log_GPS_Spd < intVibrationSpeed And Log_In_Flight = frmMainForm.chkboxVibrationInFlight.Checked And TempAlt > intVibrationAltitude Then |
| 24 | + If IMU_Vibration_Start_DL = 0 Then IMU_Vibration_Start_DL = DataLine |
| 25 | + |
| 26 | + 'Capture the Min and Max values from the IMU data if we are currently in slow flight, filter by increasing by half only each time. |
| 27 | + If Log_IMU_AccX < Log_IMU_Min_AccX Then Log_IMU_Min_AccX = Log_IMU_Min_AccX - ((Log_IMU_Min_AccX - Log_IMU_AccX) / 2) |
| 28 | + If Log_IMU_AccX > Log_IMU_Max_AccX Then Log_IMU_Max_AccX = Log_IMU_Max_AccX + ((Log_IMU_AccX - Log_IMU_Max_AccX) / 2) |
| 29 | + If Log_IMU_AccY < Log_IMU_Min_AccY Then Log_IMU_Min_AccY = Log_IMU_Min_AccY - ((Log_IMU_Min_AccY - Log_IMU_AccY) / 2) |
| 30 | + If Log_IMU_AccY > Log_IMU_Max_AccY Then Log_IMU_Max_AccY = Log_IMU_Max_AccY + ((Log_IMU_AccY - Log_IMU_Max_AccY) / 2) |
| 31 | + If Log_IMU_AccZ < Log_IMU_Min_AccZ Then Log_IMU_Min_AccZ = Log_IMU_Min_AccZ - ((Log_IMU_Min_AccZ - Log_IMU_AccZ) / 2) |
| 32 | + If Log_IMU_AccZ > Log_IMU_Max_AccZ Then Log_IMU_Max_AccZ = Log_IMU_Max_AccZ + ((Log_IMU_AccZ - Log_IMU_Max_AccZ) / 2) |
| 33 | + If Log_GPS_Spd < log_IMU_Min_Spd Then log_IMU_Min_Spd = log_IMU_Min_Spd - ((log_IMU_Min_Spd - Log_GPS_Spd) / 2) |
| 34 | + If Log_GPS_Spd > log_IMU_Max_Spd Then log_IMU_Max_Spd = log_IMU_Max_Spd + ((Log_GPS_Spd - log_IMU_Max_Spd) / 2) |
| 35 | + If TempAlt < log_IMU_Min_Alt Then log_IMU_Min_Alt = TempAlt |
| 36 | + If TempAlt > log_IMU_Max_Alt Then log_IMU_Max_Alt = TempAlt |
| 37 | + |
| 38 | + 'Debug.Print("GPS Spd: " & Log_GPS_Spd & " Max AccX: " & Log_IMU_Max_AccX & " Max AccY: " & Log_IMU_Max_AccY & " Max AccZ: " & Log_IMU_Max_AccZ) |
| 39 | + 'Debug.Print("CTUN Alt: " & Log_CTUN_BarAlt & " Min AccX: " & Log_IMU_Min_AccX & " Min AccY: " & Log_IMU_Min_AccY & " Min AccZ: " & Log_IMU_Min_AccZ) |
| 40 | + |
| 41 | + 'Collect the data for the slow flight averages. |
| 42 | + Log_IMU_Sum_AccX = Log_IMU_Sum_AccX + Log_IMU_AccX |
| 43 | + Log_IMU_Sum_AccY = Log_IMU_Sum_AccY + Log_IMU_AccY |
| 44 | + Log_IMU_Sum_AccZ = Log_IMU_Sum_AccZ + Log_IMU_AccZ |
| 45 | + log_IMU_Sum_Spd = log_IMU_Sum_Spd + Log_GPS_Spd |
| 46 | + log_IMU_Sum_Alt = log_IMU_Sum_Alt + TempAlt |
| 47 | + |
| 48 | + |
| 49 | + '### NEW CODE to send data directly to chart #### |
| 50 | + frmMainForm.chartVibrations.Series("AccX").Points.AddY(Log_IMU_AccX) |
| 51 | + frmMainForm.chartVibrations.Series("AccY").Points.AddY(Log_IMU_AccY) |
| 52 | + frmMainForm.chartVibrations.Series("AccZ").Points.AddY(Log_IMU_AccZ) |
| 53 | + frmMainForm.chartVibrations.Series("Altitude").Points.AddY(TempAlt) 'Log_CTUN_BarAlt |
| 54 | + frmMainForm.chartVibrations.Series("Speed").Points.AddY(Log_GPS_Spd) |
| 55 | + |
| 56 | + ' 'Add the Marker Lines |
| 57 | + frmMainForm.chartVibrations.Series("XYHighLine").Points.AddY(3) |
| 58 | + frmMainForm.chartVibrations.Series("XYLowLine").Points.AddY(-3) |
| 59 | + frmMainForm.chartVibrations.Series("ZHighLine").Points.AddY(-5) |
| 60 | + frmMainForm.chartVibrations.Series("ZLowLine").Points.AddY(-15) |
| 61 | + |
| 62 | + Log_IMU_DLs_for_Slow_FLight = Log_IMU_DLs_for_Slow_FLight + 1 |
| 63 | + IMU_Vibration_End_DL = DataLine |
| 64 | + |
| 65 | + |
| 66 | + IMU_Vibration_Check = True |
| 67 | + Else |
| 68 | + |
| 69 | + '### NEW CODE to send data directly to chart #### |
| 70 | + frmMainForm.chartVibrations.Series("AccX").Points.AddY(0) |
| 71 | + frmMainForm.chartVibrations.Series("AccY").Points.AddY(0) |
| 72 | + frmMainForm.chartVibrations.Series("AccZ").Points.AddY(0) |
| 73 | + frmMainForm.chartVibrations.Series("Altitude").Points.AddY(TempAlt) 'Log_CTUN_BarAlt |
| 74 | + frmMainForm.chartVibrations.Series("Speed").Points.AddY(Log_GPS_Spd) |
| 75 | + |
| 76 | + ' 'Add the Marker Lines |
| 77 | + frmMainForm.chartVibrations.Series("XYHighLine").Points.AddY(3) |
| 78 | + frmMainForm.chartVibrations.Series("XYLowLine").Points.AddY(-3) |
| 79 | + frmMainForm.chartVibrations.Series("ZHighLine").Points.AddY(-5) |
| 80 | + frmMainForm.chartVibrations.Series("ZLowLine").Points.AddY(-15) |
| 81 | + |
| 82 | + Log_IMU_DLs_for_Slow_FLight = Log_IMU_DLs_for_Slow_FLight + 1 |
| 83 | + IMU_Vibration_End_DL = DataLine |
| 84 | + |
99 | 85 | End If
|
100 | 86 | End If
|
101 | 87 |
|
|
0 commit comments