Sync edgetx to Gitea

This commit is contained in:
2026-08-03 16:37:20 +08:00
commit 14eb5a3fb9
5364 changed files with 2835009 additions and 0 deletions
+593
View File
@@ -0,0 +1,593 @@
2014-07-11,22:41:01.340: 7E 00
2014-07-11,22:41:01.350: 7E A1
2014-07-11,22:41:01.360: 7E 22
2014-07-11,22:41:01.380: 7E 83
2014-07-11,22:41:01.390: 7E E4
2014-07-11,22:41:01.400: 7E 45
2014-07-11,22:41:01.410: 7E C6
2014-07-11,22:41:01.420: 7E 67
2014-07-11,22:41:01.440: 7E 48
2014-07-11,22:41:01.450: 7E E9
2014-07-11,22:41:01.460: 7E 6A
2014-07-11,22:41:01.470: 7E CB
2014-07-11,22:41:01.480: 7E AC
2014-07-11,22:41:01.500: 7E 0D
2014-07-11,22:41:01.510: 7E 8E
2014-07-11,22:41:01.520: 7E 2F
2014-07-11,22:41:01.530: 7E D0
2014-07-11,22:41:01.540: 7E 71
2014-07-11,22:41:01.560: 7E F2
2014-07-11,22:41:01.570: 7E 53
2014-07-11,22:41:01.580: 7E 34
2014-07-11,22:41:01.590: 7E 95
2014-07-11,22:41:01.600: 7E 16
2014-07-11,22:41:01.620: 7E B7
2014-07-11,22:41:01.630: 7E 98
2014-07-11,22:41:01.640: 7E 39
2014-07-11,22:41:01.650: 7E BA
2014-07-11,22:41:01.660: 7E 1B
2014-07-11,22:41:01.680: 7E 00
2014-07-11,22:41:01.690: 7E A1
2014-07-11,22:41:01.700: 7E 22
2014-07-11,22:41:01.710: 7E 83
2014-07-11,22:41:01.720: 7E E4
2014-07-11,22:41:01.740: 7E 45
2014-07-11,22:41:01.750: 7E C6
2014-07-11,22:41:01.760: 7E 67
2014-07-11,22:41:01.770: 7E 98 10 05 F1 10 35 0F 96 0E
2014-07-11,22:41:01.780: 7E 98 10 01 F1 00 00 12 96 54
2014-07-11,22:41:01.800: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:01.810: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:01.820: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:01.830: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:01.840: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:01.860: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:01.870: 7E E9
2014-07-11,22:41:01.880: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:01.890: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:01.900: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:01.920: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:01.930: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:01.940: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:01.950: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:01.960: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:01.980: 7E 6A
2014-07-11,22:41:01.990: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:02.000: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:02.010: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:02.020: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:02.040: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:02.050: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:02.060: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:02.070: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:02.080: 7E CB
2014-07-11,22:41:02.100: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:02.110: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:02.120: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:02.130: 7E AC
2014-07-11,22:41:02.140: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:02.160: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:02.170: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:02.180: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:02.190: 7E 0D
2014-07-11,22:41:02.200: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:02.220: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:02.230: 7E 98 10 05 F1 10 32 10 96 10
2014-07-11,22:41:02.240: 7E 98 10 01 F1 5A 00 12 96 F9
2014-07-11,22:41:02.250: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:02.260: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:02.280: 7E 8E
2014-07-11,22:41:02.290: 7E 2F
2014-07-11,22:41:02.300: 7E D0
2014-07-11,22:41:02.310: 7E 71
2014-07-11,22:41:02.320: 7E F2
2014-07-11,22:41:02.340: 7E 48 10 00 03 30 15 50 01 56
2014-07-11,22:41:02.350: 7E 53
2014-07-11,22:41:02.360: 7E 34
2014-07-11,22:41:02.370: 7E 95
2014-07-11,22:41:02.380: 7E 16
2014-07-11,22:41:02.400: 7E B7
2014-07-11,22:41:02.410: 7E 39
2014-07-11,22:41:02.420: 7E BA
2014-07-11,22:41:02.430: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:02.440: 7E 1B
2014-07-11,22:41:02.460: 7E 00
2014-07-11,22:41:02.470: 7E 22
2014-07-11,22:41:02.480: 7E 83
2014-07-11,22:41:02.490: 7E E4
2014-07-11,22:41:02.500: 7E 45
2014-07-11,22:41:02.520: 7E C6
2014-07-11,22:41:02.530: 7E 67
2014-07-11,22:41:02.540: 7E E9
2014-07-11,22:41:02.550: 7E 6A
2014-07-11,22:41:02.560: 7E CB
2014-07-11,22:41:02.580: 7E AC
2014-07-11,22:41:02.590: 7E 0D
2014-07-11,22:41:02.600: 7E 8E
2014-07-11,22:41:02.610: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:02.620: 7E 2F
2014-07-11,22:41:02.640: 7E D0
2014-07-11,22:41:02.650: 7E 98 10 05 F1 11 30 13 96 0E
2014-07-11,22:41:02.660: 7E 98 10 01 F1 5B 00 12 96 F8
2014-07-11,22:41:02.670: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:02.680: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:02.700: 7E 71
2014-07-11,22:41:02.710: 7E F2
2014-07-11,22:41:02.720: 7E 53
2014-07-11,22:41:02.730: 7E 34
2014-07-11,22:41:02.740: 7E 95
2014-07-11,22:41:02.760: 7E 16
2014-07-11,22:41:02.770: 7E B7
2014-07-11,22:41:02.780: 7E 39
2014-07-11,22:41:02.790: 7E BA
2014-07-11,22:41:02.800: 7E 1B
2014-07-11,22:41:02.820: 7E 00
2014-07-11,22:41:02.830: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:02.840: 7E 22
2014-07-11,22:41:02.850: 7E 83
2014-07-11,22:41:02.860: 7E E4
2014-07-11,22:41:02.880: 7E 45
2014-07-11,22:41:02.890: 7E C6
2014-07-11,22:41:02.900: 7E 67
2014-07-11,22:41:02.910: 7E E9
2014-07-11,22:41:02.920: 7E 6A
2014-07-11,22:41:02.940: 7E CB
2014-07-11,22:41:02.950: 7E AC
2014-07-11,22:41:02.960: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:02.970: 7E 0D
2014-07-11,22:41:02.980: 7E 8E
2014-07-11,22:41:03.000: 7E 2F
2014-07-11,22:41:03.010: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:03.020: 7E D0
2014-07-11,22:41:03.030: 7E 71
2014-07-11,22:41:03.040: 7E F2
2014-07-11,22:41:03.060: 7E 53
2014-07-11,22:41:03.070: 7E 34
2014-07-11,22:41:03.080: 7E 95
2014-07-11,22:41:03.090: 7E 98 10 05 F1 10 32 0F 96 11
2014-07-11,22:41:03.100: 7E 98 10 01 F1 5A 00 12 96 F9
2014-07-11,22:41:03.120: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:03.130: 7E 16
2014-07-11,22:41:03.140: 7E B7
2014-07-11,22:41:03.150: 7E 39
2014-07-11,22:41:03.160: 7E BA
2014-07-11,22:41:03.180: 7E 1B
2014-07-11,22:41:03.190: 7E 00
2014-07-11,22:41:03.200: 7E 22
2014-07-11,22:41:03.210: 7E 83
2014-07-11,22:41:03.220: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:03.240: 7E E4
2014-07-11,22:41:03.250: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:03.260: 7E 45
2014-07-11,22:41:03.270: 7E C6
2014-07-11,22:41:03.280: 7E 67
2014-07-11,22:41:03.300: 7E E9
2014-07-11,22:41:03.310: 7E 6A
2014-07-11,22:41:03.320: 7E CB
2014-07-11,22:41:03.330: 7E AC
2014-07-11,22:41:03.340: 7E 0D
2014-07-11,22:41:03.360: 7E 8E
2014-07-11,22:41:03.370: 7E 2F
2014-07-11,22:41:03.380: 7E D0
2014-07-11,22:41:03.390: 7E 71
2014-07-11,22:41:03.400: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:03.420: 7E F2
2014-07-11,22:41:03.430: 7E 53
2014-07-11,22:41:03.440: 7E 34
2014-07-11,22:41:03.450: 7E 95
2014-07-11,22:41:03.460: 7E 16
2014-07-11,22:41:03.480: 7E B7
2014-07-11,22:41:03.490: 7E 39
2014-07-11,22:41:03.500: 7E BA
2014-07-11,22:41:03.510: 7E 1B
2014-07-11,22:41:03.520: 7E 98 10 05 F1 10 34 0F 96 0F
2014-07-11,22:41:03.540: 7E 98 10 01 F1 59 00 12 96 FA
2014-07-11,22:41:03.550: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:03.560: 7E 00
2014-07-11,22:41:03.570: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:03.580: 7E 22
2014-07-11,22:41:03.600: 7E 83
2014-07-11,22:41:03.610: 7E E4
2014-07-11,22:41:03.620: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:03.630: 7E 45
2014-07-11,22:41:03.640: 7E C6
2014-07-11,22:41:03.660: 7E 67
2014-07-11,22:41:03.670: 7E E9
2014-07-11,22:41:03.680: 7E 6A
2014-07-11,22:41:03.690: 7E CB
2014-07-11,22:41:03.700: 7E AC
2014-07-11,22:41:03.720: 7E 0D
2014-07-11,22:41:03.730: 7E 8E
2014-07-11,22:41:03.740: 7E 2F
2014-07-11,22:41:03.750: 7E D0
2014-07-11,22:41:03.760: 7E 71
2014-07-11,22:41:03.780: 7E F2
2014-07-11,22:41:03.790: 7E 53
2014-07-11,22:41:03.800: 7E 34
2014-07-11,22:41:03.810: 7E 95
2014-07-11,22:41:03.820: 7E 16
2014-07-11,22:41:03.840: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:03.850: 7E B7
2014-07-11,22:41:03.860: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:03.870: 7E 39
2014-07-11,22:41:03.880: 7E BA
2014-07-11,22:41:03.900: 7E 1B
2014-07-11,22:41:03.910: 7E 00
2014-07-11,22:41:03.920: 7E 22
2014-07-11,22:41:03.930: 7E 83
2014-07-11,22:41:03.940: 7E E4
2014-07-11,22:41:03.960: 7E 45
2014-07-11,22:41:03.970: 7E 98 10 05 F1 11 32 10 96 0F
2014-07-11,22:41:03.980: 7E 98 10 01 F1 59 00 12 96 FA
2014-07-11,22:41:03.990: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:04.000: 7E C6
2014-07-11,22:41:04.020: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:04.030: 7E 67
2014-07-11,22:41:04.040: 7E E9
2014-07-11,22:41:04.050: 7E 6A
2014-07-11,22:41:04.060: 7E CB
2014-07-11,22:41:04.080: 7E AC
2014-07-11,22:41:04.090: 7E 0D
2014-07-11,22:41:04.100: 7E 8E
2014-07-11,22:41:04.110: 7E 2F
2014-07-11,22:41:04.120: 7E D0
2014-07-11,22:41:04.140: 7E 71
2014-07-11,22:41:04.150: 7E 48 10 00 03 30 15 50 81 D5
2014-07-11,22:41:04.160: 7E F2
2014-07-11,22:41:04.170: 7E 53
2014-07-11,22:41:04.180: 7E 34
2014-07-11,22:41:04.200: 7E 95
2014-07-11,22:41:04.210: 7E 16
2014-07-11,22:41:04.220: 7E B7
2014-07-11,22:41:04.230: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:04.240: 7E 39
2014-07-11,22:41:04.260: 7E BA
2014-07-11,22:41:04.270: 7E 1B
2014-07-11,22:41:04.280: 7E 00
2014-07-11,22:41:04.290: 7E 22
2014-07-11,22:41:04.300: 7E 83
2014-07-11,22:41:04.320: 7E E4
2014-07-11,22:41:04.330: 7E 45
2014-07-11,22:41:04.340: 7E C6
2014-07-11,22:41:04.350: 7E 67
2014-07-11,22:41:04.360: 7E E9
2014-07-11,22:41:04.380: 7E 6A
2014-07-11,22:41:04.390: 7E CB
2014-07-11,22:41:04.400: 7E AC
2014-07-11,22:41:04.410: 7E 98 10 05 F1 11 31 11 96 0F
2014-07-11,22:41:04.420: 7E 98 10 01 F1 59 00 12 96 FA
2014-07-11,22:41:04.440: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:04.450: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:04.460: 7E 0D
2014-07-11,22:41:04.470: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:04.480: 7E 8E
2014-07-11,22:41:04.500: 7E 2F
2014-07-11,22:41:04.510: 7E D0
2014-07-11,22:41:04.520: 7E 71
2014-07-11,22:41:04.530: 7E F2
2014-07-11,22:41:04.540: 7E 53
2014-07-11,22:41:04.560: 7E 34
2014-07-11,22:41:04.570: 7E 95
2014-07-11,22:41:04.580: 7E 16
2014-07-11,22:41:04.590: 7E B7
2014-07-11,22:41:04.600: 7E 39
2014-07-11,22:41:04.620: 7E BA
2014-07-11,22:41:04.630: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:04.640: 7E 1B
2014-07-11,22:41:04.650: 7E 00
2014-07-11,22:41:04.660: 7E 22
2014-07-11,22:41:04.680: 7E 83
2014-07-11,22:41:04.690: 7E E4
2014-07-11,22:41:04.700: 7E 45
2014-07-11,22:41:04.710: 7E C6
2014-07-11,22:41:04.720: 7E 67
2014-07-11,22:41:04.740: 7E E9
2014-07-11,22:41:04.750: 7E 6A
2014-07-11,22:41:04.760: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:04.770: 7E CB
2014-07-11,22:41:04.780: 7E AC
2014-07-11,22:41:04.800: 7E 0D
2014-07-11,22:41:04.810: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:04.820: 7E 8E
2014-07-11,22:41:04.830: 7E 2F
2014-07-11,22:41:04.840: 7E 98 10 05 F1 10 33 0F 96 10
2014-07-11,22:41:04.860: 7E 98 10 01 F1 5A 00 12 96 F9
2014-07-11,22:41:04.870: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:04.880: 7E D0
2014-07-11,22:41:04.890: 7E 71
2014-07-11,22:41:04.900: 7E F2
2014-07-11,22:41:04.920: 7E 53
2014-07-11,22:41:04.930: 7E 34
2014-07-11,22:41:04.940: 7E 95
2014-07-11,22:41:04.950: 7E 16
2014-07-11,22:41:04.960: 7E B7
2014-07-11,22:41:04.980: 7E 39
2014-07-11,22:41:04.990: 7E BA
2014-07-11,22:41:05.000: 7E 1B
2014-07-11,22:41:05.010: 7E 00
2014-07-11,22:41:05.020: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:05.040: 7E 22
2014-07-11,22:41:05.050: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:05.060: 7E 83
2014-07-11,22:41:05.070: 7E E4
2014-07-11,22:41:05.080: 7E 45
2014-07-11,22:41:05.100: 7E C6
2014-07-11,22:41:05.110: 7E 67
2014-07-11,22:41:05.120: 7E E9
2014-07-11,22:41:05.130: 7E 6A
2014-07-11,22:41:05.140: 7E CB
2014-07-11,22:41:05.160: 7E AC
2014-07-11,22:41:05.170: 7E 0D
2014-07-11,22:41:05.180: 7E 8E
2014-07-11,22:41:05.190: 7E 2F
2014-07-11,22:41:05.200: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:05.220: 7E D0
2014-07-11,22:41:05.230: 7E 71
2014-07-11,22:41:05.240: 7E F2
2014-07-11,22:41:05.250: 7E 53
2014-07-11,22:41:05.260: 7E 34
2014-07-11,22:41:05.280: 7E 95
2014-07-11,22:41:05.290: 7E 98 10 05 F1 11 31 10 96 10
2014-07-11,22:41:05.300: 7E 98 10 01 F1 5A 00 12 96 F9
2014-07-11,22:41:05.310: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:05.320: 7E 16
2014-07-11,22:41:05.340: 7E B7
2014-07-11,22:41:05.350: 7E 39
2014-07-11,22:41:05.360: 7E BA
2014-07-11,22:41:05.370: 7E 48 10 00 03 30 15 50 01 56
2014-07-11,22:41:05.380: 7E 1B
2014-07-11,22:41:05.400: 7E 00
2014-07-11,22:41:05.410: 7E 22
2014-07-11,22:41:05.420: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:05.430: 7E 83
2014-07-11,22:41:05.440: 7E E4
2014-07-11,22:41:05.460: 7E 45
2014-07-11,22:41:05.470: 7E C6
2014-07-11,22:41:05.480: 7E 67
2014-07-11,22:41:05.490: 7E E9
2014-07-11,22:41:05.500: 7E 6A
2014-07-11,22:41:05.520: 7E CB
2014-07-11,22:41:05.530: 7E AC
2014-07-11,22:41:05.540: 7E 0D
2014-07-11,22:41:05.550: 7E 8E
2014-07-11,22:41:05.560: 7E 2F
2014-07-11,22:41:05.580: 7E D0
2014-07-11,22:41:05.590: 7E 71
2014-07-11,22:41:05.600: 7E F2
2014-07-11,22:41:05.610: 7E 53
2014-07-11,22:41:05.620: 7E 34
2014-07-11,22:41:05.640: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:05.650: 7E 95
2014-07-11,22:41:05.660: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:05.670: 7E 16
2014-07-11,22:41:05.680: 7E B7
2014-07-11,22:41:05.700: 7E 39
2014-07-11,22:41:05.710: 7E BA
2014-07-11,22:41:05.720: 7E 1B
2014-07-11,22:41:05.730: 7E 98 10 05 F1 10 32 0F 96 11
2014-07-11,22:41:05.750: 7E 98 10 01 F1 59 00 12 96 FA
2014-07-11,22:41:05.760: 7E 98 10 04 F1 62 00 12 96
2014-07-11,22:41:05.770: EE 7E 00
2014-07-11,22:41:05.780: 7E 22
2014-07-11,22:41:05.800: 7E 83
2014-07-11,22:41:05.810: 7E E4
2014-07-11,22:41:05.820: 7E A1 10 00 03 30 0D 88 81
2014-07-11,22:41:05.830: A5 7E 45
2014-07-11,22:41:05.840: 7E C6
2014-07-11,22:41:05.860: 7E 67
2014-07-11,22:41:05.870: 7E E9
2014-07-11,22:41:05.880: 7E 6A
2014-07-11,22:41:05.890: 7E CB
2014-07-11,22:41:05.900: 7E AC
2014-07-11,22:41:05.920: 7E 0D
2014-07-11,22:41:05.930: 7E 8E
2014-07-11,22:41:05.940: 7E 2F
2014-07-11,22:41:05.950: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:05.960: 7E D0
2014-07-11,22:41:05.980: 7E 71 7E F2
2014-07-11,22:41:06.000: 7E 53
2014-07-11,22:41:06.010: 7E 34
2014-07-11,22:41:06.020: 7E 95
2014-07-11,22:41:06.040: 7E A1 10 00 03 32 34 08 00 7D 5E 7E 16
2014-07-11,22:41:06.060: 7E B7
2014-07-11,22:41:06.070: 7E 39
2014-07-11,22:41:06.090: 7E BA
2014-07-11,22:41:06.100: 7E 1B 7E 00
2014-07-11,22:41:06.120: 7E 22
2014-07-11,22:41:06.130: 7E 83
2014-07-11,22:41:06.150: 7E E4
2014-07-11,22:41:06.160: 7E 45 7E 98 10 05 F1 11 31 12 96
2014-07-11,22:41:06.170: 0E
2014-07-11,22:41:06.180: 7E 98 10 01 F1 5A 00 12 96 F9
2014-07-11,22:41:06.190: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:06.200: 7E C6
2014-07-11,22:41:06.210: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:06.220: 7E 67
2014-07-11,22:41:06.240: 7E E9
2014-07-11,22:41:06.250: 7E 6A
2014-07-11,22:41:06.260: 7E CB
2014-07-11,22:41:06.270: 7E 48 10
2014-07-11,22:41:06.280: 00 03 32 11 08 00 A1
2014-07-11,22:41:06.290: 7E AC
2014-07-11,22:41:06.300: 7E 0D
2014-07-11,22:41:06.310: 7E 8E
2014-07-11,22:41:06.320: 7E 2F
2014-07-11,22:41:06.330: 7E D0
2014-07-11,22:41:06.340: 7E 71
2014-07-11,22:41:06.360: 7E F2
2014-07-11,22:41:06.370: 7E 53
2014-07-11,22:41:06.380: 7E 34
2014-07-11,22:41:06.390: 7E 95
2014-07-11,22:41:06.400: 7E 16
2014-07-11,22:41:06.420: 7E B7
2014-07-11,22:41:06.430: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:06.450: 7E 39
2014-07-11,22:41:06.460: 7E BA
2014-07-11,22:41:06.470: 7E 1B
2014-07-11,22:41:06.480: 7E 00
2014-07-11,22:41:06.490: 7E 22
2014-07-11,22:41:06.500: 7E 83
2014-07-11,22:41:06.510: 7E E4
2014-07-11,22:41:06.520: 7E 45
2014-07-11,22:41:06.540: 7E C6
2014-07-11,22:41:06.550: 7E 67
2014-07-11,22:41:06.560: 7E 48 10 00 03 30 15 58 01
2014-07-11,22:41:06.570: 4E 7E E9
2014-07-11,22:41:06.580: 7E 6A
2014-07-11,22:41:06.600: 7E CB
2014-07-11,22:41:06.610: 7E 98 10 05 F1 10 33 0F 96 10
2014-07-11,22:41:06.620: 7E 98 10 01 F1 5A 00 12 96 F9
2014-07-11,22:41:06.640: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:06.650: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:06.660: 7E AC
2014-07-11,22:41:06.670: 7E 0D
2014-07-11,22:41:06.680: 7E 8E
2014-07-11,22:41:06.690: 7E 2F
2014-07-11,22:41:06.700: 7E D0
2014-07-11,22:41:06.720: 7E 71
2014-07-11,22:41:06.730: 7E F2
2014-07-11,22:41:06.740: 7E 53
2014-07-11,22:41:06.760: 7E 34
2014-07-11,22:41:06.770: 7E 95
2014-07-11,22:41:06.780: 7E 16
2014-07-11,22:41:06.790: 7E B7
2014-07-11,22:41:06.800: 7E 39
2014-07-11,22:41:06.810: 7E BA
2014-07-11,22:41:06.830: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:06.840: 7E 1B
2014-07-11,22:41:06.850: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:06.860: 7E 00
2014-07-11,22:41:06.870: 7E 22
2014-07-11,22:41:06.880: 7E 83
2014-07-11,22:41:06.900: 7E E4
2014-07-11,22:41:06.910: 7E 45
2014-07-11,22:41:06.930: 7E C6
2014-07-11,22:41:06.940: 7E 67
2014-07-11,22:41:06.950: 7E E9
2014-07-11,22:41:06.960: 7E 6A
2014-07-11,22:41:06.970: 7E CB
2014-07-11,22:41:06.980: 7E AC
2014-07-11,22:41:06.990: 7E 0D
2014-07-11,22:41:07.000: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:07.020: 7E 8E
2014-07-11,22:41:07.030: 7E 2F
2014-07-11,22:41:07.040: 7E D0
2014-07-11,22:41:07.050: 7E 98 10 05 F1 11 31 11
2014-07-11,22:41:07.060: 96 0F 7E 98
2014-07-11,22:41:07.070: 10 01 F1 5A 00 12 96 F9
2014-07-11,22:41:07.080: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:07.090: 7E 71
2014-07-11,22:41:07.100: 7E F2
2014-07-11,22:41:07.120: 7E 53
2014-07-11,22:41:07.130: 7E 34
2014-07-11,22:41:07.140: 7E 95
2014-07-11,22:41:07.150: 7E 16
2014-07-11,22:41:07.160: 7E B7
2014-07-11,22:41:07.170: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:07.180: 7E 39
2014-07-11,22:41:07.200: 7E BA
2014-07-11,22:41:07.210: 7E 1B
2014-07-11,22:41:07.220: 7E 00
2014-07-11,22:41:07.230: 7E 22
2014-07-11,22:41:07.250: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:07.260: 7E 83
2014-07-11,22:41:07.270: 7E E4
2014-07-11,22:41:07.280: 7E 45
2014-07-11,22:41:07.300: 7E C6
2014-07-11,22:41:07.310: 7E 67
2014-07-11,22:41:07.320: 7E E9
2014-07-11,22:41:07.330: 7E 6A
2014-07-11,22:41:07.340: 7E CB
2014-07-11,22:41:07.350: 7E AC
2014-07-11,22:41:07.360: 7E 0D
2014-07-11,22:41:07.380: 7E 8E
2014-07-11,22:41:07.390: 7E 2F
2014-07-11,22:41:07.400: 7E D0
2014-07-11,22:41:07.420: 7E 71
2014-07-11,22:41:07.430: 7E F2
2014-07-11,22:41:07.440: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:07.450: 7E 53
2014-07-11,22:41:07.460: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:07.470: 7E 34
2014-07-11,22:41:07.490: 7E 98 10 05 F1 10 32 0F 96 11
2014-07-11,22:41:07.500: 7E 98 10 01 F1 59 00 12 96 FA
2014-07-11,22:41:07.510: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:07.520: 7E 95
2014-07-11,22:41:07.530: 7E 16
2014-07-11,22:41:07.540: 7E B7
2014-07-11,22:41:07.560: 7E 39
2014-07-11,22:41:07.570: 7E BA
2014-07-11,22:41:07.590: 7E 1B
2014-07-11,22:41:07.600: 7E 00
2014-07-11,22:41:07.610: 7E 22
2014-07-11,22:41:07.620: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:07.630: 7E 83
2014-07-11,22:41:07.640: 7E E4
2014-07-11,22:41:07.650: 7E 45
2014-07-11,22:41:07.660: 7E C6
2014-07-11,22:41:07.680: 7E 67
2014-07-11,22:41:07.690: 7E E9
2014-07-11,22:41:07.700: 7E 6A
2014-07-11,22:41:07.710: 7E CB
2014-07-11,22:41:07.720: 7E AC
2014-07-11,22:41:07.740: 7E 0D
2014-07-11,22:41:07.750: 7E 48 10 00 03 30 15 58 81 CD
2014-07-11,22:41:07.760: 7E 8E
2014-07-11,22:41:07.780: 7E 2F
2014-07-11,22:41:07.790: 7E D0
2014-07-11,22:41:07.800: 7E 71
2014-07-11,22:41:07.810: 7E F2
2014-07-11,22:41:07.820: 7E 53
2014-07-11,22:41:07.830: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:07.840: 7E 34
2014-07-11,22:41:07.860: 7E 95
2014-07-11,22:41:07.870: 7E 16
2014-07-11,22:41:07.880: 7E B7
2014-07-11,22:41:07.890: 7E 39
2014-07-11,22:41:07.910: 7E BA
2014-07-11,22:41:07.920: 7E 1B
2014-07-11,22:41:07.930: 7E 98 10 05 F1 11 32 10 96 0F
2014-07-11,22:41:07.940: 7E 98 10 01 F1 5A 00 12 96 F9
2014-07-11,22:41:07.950: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:07.960: 7E 00
2014-07-11,22:41:07.980: 7E 22
2014-07-11,22:41:07.990: 7E 83
2014-07-11,22:41:08.000: 7E E4
2014-07-11,22:41:08.010: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:08.020: 7E 45
2014-07-11,22:41:08.040: 7E C6
2014-07-11,22:41:08.050: 7E 67
2014-07-11,22:41:08.060: 7E E9
2014-07-11,22:41:08.080: 7E 48 10 00 03 32 11 08 00 A1
2014-07-11,22:41:08.090: 7E 6A
2014-07-11,22:41:08.100: 7E CB
2014-07-11,22:41:08.110: 7E AC
2014-07-11,22:41:08.120: 7E 0D
2014-07-11,22:41:08.130: 7E 8E
2014-07-11,22:41:08.140: 7E 2F
2014-07-11,22:41:08.160: 7E D0
2014-07-11,22:41:08.170: 7E 71
2014-07-11,22:41:08.180: 7E F2
2014-07-11,22:41:08.190: 7E 53
2014-07-11,22:41:08.200: 7E 34
2014-07-11,22:41:08.220: 7E 95
2014-07-11,22:41:08.230: 7E A1 10 00 03 30 0D 88 81 A5
2014-07-11,22:41:08.240: 7E 16
2014-07-11,22:41:08.250: 7E B7
2014-07-11,22:41:08.270: 7E 39
2014-07-11,22:41:08.280: 7E BA
2014-07-11,22:41:08.290: 7E 1B
2014-07-11,22:41:08.300: 7E 00
2014-07-11,22:41:08.310: 7E 22
2014-07-11,22:41:08.320: 7E 83
2014-07-11,22:41:08.340: 7E E4
2014-07-11,22:41:08.350: 7E 45
2014-07-11,22:41:08.360: 7E 48
2014-07-11,22:41:08.370: 10 00 03 30 15 50 01 56
2014-07-11,22:41:08.380: 7E 98 10 05 F1 11 30 14 96 0D
2014-07-11,22:41:08.390: 7E 98 10 01 F1 59 00 12 96 FA
2014-07-11,22:41:08.400: 7E 98 10 04 F1 62 00 12 96 EE
2014-07-11,22:41:08.410: 7E A1 10 00 03 32 34 08 00 7D 5E
2014-07-11,22:41:08.420: 7E C6
2014-07-11,22:41:08.430: 7E 67␍
+77
View File
@@ -0,0 +1,77 @@
Date,Time,SWR,RSSI,A1,A2,A3,A4,GPS Date,GPS Time,Long,Lat,Course,GPS Speed(kts),GPS Alt,Baro Alt(m),Vertical Speed,Air Speed(kts),Temp1,Temp2,RPM,Fuel,Cell volts,Cell 1,Cell 2,Cell 3,Cell 4,Cell 5,Cell 6,Cell 7,Cell 8,Cell 9,Cell 10,Cell 11,Cell 12,Current,Consumption,Vfas,AccelX,AccelY,AccelZ,Rud,Ele,Thr,Ail,S1,S2,S3,LS,RS,SA,SB,SC,SD,SE,SF,SG,SH
2014-07-11,22:41:00.570,0,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:00.770,0,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-552,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:00.870,0,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:00.980,0,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-7,1024,1024,-1024,-552,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:01.080,0,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,1,-11,-1024,-2,1024,1024,-1024,-555,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:01.180,0,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:01.290,0,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:01.390,0,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:01.490,0,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,5,-8,-1024,-8,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:01.600,0,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:01.710,0,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:01.820,16,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,0.0,4.12,4.14,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:01.930,16,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:02.040,16,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:02.140,16,0,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:02.240,16,90,0.00,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-7,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:02.340,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,5,-8,-1024,-7,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:02.440,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,2,-11,-1024,-4,1024,1024,-1024,-556,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:02.540,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:02.640,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,1,-11,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:02.750,17,91,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:02.850,17,91,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,2,-11,-1024,-5,1024,1024,-1024,-555,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:02.950,17,91,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-7,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:03.050,17,91,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:03.150,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:03.250,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:03.360,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-7,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:03.470,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:03.580,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:03.680,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:03.780,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,5,-8,-1024,-7,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:03.880,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:03.980,17,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:04.080,17,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-7,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:04.190,17,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,0.04,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:04.300,17,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,0.04,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,5,-8,-1024,-7,1024,1024,-1024,-551,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:04.400,17,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,0.04,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,2,-11,-1024,-4,1024,1024,-1024,-555,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:04.500,17,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,0.04,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,5,-9,-1024,-8,1024,1024,-1024,-551,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:04.600,17,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,0.04,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:04.700,17,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,0.04,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-551,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:04.800,17,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:04.910,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-4,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:05.010,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-5,1024,1024,-1024,-555,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:05.110,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,2,-9,-1024,-7,1024,1024,-1024,-552,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:05.210,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,5,-8,-1024,-7,1024,1024,-1024,-552,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:05.310,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-4,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:05.410,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-4,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:05.520,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,5,-8,-1024,-7,1024,1024,-1024,-552,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:05.630,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:05.730,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:05.840,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:05.940,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,5,-8,-1024,-7,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:06.050,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:06.160,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:06.260,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:06.360,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-555,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:06.460,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:06.560,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:06.660,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,4.13,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:06.760,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,4.13,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,1,-11,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:06.860,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,4.13,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:06.960,16,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,4.13,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:07.060,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,4.13,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:07.160,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,20.7,4.12,4.14,4.20,4.13,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:07.270,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-4,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:07.370,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:07.470,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:07.570,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:07.670,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,5,-8,-1024,-10,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:07.770,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-11,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:07.870,16,89,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:07.970,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:08.070,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:08.170,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-553,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:08.270,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,24.8,4.12,4.14,4.20,4.13,4.13,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
2014-07-11,22:41:08.370,17,90,5.07,0.00,0.00,0.00,2000-00-00,00:00:00,002.0000-,002.0000-,000.00,0, 0.00, 0.00, 0.00,0.0,0,0,0,0,16.6,4.12,4.14,4.20,0.04,0.04,4.13,0.00,0.00,0.00,0.00,0.00,0.00,0.0,0,0.0,0,0,0,4,-9,-1024,-5,1024,1024,-1024,-554,1024,1,1,-1,0,-1,-1,-1,-1
1 Date Time SWR RSSI A1 A2 A3 A4 GPS Date GPS Time Long Lat Course GPS Speed(kts) GPS Alt Baro Alt(m) Vertical Speed Air Speed(kts) Temp1 Temp2 RPM Fuel Cell volts Cell 1 Cell 2 Cell 3 Cell 4 Cell 5 Cell 6 Cell 7 Cell 8 Cell 9 Cell 10 Cell 11 Cell 12 Current Consumption Vfas AccelX AccelY AccelZ Rud Ele Thr Ail S1 S2 S3 LS RS SA SB SC SD SE SF SG SH
2 2014-07-11 22:41:00.570 0 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
3 2014-07-11 22:41:00.770 0 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -552 1024 1 1 -1 0 -1 -1 -1 -1
4 2014-07-11 22:41:00.870 0 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
5 2014-07-11 22:41:00.980 0 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -7 1024 1024 -1024 -552 1024 1 1 -1 0 -1 -1 -1 -1
6 2014-07-11 22:41:01.080 0 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 1 -11 -1024 -2 1024 1024 -1024 -555 1024 1 1 -1 0 -1 -1 -1 -1
7 2014-07-11 22:41:01.180 0 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
8 2014-07-11 22:41:01.290 0 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
9 2014-07-11 22:41:01.390 0 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
10 2014-07-11 22:41:01.490 0 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 5 -8 -1024 -8 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
11 2014-07-11 22:41:01.600 0 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
12 2014-07-11 22:41:01.710 0 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
13 2014-07-11 22:41:01.820 16 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 0.0 4.12 4.14 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
14 2014-07-11 22:41:01.930 16 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
15 2014-07-11 22:41:02.040 16 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
16 2014-07-11 22:41:02.140 16 0 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
17 2014-07-11 22:41:02.240 16 90 0.00 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -7 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
18 2014-07-11 22:41:02.340 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 5 -8 -1024 -7 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
19 2014-07-11 22:41:02.440 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 2 -11 -1024 -4 1024 1024 -1024 -556 1024 1 1 -1 0 -1 -1 -1 -1
20 2014-07-11 22:41:02.540 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
21 2014-07-11 22:41:02.640 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 1 -11 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
22 2014-07-11 22:41:02.750 17 91 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
23 2014-07-11 22:41:02.850 17 91 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 2 -11 -1024 -5 1024 1024 -1024 -555 1024 1 1 -1 0 -1 -1 -1 -1
24 2014-07-11 22:41:02.950 17 91 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -7 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
25 2014-07-11 22:41:03.050 17 91 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
26 2014-07-11 22:41:03.150 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
27 2014-07-11 22:41:03.250 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
28 2014-07-11 22:41:03.360 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -7 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
29 2014-07-11 22:41:03.470 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
30 2014-07-11 22:41:03.580 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
31 2014-07-11 22:41:03.680 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
32 2014-07-11 22:41:03.780 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 5 -8 -1024 -7 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
33 2014-07-11 22:41:03.880 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
34 2014-07-11 22:41:03.980 17 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
35 2014-07-11 22:41:04.080 17 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -7 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
36 2014-07-11 22:41:04.190 17 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 0.04 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
37 2014-07-11 22:41:04.300 17 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 0.04 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 5 -8 -1024 -7 1024 1024 -1024 -551 1024 1 1 -1 0 -1 -1 -1 -1
38 2014-07-11 22:41:04.400 17 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 0.04 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 2 -11 -1024 -4 1024 1024 -1024 -555 1024 1 1 -1 0 -1 -1 -1 -1
39 2014-07-11 22:41:04.500 17 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 0.04 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 5 -9 -1024 -8 1024 1024 -1024 -551 1024 1 1 -1 0 -1 -1 -1 -1
40 2014-07-11 22:41:04.600 17 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 0.04 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
41 2014-07-11 22:41:04.700 17 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 0.04 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -551 1024 1 1 -1 0 -1 -1 -1 -1
42 2014-07-11 22:41:04.800 17 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
43 2014-07-11 22:41:04.910 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -4 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
44 2014-07-11 22:41:05.010 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -5 1024 1024 -1024 -555 1024 1 1 -1 0 -1 -1 -1 -1
45 2014-07-11 22:41:05.110 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 2 -9 -1024 -7 1024 1024 -1024 -552 1024 1 1 -1 0 -1 -1 -1 -1
46 2014-07-11 22:41:05.210 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 5 -8 -1024 -7 1024 1024 -1024 -552 1024 1 1 -1 0 -1 -1 -1 -1
47 2014-07-11 22:41:05.310 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -4 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
48 2014-07-11 22:41:05.410 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -4 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
49 2014-07-11 22:41:05.520 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 5 -8 -1024 -7 1024 1024 -1024 -552 1024 1 1 -1 0 -1 -1 -1 -1
50 2014-07-11 22:41:05.630 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
51 2014-07-11 22:41:05.730 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
52 2014-07-11 22:41:05.840 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
53 2014-07-11 22:41:05.940 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 5 -8 -1024 -7 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
54 2014-07-11 22:41:06.050 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
55 2014-07-11 22:41:06.160 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
56 2014-07-11 22:41:06.260 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
57 2014-07-11 22:41:06.360 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -555 1024 1 1 -1 0 -1 -1 -1 -1
58 2014-07-11 22:41:06.460 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
59 2014-07-11 22:41:06.560 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
60 2014-07-11 22:41:06.660 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 4.13 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
61 2014-07-11 22:41:06.760 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 4.13 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 1 -11 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
62 2014-07-11 22:41:06.860 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 4.13 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
63 2014-07-11 22:41:06.960 16 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 4.13 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
64 2014-07-11 22:41:07.060 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 4.13 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
65 2014-07-11 22:41:07.160 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 20.7 4.12 4.14 4.20 4.13 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
66 2014-07-11 22:41:07.270 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -4 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
67 2014-07-11 22:41:07.370 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
68 2014-07-11 22:41:07.470 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
69 2014-07-11 22:41:07.570 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
70 2014-07-11 22:41:07.670 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 5 -8 -1024 -10 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
71 2014-07-11 22:41:07.770 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -11 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
72 2014-07-11 22:41:07.870 16 89 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
73 2014-07-11 22:41:07.970 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
74 2014-07-11 22:41:08.070 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
75 2014-07-11 22:41:08.170 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -553 1024 1 1 -1 0 -1 -1 -1 -1
76 2014-07-11 22:41:08.270 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 24.8 4.12 4.14 4.20 4.13 4.13 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
77 2014-07-11 22:41:08.370 17 90 5.07 0.00 0.00 0.00 2000-00-00 00:00:00 002.0000- 002.0000- 000.00 0 0.00 0.00 0.00 0.0 0 0 0 0 16.6 4.12 4.14 4.20 0.04 0.04 4.13 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0 0.0 0 0 0 4 -9 -1024 -5 1024 1024 -1024 -554 1024 1 1 -1 0 -1 -1 -1 -1
+11
View File
@@ -0,0 +1,11 @@
This folder contains sample data files from various telemetry sensors
Files:
MODELE24-2014-07-11.csv
MODELE24-2014-07-11-sport.log
Data from two FrSky FLVSS Smart Port LiPo Voltage Sensors one with
default appid 0xA1 (physical ID 1), the other one has appid changed
to 0x48 (physical ID 8). It shows a problem with some cell readings
of second sensor.
+31
View File
@@ -0,0 +1,31 @@
/opentx.elf
/simu
/opentx.map
/simu.d
/snapshot_*.png
/*.sh
/*.bat
/*.bin
/*.bin.*
/*.hex
/*.lst
/*.lss
/SCRIPTS
/TEMPLATES
/SOUNDS
/LOGS
/allsrc.cpp
/allsimusrc.cpp
/BMP
/traces
/RADIO
/MODELS
/FIRMWARES
/EEPROMS
/gtests
/gtest_main.a
/gtests.d
/lua_exports*
/lua_fields*
.directory
+809
View File
@@ -0,0 +1,809 @@
include(CMakeForceCompiler)
include(Bitmaps)
set(PCB_TYPES X9LITE X9LITES X7 XLITE XLITES X9D X9D+ X9E X10 X12S PL18 T15PRO ST16 PA01 TX15 TX16SMK3)
set(RADIO_LANGUAGES CN CZ DA DE EN ES FI FR HE HU IT JP KO NL PL PT RU SE SK TW UA)
set(TTS_LANGUAGES CN CZ DA DE EN ES FI FR HE HU IT JP KO NL PL PT RU SE SK TW UA)
set(PCB "X9D+" CACHE STRING "Radio type, one of: ${PCB_TYPES}")
set_property(CACHE PCB PROPERTY STRINGS ${PCB_TYPES})
set(TRANSLATIONS "EN" CACHE STRING "Radio language, one of: ${RADIO_LANGUAGES}")
set_property(CACHE TRANSLATIONS PROPERTY STRINGS ${RADIO_LANGUAGES})
set(DEFAULT_MODE "" CACHE STRING "Default sticks mode")
set(POPUP_LEVEL 2 CACHE STRING "Popup level")
option(HELI "Heli menu" ON)
option(FLIGHT_MODES "Flight Modes" ON)
option(CURVES "Curves" ON)
option(GVARS "Global variables" ON)
option(GUI "GUI enabled" ON)
option(PPM_CENTER_ADJUSTABLE "PPM center adjustable" ON)
option(PPM_LIMITS_SYMETRICAL "PPM limits symetrical" OFF)
option(OVERRIDE_CHANNEL_FUNCTION "OverrideChannel function available" ON)
option(DANGEROUS_MODULE_FUNCTIONS "Dangerous module functions (RangeCheck / Bind / Module OFF, etc.) available" OFF)
option(FAI "Competition mode (no telemetry)" OFF)
option(AUTOSOURCE "Automatic source detection in menus" ON)
option(AUTOSWITCH "Automatic switch detection in menus" ON)
option(SEMIHOSTING "Enable debugger semihosting" OFF)
option(JITTER_MEASURE "Enable ADC jitter measurement" OFF)
option(WATCHDOG "Enable hardware Watchdog" ON)
option(ASTERISK "Enable asterisk icon (test only firmware)" OFF)
option(LUA "Enable LUA support" ON)
option(SIMU_DISKIO "Enable disk IO simulation in simulator. Simulator will use FatFs module and simulated IO layer that uses \"./sdcard.image\" file as image of SD card. This file must contain whole SD card from first to last sector" OFF)
option(SIMU_LUA_COMPILER "Pre-compile and save Lua scripts in simulator." ON)
option(FAS_PROTOTYPE "Support of old FAS prototypes (different resistors)" OFF)
option(RAS "RAS (SWR) enabled" ON)
option(TEMPLATES "Model templates menu" OFF)
option(TRACE_LUA_INTERNALS "Turn on traces for Lua internals" OFF)
option(TRACE_AUDIO "Traces audio enabled" OFF)
option(DEBUG_SEGGER_RTT "Debug output to Segger RTT" OFF)
option(DEBUG_WINDOWS "Turn on windows traces" OFF)
option(DEBUG_YAML "Turn on YAML traces" OFF)
option(DEBUG_LABELS "Turn on Labels traces" OFF)
option(NANO "Use nano newlib and binalloc" ON)
option(TEST_BUILD_WARNING "Warn this is a test build" OFF)
option(MODULE_PROTOCOL_FCC "Add support for FCC modules" ON)
option(MODULE_PROTOCOL_LBT "Add support for EU/LBT modules" ON)
option(MODULE_PROTOCOL_D8 "Add support for D8 modules" ON)
option(FRSKY_RELEASE "Used to build FrSky released firmware" OFF)
option(TBS_RELEASE "Used to build TBS released firmware" OFF)
option(IMRC_RELEASE "Used to build IMRC released firmware" OFF)
option(HARDWARE_TRAINER_MULTI "Allow multi trainer" OFF)
option(BOOTLOADER "Include Bootloader" ON)
option(FWDRIVE "Attach also firmware drive with USB" OFF)
option(DISABLE_MCUCHECK "Disable MCU check at start" OFF)
option(LUA_MIXER "Enable LUA mixer/model scripts support" ON)
if(PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019)
option(USBJ_EX "Enable USB Joystick Extension" OFF)
else()
option(USBJ_EX "Enable USB Joystick Extension" ON)
endif()
option(AUDIO "Enable audio" ON)
option(EXFAT "Enable exFAT filesystem support in FatFs" OFF)
if(NATIVE_BUILD)
option(ALL_LANGUAGES "Enable runtime language selection" ON)
else()
option(ALL_LANGUAGES "Enable runtime language selection" OFF)
endif()
if(PCB STREQUAL X7 AND PCBREV STREQUAL LR3PRO)
option(POWER_LED_BLUE "Override Power LED to be normally Blue" ON)
else()
option(POWER_LED_BLUE "Override Power LED to be normally Blue" OFF)
endif()
# since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags.
set(FIRMWARE_C_FLAGS "" CACHE STRING "Additional flags for firmware target c compiler (note: all CMAKE_C_FLAGS[_*] are ignored for firmware/bootloader).")
set(FIRMWARE_C_FLAGS_DEBUG "-g" CACHE STRING "Additional flags for firmware target (Debug config) c compiler (note: CMAKE_C_FLAGS_DEBUG is ignored for firmware/bootloader).")
set(FIRMWARE_CXX_FLAGS "" CACHE STRING "Additional flags for firmware target c++ compiler (note: all CMAKE_CXX_FLAGS[_*] are ignored for firmware/bootloader).")
set(FIRMWARE_CXX_FLAGS_DEBUG "-g" CACHE STRING "Additional flags for firmware target (Debug config) c++ compiler (note: CMAKE_CXX_FLAGS_DEBUG is ignored for firmware/bootloader).")
set(THIRDPARTY_DIR thirdparty)
set(LUA_DIR ${THIRDPARTY_DIR}/Lua/src)
set(RTOS_DIR ${THIRDPARTY_DIR}/FreeRTOS)
set(FATFS_DIR ${THIRDPARTY_DIR}/FatFs)
set(RADIO_BIN_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
configure_file(stamp.h.in stamp.h @ONLY)
if(PCB STREQUAL X12S OR PCB STREQUAL X10)
include(targets/horus/CMakeLists.txt)
elseif(PCB STREQUAL PL18)
include(targets/pl18/CMakeLists.txt)
elseif(PCB STREQUAL T15PRO)
include(targets/t15pro/CMakeLists.txt)
elseif(PCB STREQUAL ST16)
include(targets/st16/CMakeLists.txt)
elseif(PCB STREQUAL PA01)
include(targets/pa01/CMakeLists.txt)
elseif(PCB STREQUAL TX15)
include(targets/tx15/CMakeLists.txt)
elseif(PCB STREQUAL TX16SMK3)
include(targets/tx16smk3/CMakeLists.txt)
elseif(PCB STREQUAL STM32H7S78_DK)
include(targets/stm32h7s78-dk/CMakeLists.txt)
elseif(PCB STREQUAL X9E OR PCB STREQUAL X9D+ OR PCB STREQUAL X9D OR PCB STREQUAL X7 OR PCB STREQUAL X9LITE OR PCB STREQUAL X9LITES OR PCB STREQUAL XLITE OR PCB STREQUAL XLITES)
include(targets/taranis/CMakeLists.txt)
else()
message(FATAL_ERROR "Unknown PCB '${PCB}'")
endif()
# Add RADIO_xxx definition
string(TOUPPER ${FLAVOUR} RADIO_NAME)
string(REPLACE "+" "P" RADIO_NAME ${RADIO_NAME})
string(CONCAT RADIO_NAME "RADIO_" ${RADIO_NAME})
add_definitions(-D${RADIO_NAME})
set(${RADIO_NAME} YES)
add_definitions(
-DCPU_TYPE=${CPU_TYPE} -DCPU_TYPE_FULL=${CPU_TYPE_FULL}
)
set(HW_DESC_JSON ${FLAVOUR}.json)
include(hal/CMakeLists.txt)
add_subdirectory(bitmaps)
add_subdirectory(fonts)
if(CPU_TYPE STREQUAL STM32H7 OR CPU_TYPE STREQUAL STM32H7RS)
include(targets/common/arm/stm32/h7/CMakeLists.txt)
endif()
if(CPU_TYPE STREQUAL STM32F4)
include(targets/common/arm/stm32/f4/CMakeLists.txt)
endif()
if(CPU_TYPE STREQUAL STM32F2)
include(targets/common/arm/stm32/f2/CMakeLists.txt)
endif()
if(CPU_FAMILY STREQUAL STM32)
include(targets/common/arm/stm32/CMakeLists.txt)
include(boards/generic_stm32/CMakeLists.txt)
endif()
if(ARCH STREQUAL ARM)
include(targets/common/arm/CMakeLists.txt)
endif()
# Generate hardware definitions from hal.h
# Must be after all add_definitions() so the preprocessor sees all flags
AddHardwareDefTarget(${HW_DESC_JSON})
add_custom_target(hardware_defs DEPENDS ${HW_DESC_JSON}.h)
include_directories(targets/${TARGET_DIR} ${THIRDPARTY_DIR})
if(NATIVE_BUILD)
include_directories(targets/simu)
endif()
foreach(LANGUAGE ${RADIO_LANGUAGES})
if(TRANSLATIONS STREQUAL ${LANGUAGE})
add_definitions(-DTRANSLATIONS_${LANGUAGE} -DTRANSLATIONS="${LANGUAGE}")
endif()
endforeach()
set(RTL_LANGUAGES HE)
if(TRANSLATIONS IN_LIST RTL_LANGUAGES)
set(TRANSLATION_IS_RTL 1)
else()
set(TRANSLATION_IS_RTL 0)
endif()
add_definitions(-DTRANSLATION_IS_RTL=${TRANSLATION_IS_RTL})
set(SRC ${SRC} debug.cpp)
add_definitions(-DFLAVOUR="${FLAVOUR}")
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR}/bitmaps/${BITMAPS_DIR})
include(gui/CMakeLists.txt)
# TODO: move to storage/
set(SRC ${SRC} storage/storage_common.cpp)
set(SRC ${SRC} storage/sdcard_common.cpp)
set(SRC ${SRC} storage/sdcard_yaml.cpp)
include(storage/yaml/CMakeLists.txt)
if(STORAGE_MODELSLIST)
set(SRC ${SRC} storage/modelslist.cpp)
add_definitions(-DSTORAGE_MODELSLIST)
endif()
if(RTC_BACKUP_RAM)
add_definitions(-DRTC_BACKUP_RAM)
GenerateDataCopy(datastructs_private.h datacopy.inc)
set(SRC ${SRC}
storage/rlc.cpp
storage/rtc_backup.cpp
${CMAKE_CURRENT_BINARY_DIR}/datacopy.inc
)
# Add custom target for debugging
add_custom_target(datacopy DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/datacopy.inc)
endif()
if (LUA_MIXER AND NOT LUA)
message(FATAL_ERROR "LUA_MIXER requires LUA!!")
endif()
if(LUA)
include(lua/CMakeLists.txt)
endif()
if(HELI)
add_definitions(-DHELI)
endif()
if(FLIGHT_MODES)
add_definitions(-DFLIGHT_MODES)
endif()
if(CURVES)
add_definitions(-DCURVES)
set(SRC ${SRC} curves.cpp)
endif()
if(GVARS)
add_definitions(-DGVARS)
set(SRC ${SRC} gvars.cpp)
endif()
if(FAI STREQUAL YES)
add_definitions(-DFAI)
elseif(FAI STREQUAL CHOICE)
add_definitions(-DFAI_CHOICE)
endif()
if(NOT RAS)
add_definitions(-DNO_RAS)
endif()
if(FAS_PROTOTYPE)
add_definitions(-DFAS_PROTOTYPE)
endif()
if(AUTOSOURCE)
add_definitions(-DAUTOSOURCE)
endif()
if(AUTOSWITCH)
add_definitions(-DAUTOSWITCH)
endif()
if(JITTER_MEASURE)
add_definitions(-DJITTER_MEASURE)
endif()
if(ASTERISK)
add_definitions(-DASTERISK)
endif()
if(WATCHDOG AND NOT NATIVE_BUILD)
add_definitions(-DUSE_WATCHDOG)
endif()
if(SIMU_DISKIO)
add_definitions(-DSIMU_DISKIO)
endif()
set(SRC ${SRC} sdcard.cpp rtc.cpp logs.cpp lib_file.cpp)
if(BLUETOOTH)
add_definitions(-DBLUETOOTH)
set(SRC ${SRC} bluetooth.cpp)
endif()
if(SHUTDOWN_CONFIRMATION)
add_definitions(-DSHUTDOWN_CONFIRMATION)
endif()
if(PPM_CENTER_ADJUSTABLE)
add_definitions(-DPPM_CENTER_ADJUSTABLE)
endif()
if(PPM_LIMITS_SYMETRICAL)
add_definitions(-DPPM_LIMITS_SYMETRICAL)
endif()
if(OVERRIDE_CHANNEL_FUNCTION)
add_definitions(-DOVERRIDE_CHANNEL_FUNCTION)
endif()
if(DANGEROUS_MODULE_FUNCTIONS)
add_definitions(-DDANGEROUS_MODULE_FUNCTIONS)
endif()
if(NOT DEFAULT_MODE STREQUAL "")
add_definitions(-DDEFAULT_MODE=${DEFAULT_MODE})
endif()
if(TRACE_SIMPGMSPACE)
add_definitions(-DTRACE_SIMPGMSPACE)
endif()
if(TRACE_LUA_INTERNALS)
add_definitions(-DTRACE_LUA_INTERNALS_ENABLED)
endif()
if(TRACE_AUDIO)
add_definitions(-DTRACE_AUDIO)
set(DEBUG ON)
set(DEBUG_TRACE_BUFFER ON)
endif()
if(DEBUG STREQUAL RTT)
set(DEBUG ON)
set(DEBUG_SEGGER_RTT ON)
endif()
if(DEBUG STREQUAL RTT_NO_USB)
set(DEBUG ON)
set(DEBUG_SEGGER_RTT ON)
add_definitions(-DDEBUG_DISABLE_USB)
endif()
if(DEBUG STREQUAL RTT_SYSVIEW)
set(DEBUG ON)
set(DEBUG_SEGGER_RTT ON)
set(DEBUG_SEGGER_SYSVIEW ON)
endif()
if(DEBUG_SEGGER_RTT AND NOT NATIVE_BUILD)
add_definitions(-DDEBUG_SEGGER_RTT -DSEGGER_RTT_BUFFER_SECTION=".ram")
include_directories(${THIRDPARTY_DIR}/Segger/Config)
include_directories(${THIRDPARTY_DIR}/Segger/Sample)
include_directories(${THIRDPARTY_DIR}/Segger/SEGGER)
set(SRC ${SRC} ${THIRDPARTY_DIR}/Segger/SEGGER/SEGGER_RTT.c)
set(SRC ${SRC} ${THIRDPARTY_DIR}/Segger/SEGGER/SEGGER_RTT_ASM_ARMv7M.S)
set(SRC ${SRC} ${THIRDPARTY_DIR}/Segger/SEGGER/SEGGER_RTT_printf.c)
endif()
if(DEBUG_SEGGER_SYSVIEW AND NOT NATIVE_BUILD)
add_definitions(-DDEBUG_SEGGER_SYSVIEW)
include_directories(${THIRDPARTY_DIR}/Segger/Sample/FreeRTOSV11)
set(SRC ${SRC} ${THIRDPARTY_DIR}/Segger/SEGGER/SEGGER_SYSVIEW.c)
set(SRC ${SRC} ${THIRDPARTY_DIR}/Segger/Sample/FreeRTOSV11/SEGGER_SYSVIEW_FreeRTOS.c)
set(SRC ${SRC} ${THIRDPARTY_DIR}/Segger/Sample/FreeRTOSV11/Config/Cortex-M/SEGGER_SYSVIEW_Config_FreeRTOS.c)
endif()
if(DEBUG_WINDOWS)
add_definitions(-DDEBUG_WINDOWS)
endif()
if(DEBUG_YAML)
add_definitions(-DDEBUG_YAML)
endif()
if(DEBUG_LABELS)
add_definitions(-DDEBUG_LABELS)
endif()
if(IMU_LSM6DS33)
add_definitions(-DIMU_LSM6DS33)
endif()
if(TEST_BUILD_WARNING)
add_definitions(-DTEST_BUILD_WARNING)
endif()
if(MODULE_PROTOCOL_FCC)
add_definitions(-DMODULE_PROTOCOL_FCC)
endif()
if(MODULE_PROTOCOL_LBT)
add_definitions(-DMODULE_PROTOCOL_LBT)
endif()
if(MODULE_PROTOCOL_D8)
add_definitions(-DMODULE_PROTOCOL_D8)
endif()
if(JUMPER_RELEASE)
add_definitions(-DJUMPER_RELEASE)
endif()
if(RADIOMASTER_RELEASE)
add_definitions(-DRADIOMASTER_RELEASE)
endif()
if(RADIOMASTER_RTF_RELEASE)
add_definitions(-DRADIOMASTER_RTF_RELEASE)
endif()
if(TBS_RELEASE)
add_definitions(-DTBS_RELEASE)
endif()
if(IMRC_RELEASE)
add_definitions(-DIMRC_RELEASE)
endif()
if(FRSKY_RELEASE)
add_definitions(-DFRSKY_RELEASE)
set(POPUP_LEVEL 3)
endif()
if(IFLIGHT_RELEASE)
add_definitions(-DIFLIGHT_RELEASE)
endif()
if(BETAFPV_RELEASE)
add_definitions(-DBETAFPV_RELEASE)
endif()
if(HARDWARE_TRAINER_MULTI)
add_definitions(-DHARDWARE_TRAINER_MULTI)
endif()
add_definitions(-DPOPUP_LEVEL=${POPUP_LEVEL})
if(INTERNAL_MODULE_MULTI OR INTERNAL_MODULE_CRSF)
set(DEFAULT_TEMPLATE_SETUP 21 CACHE STRING "")
else()
set(DEFAULT_TEMPLATE_SETUP 0 CACHE STRING "")
endif()
add_definitions(-DDEFAULT_TEMPLATE_SETUP=${DEFAULT_TEMPLATE_SETUP})
if(FWDRIVE)
add_definitions(-DFWDRIVE)
endif()
if(DISABLE_MCUCHECK)
add_definitions(-DDISABLE_MCUCHECK)
endif()
if(SIZE_TARGET_MEM_DEFINE MATCHES 32768)
add_definitions(-DSDRAM_32M)
elseif(SIZE_TARGET_MEM_DEFINE MATCHES 16384)
add_definitions(-DSDRAM_16M)
else(SIZE_TARGET_MEM_DEFINE MATCHES 8192)
add_definitions(-DSDRAM_8M)
endif()
set(SRC
${SRC}
edgetx.cpp
datastructs_model.cpp
datastructs_radio.cpp
functions.cpp
strhelpers.cpp
switches.cpp
analogs.cpp
mixes.cpp
mixer.cpp
mixer_scheduler.cpp
stamp.cpp
timers.cpp
trainer.cpp
model_init.cpp
serial.cpp
audio.cpp
model_audio.cpp
pdm_wav_recorder.cpp
sbus.cpp
input_mapping.cpp
inactivity_timer.cpp
tasks/mixer_task.cpp
)
if(GUI)
add_definitions(-DGUI)
set(SRC
${SRC}
keys.cpp
maths.cpp
translations/translations.cpp
cfn_sort.cpp
gui/gui_common.cpp
)
foreach(FILE ${GUI_SRC})
set(SRC ${SRC} gui/${GUI_DIR}/${FILE})
endforeach()
endif()
if(AUDIO)
add_definitions(-DAUDIO)
endif()
if(ALL_LANGUAGES)
add_definitions(-DALL_LANGS)
set(SRC
${SRC}
translations/sim/lang_cn.cpp
translations/sim/lang_cz.cpp
translations/sim/lang_da.cpp
translations/sim/lang_de.cpp
translations/sim/lang_en.cpp
translations/sim/lang_es.cpp
translations/sim/lang_fi.cpp
translations/sim/lang_fr.cpp
translations/sim/lang_he.cpp
translations/sim/lang_it.cpp
translations/sim/lang_jp.cpp
translations/sim/lang_ko.cpp
translations/sim/lang_nl.cpp
translations/sim/lang_pl.cpp
translations/sim/lang_pt.cpp
translations/sim/lang_ru.cpp
translations/sim/lang_se.cpp
translations/sim/lang_tw.cpp
translations/sim/lang_ua.cpp
)
endif()
if(USBJ_EX)
add_definitions(-DUSBJ_EX)
set(SRC ${SRC}
usb_joystick.cpp
)
endif()
if(POWER_LED_BLUE)
add_definitions(-DPOWER_LED_BLUE)
endif()
foreach(FILE ${TARGET_SRC})
set(SRC targets/${TARGET_DIR}/${FILE} ${SRC})
endforeach()
foreach(FILE ${FIRMWARE_TARGET_SRC})
set(FIRMWARE_SRC ${FIRMWARE_SRC} targets/${TARGET_DIR}/${FILE})
endforeach()
foreach(FILE ${PULSES_SRC})
set(SRC ${SRC} pulses/${FILE})
endforeach()
add_definitions(-DCORRECT_NEGATIVE_SHIFTS)
if(NOT MSVC)
set(WARNING_FLAGS "${WARNING_FLAGS} -Wall -Wno-address-of-packed-member -Wno-strict-aliasing -Wformat -Wreturn-type -Wunused -Wuninitialized -Wunknown-pragmas -Wno-switch -Wtype-limits")
if(WARNINGS_AS_ERRORS)
set(WARNING_FLAGS "${WARNING_FLAGS} -Werror")
endif(WARNINGS_AS_ERRORS)
else()
add_definitions(-DHAVE_STRUCT_TIMESPEC) # this is for pthread.h
if(WARNINGS_AS_ERRORS)
set(WARNING_FLAGS "${WARNING_FLAGS} /WX")
endif(WARNINGS_AS_ERRORS)
endif()
if(NATIVE_BUILD)
set(RADIOLIB_NATIVE_SRC ${SRC})
# Pack all radio sources into an object lib
add_library(radiolib_native OBJECT EXCLUDE_FROM_ALL
${RADIOLIB_NATIVE_SRC}
)
# Add SIMU and NATIVE_THREAD here PUBLIC, so it can be imported by other targets
# via INTERFACE_COMPILE_OPTIONS
target_compile_options(radiolib_native PUBLIC -DSIMU -DNATIVE_THREADS)
target_sources(radiolib_native PUBLIC
os/async_native.cpp
os/sleep_native.cpp
os/task_native.cpp
os/time_native.cpp
os/timer_native.cpp
)
add_dependencies(radiolib_native ${RADIO_DEPENDENCIES})
set_property(TARGET radiolib_native PROPERTY POSITION_INDEPENDENT_CODE ON)
add_subdirectory(targets/simu)
if(NOT WASI)
add_subdirectory(tests)
endif()
endif()
set(SRC ${SRC} ${FIRMWARE_SRC})
##### firmware target #####
if(NATIVE_BUILD)
message(STATUS "firmware target disabled")
return()
endif()
# Silence CMake 2.8+ warning about unused variable (ie. if specified when not relevant)
set(ignore_USE_UNSUPPORTED_TOOLCHAIN "${USE_UNSUPPORTED_TOOLCHAIN}")
if(NOT USE_UNSUPPORTED_TOOLCHAIN AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL "14.2.1")
message("CPP Compiler: ${CMAKE_CXX_COMPILER}, version ${CMAKE_CXX_COMPILER_VERSION}")
message(FATAL_ERROR "Only Arm GNU Toolchain version 14.2.rel1 is supported!!")
endif()
enable_language(ASM)
set(CMAKE_C_FLAGS "${FIRMWARE_C_FLAGS}")
set(CMAKE_C_FLAGS_DEBUG "${FIRMWARE_C_FLAGS_DEBUG}")
set(CMAKE_C_FLAGS_RELEASE "${FIRMWARE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${FIRMWARE_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${FIRMWARE_CXX_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_RELEASE "${FIRMWARE_CXX_FLAGS}")
find_program(BASH bash
HINTS "c:/cygwin/bin/" "c:/msys/bin/"
DOC "bash shell for firmware size report (eg. c:/cygwin/bin/bash.exe on Windows)."
)
set(OPT "s" CACHE STRING "Optimization mode (0/1/2/s)")
set(COMMON_FLAGS "-mcpu=${MCU} -mthumb -fomit-frame-pointer -fverbose-asm -Wa,-ahlms=firmware.lst")
set(COMMON_FLAGS "${COMMON_FLAGS} -gdwarf-2 -fno-exceptions -fdata-sections -ffunction-sections")
set(COMMON_FLAGS "${COMMON_FLAGS} -DHSE_VALUE=${HSE_VALUE}")
set(COMMON_FLAGS "${COMMON_FLAGS} -O${OPT} ${FPU_FLAGS}")
set(COMMON_FLAGS "${COMMON_FLAGS} ${WARNING_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS} -Wimplicit")
# "-Wno-register" because ${THIRDPARTY_DIR}/STM32F2xx_HAL_Driver uses invalid C++17 storage class specifier
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAGS} -fno-rtti -Wno-register")
if(SDRAM)
# Target with SDRAM do not need a custom allocator for now
# as the custom allocator has alignement issues
message("Target has SDRAM, do not use BIN_ALLOCATOR")
else()
# Nano's malloc does work well with lua, use our own
add_definitions(-DUSE_CUSTOM_ALLOCATOR)
set(SRC ${SRC} lua/custom_allocator.cpp)
endif()
# Bootloader
if(BOOTLOADER)
add_subdirectory(bootloader)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/bootloader)
set(RADIO_DEPENDENCIES ${RADIO_DEPENDENCIES} bootloader)
endif()
add_executable(firmware ${SRC})
link_libraries(firmware -lstdc++)
add_dependencies(firmware ${RADIO_DEPENDENCIES})
set_target_properties(firmware PROPERTIES EXCLUDE_FROM_ALL TRUE)
if(ARCH STREQUAL ARM)
target_link_libraries(firmware PRIVATE cmsis)
endif()
target_compile_definitions(board PUBLIC FREE_RTOS)
target_compile_definitions(board_lib PUBLIC FREE_RTOS)
target_compile_definitions(firmware PUBLIC FREE_RTOS)
target_compile_definitions(stm32_drivers_w_dbg_fw PUBLIC FREE_RTOS)
target_sources(firmware PUBLIC
os/async_freertos.cpp
os/sleep_freertos.cpp
os/task_freertos.cpp
os/time_freertos.cpp
os/timer_freertos.cpp
)
if(DEBUG)
target_compile_definitions(board PRIVATE -DDEBUG)
target_compile_definitions(firmware PRIVATE -DDEBUG)
target_compile_definitions(stm32_drivers_w_dbg_fw PRIVATE -DDEBUG)
endif()
set(LINKER_SCRIPT firmware.ld)
if(USE_FW_LTO)
message("-- Use LTO to compile firmware")
target_compile_options(firmware PRIVATE -flto)
target_link_options(firmware PRIVATE -Wl,-u,SystemCoreClockUpdate)
endif()
target_link_options(firmware PRIVATE
-lm -T${LINKER_DIR}/${LINKER_SCRIPT}
-Wl,-Map=firmware.map,--cref,--no-warn-mismatch,--gc-sections
)
if(NANO)
target_link_options(firmware PRIVATE
--specs=nano.specs
)
endif()
if (DEFINED TARGET_FLASH_SIZE)
# message("TARGET_FLASH_SIZE = ${TARGET_FLASH_SIZE}")
target_link_options(firmware PRIVATE
-Wl,--defsym=__flash_size=${TARGET_FLASH_SIZE}
)
endif()
if (DEFINED TARGET_EXTRAM_START)
target_link_options(firmware PRIVATE
-Wl,--defsym=__EXTRAM_START__=${TARGET_EXTRAM_START}
)
endif()
if (DEFINED TARGET_EXTRAM_SIZE)
target_link_options(firmware PRIVATE
-Wl,--defsym=__EXTRAM_SIZE__=${TARGET_EXTRAM_SIZE}
)
endif()
if (DEFINED TARGET_PSRAM_START)
target_link_options(firmware PRIVATE
-Wl,--defsym=__PSRAM_START__=${TARGET_PSRAM_START}
)
endif()
if (LUA)
# Lua needs %g and %f
target_link_options(firmware PRIVATE
"SHELL:-u _printf_float" "SHELL:-u _scanf_float"
)
endif()
if(ACCESS_DENIED)
add_subdirectory(thirdparty/AccessDenied)
include_directories(thirdparty/AccessDenied)
target_link_libraries(firmware PRIVATE AccessDenied)
endif()
if(FIRMWARE_STRIP_BOOTLOADER)
# Strip bootloader from binary
message("-- Strip bootloader from firmware binary")
set(OBJCOPY_ARGS -R .bootloader)
else()
message("-- Bootloader contained in firmware binary")
endif()
if(FIRMWARE_FORMAT_UF2)
if(VERSION_TAG)
set(UF2_VERSION_STRING "edgetx-${VERSION_TAG} (${GIT_STR})")
else()
set(UF2_VERSION_STRING "edgetx-${VERSION_PREFIX}${VERSION}${VERSION_SUFFIX} (${GIT_STR})")
endif()
add_custom_command(
TARGET firmware POST_BUILD
COMMAND ${PYTHON_EXECUTABLE} ${RADIO_DIRECTORY}/util/elf2uf2.py
--reboot auto --device "${FLAVOUR}"
--version "${UF2_VERSION_STRING}"
-i firmware.elf firmware.uf2
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
VERBATIM
)
endif()
add_custom_command(
TARGET firmware POST_BUILD
COMMAND ${CMAKE_OBJCOPY} -O binary ${OBJCOPY_ARGS} firmware.elf firmware.bin
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
find_program(GAWK gawk
HINTS "c:/cygwin/bin/" "c:/msys/bin/"
DOC "gawk for firmware size report.") # OS X might only have "awk"
if (BASH AND GAWK)
add_custom_target(firmware-size
COMMAND ${BASH} -kc '${RADIO_DIRECTORY}/util/elf-size-report.sh --mcu=${CPU_TYPE_FULL} ${SIZE_TARGET_MEM_DEFINE} firmware.elf'
DEPENDS firmware
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
else()
add_custom_target(firmware-size
COMMAND ${CMAKE_SIZE_UTIL} -A firmware.elf
DEPENDS firmware
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
endif()
if(CPU_FAMILY STREQUAL STM32)
add_custom_target(flash
COMMAND dfu-util --alt 0 --dfuse-address 0x08000000:leave -d 0483:df11 -D firmware.bin
DEPENDS firmware
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
add_custom_target(flash-bl
COMMAND dfu-util --alt 0 --dfuse-address 0x08000000:leave -d 0483:df11 -D bootloader.bin
DEPENDS bootloader
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
add_custom_target(flash-jtag
COMMAND st-flash --reset write firmware.bin 0x8000000
DEPENDS firmware
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
add_custom_target(flash-stlink
COMMAND ST-LINK_CLI -c SWD -P firmware.bin 0x8000000 -Rst -Q
DEPENDS firmware-size
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
endif()
PrintTargetReport("firmware")
+129
View File
@@ -0,0 +1,129 @@
/*
* Copyright (C) EdgeTx
*
* Based on code named
* opentx - https://github.com/opentx/opentx
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#pragma once
// Avoid using any other header file
#include <stdint.h>
extern uint32_t SystemCoreClock;
#define configUSE_PREEMPTION 1
#define configUSE_IDLE_HOOK 0
#if defined(COLORLCD)
#define configUSE_TICK_HOOK 1
#else
#define configUSE_TICK_HOOK 0
#endif
#define configCPU_CLOCK_HZ ( SystemCoreClock )
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
#define configMAX_PRIORITIES ( 5 )
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 30 )
// static memory is used instead
// #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 75 * 1024 ) )
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 1
// Use notifications
#define configUSE_MUTEXES 1
#define configQUEUE_REGISTRY_SIZE 0
#define configUSE_RECURSIVE_MUTEXES 0
#define configUSE_MALLOC_FAILED_HOOK 0
#define configUSE_APPLICATION_TASK_TAG 0
#define configUSE_COUNTING_SEMAPHORES 0
#define configGENERATE_RUN_TIME_STATS 0
#define configUSE_TIMERS 1
#if !defined(DEBUG)
#define configMAX_TASK_NAME_LEN 4
#define configUSE_TRACE_FACILITY 0
#define configCHECK_FOR_STACK_OVERFLOW 0
#else
#define configMAX_TASK_NAME_LEN 10
#define configUSE_TRACE_FACILITY 1
#define configCHECK_FOR_STACK_OVERFLOW 0
#endif
#define configSUPPORT_DYNAMIC_ALLOCATION 0
#define configSUPPORT_STATIC_ALLOCATION 1
/* Co-routine definitions. */
#define configUSE_CO_ROUTINES 0
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
/* Software timer definitions. */
#define configTIMER_TASK_PRIORITY ( 2 )
#define configTIMER_QUEUE_LENGTH 20
#define configTIMER_TASK_STACK_DEPTH ( 1024 )
/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */
#define INCLUDE_vTaskDelete 1
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
#define INCLUDE_xTimerPendFunctionCall 1
#define INCLUDE_uxTaskGetStackHighWaterMark 1
#if defined(THREADSAFE_MALLOC)
#define INCLUDE_xTaskGetSchedulerState 1
#endif
#if defined(CLI)
// required for stream buffers
#define INCLUDE_xTaskGetCurrentTaskHandle 1
#endif
/* Cortex-M specific definitions. */
#ifdef __NVIC_PRIO_BITS
/* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */
#define configPRIO_BITS __NVIC_PRIO_BITS
#else
#define configPRIO_BITS 4 /* 15 priority levels */
#endif
/* The lowest interrupt priority that can be used in a call to a "set priority"
function. */
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf
/* The highest interrupt priority that can be used by any interrupt service
routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL
INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
PRIORITY THAN THIS! (higher priorities are lower numeric values. */
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
/* Interrupt priorities used by the kernel port layer itself. These are generic
to all Cortex-M ports, and do not rely on any particular library functions. */
#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
/* Normal assert() semantics without relying on the provision of an assert.h
header file. */
#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }
/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
standard names. */
#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
#define xPortSysTickHandler SysTick_Handler
#if defined(DEBUG_SEGGER_SYSVIEW)
#include "SEGGER_SYSVIEW_FreeRTOS.h"
#endif
+251
View File
@@ -0,0 +1,251 @@
/*
* Copyright (C) EdgeTX
*
* Based on code named
* opentx - https://github.com/opentx/opentx
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
//
// Data based on MPM firmware version 1.3.4.31 multi.txt
//
#if defined(MULTIMODULE) or defined(SIMU)
#pragma once
//
// Common list of supported Multi protocols
//
enum ModuleSubtypeMulti {
MODULE_SUBTYPE_MULTI_FIRST = 0,
MODULE_SUBTYPE_MULTI_FLYSKY = MODULE_SUBTYPE_MULTI_FIRST,
MODULE_SUBTYPE_MULTI_HUBSAN, //1
MODULE_SUBTYPE_MULTI_FRSKY, //2
MODULE_SUBTYPE_MULTI_HISKY, //3
MODULE_SUBTYPE_MULTI_V2X2, //4
MODULE_SUBTYPE_MULTI_DSM2, //5
MODULE_SUBTYPE_MULTI_DEVO,
MODULE_SUBTYPE_MULTI_YD717,
MODULE_SUBTYPE_MULTI_KN,
MODULE_SUBTYPE_MULTI_SYMAX,
MODULE_SUBTYPE_MULTI_SLT, //10
MODULE_SUBTYPE_MULTI_CX10,
MODULE_SUBTYPE_MULTI_CG023,
MODULE_SUBTYPE_MULTI_BAYANG,
MODULE_SUBTYPE_MULTI_FRSKYX,
MODULE_SUBTYPE_MULTI_ESky, //15
MODULE_SUBTYPE_MULTI_MT99XX,
MODULE_SUBTYPE_MULTI_MJXQ,
MODULE_SUBTYPE_MULTI_SHENQI,
MODULE_SUBTYPE_MULTI_FY326,
MODULE_SUBTYPE_MULTI_FUTABA, //20
MODULE_SUBTYPE_MULTI_J6PRO,
MODULE_SUBTYPE_MULTI_FQ777,
MODULE_SUBTYPE_MULTI_ASSAN,
MODULE_SUBTYPE_MULTI_FRSKYV,
MODULE_SUBTYPE_MULTI_HONTAI, //25
MODULE_SUBTYPE_MULTI_OLRS,
MODULE_SUBTYPE_MULTI_FS_AFHDS2A,
MODULE_SUBTYPE_MULTI_Q2X2,
MODULE_SUBTYPE_MULTI_WK_2X01,
MODULE_SUBTYPE_MULTI_Q303, //30
MODULE_SUBTYPE_MULTI_GW008,
MODULE_SUBTYPE_MULTI_DM002,
MODULE_SUBTYPE_MULTI_CABELL,
MODULE_SUBTYPE_MULTI_ESKY150,
MODULE_SUBTYPE_MULTI_H83D, //35
MODULE_SUBTYPE_MULTI_CORONA,
MODULE_SUBTYPE_MULTI_CFLIE,
MODULE_SUBTYPE_MULTI_HITEC,
MODULE_SUBTYPE_MULTI_WFLY,
MODULE_SUBTYPE_MULTI_BUGS, //40
MODULE_SUBTYPE_MULTI_BUGS_MINI,
MODULE_SUBTYPE_MULTI_TRAXXAS,
MODULE_SUBTYPE_MULTI_NCC1701,
MODULE_SUBTYPE_MULTI_E01X,
MODULE_SUBTYPE_MULTI_V911S, //45
MODULE_SUBTYPE_MULTI_GD00X,
MODULE_SUBTYPE_MULTI_V761,
MODULE_SUBTYPE_MULTI_KF606,
MODULE_SUBTYPE_MULTI_REDPINE,
MODULE_SUBTYPE_MULTI_POTENSIC, //50
MODULE_SUBTYPE_MULTI_ZSX,
MODULE_SUBTYPE_MULTI_HEIGHT,
MODULE_SUBTYPE_MULTI_SCANNER,
MODULE_SUBTYPE_MULTI_FRSKYX_RX,
MODULE_SUBTYPE_MULTI_AFHDS2A_RX, //55
MODULE_SUBTYPE_MULTI_HOTT,
MODULE_SUBTYPE_MULTI_FX,
MODULE_SUBTYPE_MULTI_BAYANG_RX,
MODULE_SUBTYPE_MULTI_PELIKAN,
MODULE_SUBTYPE_MULTI_EAZYRC, //60
MODULE_SUBTYPE_MULTI_XK,
MODULE_SUBTYPE_MULTI_XN297DUMP,
MODULE_SUBTYPE_MULTI_FRSKYX2,
MODULE_SUBTYPE_MULTI_FRSKY_R9,
MODULE_SUBTYPE_MULTI_PROPEL, //65
MODULE_SUBTYPE_MULTI_FRSKYL,
MODULE_SUBTYPE_MULTI_SKYARTEC,
MODULE_SUBTYPE_MULTI_ESKY150V2,
MODULE_SUBTYPE_MULTI_DSM_RX,
MODULE_SUBTYPE_MULTI_JJRC345, //70
MODULE_SUBTYPE_MULTI_Q90C,
MODULE_SUBTYPE_MULTI_KYOSHO,
MODULE_SUBTYPE_MULTI_RLINK,
MODULE_SUBTYPE_MULTI_ELRS,
MODULE_SUBTYPE_MULTI_REALACC, //75
MODULE_SUBTYPE_MULTI_OMP,
MODULE_SUBTYPE_MULTI_MLINK,
MODULE_SUBTYPE_MULTI_WFLY2,
MODULE_SUBTYPE_MULTI_E016HV2,
MODULE_SUBTYPE_MULTI_E010R5, //80
MODULE_SUBTYPE_MULTI_LOLI,
MODULE_SUBTYPE_MULTI_E129,
MODULE_SUBTYPE_MULTI_JOYSWAY,
MODULE_SUBTYPE_MULTI_E016H,
MODULE_SUBTYPE_MULTI_CONFIG, //85
MODULE_SUBTYPE_MULTI_IKEAANSLUTA,
MODULE_SUBTYPE_MULTI_WILLIFM,
MODULE_SUBTYPE_MULTI_LOSI,
MODULE_SUBTYPE_MULTI_MOULDKG,
MODULE_SUBTYPE_MULTI_XERALL, //90
MODULE_SUBTYPE_MULTI_MT99XX2,
MODULE_SUBTYPE_MULTI_KYOSHO2,
MODULE_SUBTYPE_MULTI_SCORPIO,
MODULE_SUBTYPE_MULTI_BLUEFLY,
MODULE_SUBTYPE_MULTI_BUMBLEB, //95
MODULE_SUBTYPE_MULTI_SGF22,
MODULE_SUBTYPE_MULTI_KYOSHO3,
MODULE_SUBTYPE_MULTI_XK2,
MODULE_SUBTYPE_MULTI_YUXIANG,
MODULE_SUBTYPE_MULTI_PINECON, //100
MODULE_SUBTYPE_MULTI_JIABAILE,
MODULE_SUBTYPE_MULTI_H36,
//
// spare entries - don't touch,
// just add to known protocols
//
MODULE_SUBTYPE_MULTI_NN1,
MODULE_SUBTYPE_MULTI_NN2,
MODULE_SUBTYPE_MULTI_NN3,
MODULE_SUBTYPE_MULTI_NN4,
MODULE_SUBTYPE_MULTI_NN5,
MODULE_SUBTYPE_MULTI_NN6,
MODULE_SUBTYPE_MULTI_NN7,
MODULE_SUBTYPE_MULTI_NN8,
MODULE_SUBTYPE_MULTI_NN9,
MODULE_SUBTYPE_MULTI_NN10,
MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_NN10,
//
// Sentinel
//
MODULE_SUBTYPE_MULTI_SENTINEL = 0xfe,
//
// most likely no longer required
//
MM_RF_CUSTOM_SELECTED = 0xff
};
//
// Common list of Multi protocol names. Needs to match enum ModuleSubtypeMulti
//
#define KNOWN_PROTO_NAMES \
"FlySky","Hubsan","FrSky D","Hisky","V2x2","DSM","Devo","YD717","KN","SymaX",\
"SLT","CX10","CG023","Bayang","FrSky X","ESky","MT99XX","MJXq","Shenqi","FY326",\
"Futaba","J6 Pro","FQ777","Assan","FrSky V","Hontai","OpenLrs","FlSky2A","Q2x2","Walkera", \
"Q303","GW008","DM002","Cabell","Esky150","H8 3D","Corona","CFlie","Hitec","WFLY",\
"Bugs","BugMini","Traxxas","NCC1701","E01X","V911S","GD00X","V761","KF606","Redpine",\
"Potensi","ZSX","Height","Scanner","FrSkyRX","FS2A_RX","HoTT","FX","BayanRX","Pelikan",\
"EazyRC", "XK","XN297DU","FrSkyX2","FrSkyR9","Propel","FrSky L","Skyartc","ESkyV2","DSM_RX",\
"JJRC345","Q90C","Kyosho","RadLink","ExpLRS","Realacc","OMP","M-Link","WFLY2","E016Hv2",\
"E010r5","LOLI","E129","JOYSWAY","E016H","Config","IKEA","WILLIFM","Losi","MouldKg",\
"Xerall","MT99XX2","Kyosho2","Scorpio","BlueFly","BumbleB","SGF22","Kyosho3","XK2",\
"YuXiang","Pinecon","JIABAILE","H36"
#define SPARE_PROTO_NAMES \
"NN 1","NN 2","NN 3","NN 4","NN 5","NN 6","NN 7","NN 8","NN 9","NN 10"
#define SPARE_SUBTYPE_NAMES \
"SUB 1","SUB 2","SUB 3","SUB 4","SUB 5","SUB 6","SUB 7","SUB 8"
#define PROTO_NAMES KNOWN_PROTO_NAMES,SPARE_PROTO_NAMES
//
// Common list of option names. Needs to match inline void getMultiOptionValues cases.
//
#define BAYANG_OPTION_TELEMETRY_NAMES "Off","On","Off+Aux","On+Aux"
#define DSM2_OPTION_SERVOFREQ_NAMES "22ms","11ms"
#define DSM_CLONE_NAMES "Normal","Cloned"
//
// Common list of protocols the MPM doesn't allow to be selected (not sent by MPM protocol scan)
//
inline bool isMultiProtocolSelectable(int protocol)
{
return (protocol != MODULE_SUBTYPE_MULTI_CONFIG &&
protocol != MODULE_SUBTYPE_MULTI_SCANNER
);
}
//
// Common protocol specific option values
//
inline void getMultiOptionValues(int8_t multi_proto, int8_t &min, int8_t &max) {
switch (multi_proto) {
case MODULE_SUBTYPE_MULTI_DSM2:
min = 0; // STR_MULTI_SERVOFREQ: 22ms, 11ms
max = 1;
break;
case MODULE_SUBTYPE_MULTI_BAYANG:
min = 0; // STR_MULTI_TELEMETRY: Off, On, Off+AUX, On+Aux
max = 3;
break;
case MODULE_SUBTYPE_MULTI_OLRS:
min = -1;
max = 7;
break;
case MODULE_SUBTYPE_MULTI_FS_AFHDS2A:
min = 0; // STR_MULTI_SERVOFREQ: (50+optionvalue*5)ms
max = 70;
break;
case MODULE_SUBTYPE_MULTI_XN297DUMP:
min = -1;
max = 84;
break;
default:
min = -128; // all other option types, e.g STR_MULTI_RFTUNE
max = 127;
break;
}
}
//
// Out of the ordinary max. numbers of model IDs
//
#define MODULE_SUBTYPE_MULTI_OLRS_RXNUM 4
#define MODULE_SUBTYPE_MULTI_BUGS_RXNUM 15
#define MODULE_SUBTYPE_MULTI_BUGS_MINI_RXNUM 15
//
// subtypes for Radiomaster T8 bind key and Radiomaster RTF use.
// see defines RTF, BIND_KEY and the protocol subtype list STRLIST()
// in MultiSubTypeDefs.h
//
#define MULTI_FRSKYD_SUBTYPE_D8 0
#define MULTI_FRSKYX_SUBTYPE_D16_FCC 0
#define MULTI_FRSKYX_SUBTYPE_D16_LBT 2
#define MULTI_FRSKYX2_SUBTYPE_D16_FCC 0
#define MULTI_FRSKYX2_SUBTYPE_D16_LBT 2
#endif // MULTIMODULE
+296
View File
@@ -0,0 +1,296 @@
/*
* Copyright (C) EdgeTX
*
* Based on code named
* opentx - https://github.com/opentx/opentx
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
//
// Data based on MPM firmware version 1.3.4.31 multi.txt
//
#if defined(MULTIMODULE) or defined(SIMU)
#pragma once
//
// Single source of Multi protocol defintions:
// - MultiProtoDefs.h contains the protocol list and names as per Multi.txt
// Widely used in Companion/Simulator and radio firmware code
// - MutliSubtypesDef.h contains subtype definitions and generates data structurse
// for Companion and Simulator/radio code in radio/src/gui/gui_common.cpp and
// companion/src/firmwares/multiprotocols.cpp
//
//
// include list of Multi protocols
//
#include "MultiProtoDefs.h"
//
// This distinction circumvents the different ways of handling translations of menu texts
// and sets the defines STRLIST and PROTODEF such that the correct Companion/Simulator and radio code
// data structures are generated
//
#if defined(CPN)
#define STRLIST(x, ...) static const QStringList x __VA_ARGS__;
#define PROTODEF const Multiprotocols multiProtocols
#define STR_MULTI_OPTION QT_TRANSLATE_NOOP("Multiprotocols", "Option value")
#define STR_MULTI_RFTUNE QT_TRANSLATE_NOOP("Multiprotocols", "CC2500 frequency fine tune")
#define STR_MULTI_VIDFREQ QT_TRANSLATE_NOOP("Multiprotocols", "Video TX frequency")
#define STR_MULTI_FIXEDID QT_TRANSLATE_NOOP("Multiprotocols", "Fixed ID value")
#define STR_MULTI_TELEMETRY QT_TRANSLATE_NOOP("Multiprotocols", "Telemetry")
#define STR_MULTI_SERVOFREQ QT_TRANSLATE_NOOP("Multiprotocols", "Servo update rate")
#define STR_MULTI_MAX_THROW QT_TRANSLATE_NOOP("Multiprotocols", "Enable max throw")
#define STR_MULTI_RFCHAN QT_TRANSLATE_NOOP("Multiprotocols", "Select RF channel")
#define STR_MULTI_RFPOWER QT_TRANSLATE_NOOP("Multiprotocols", "RF power")
#define STR_MULTI_DEFAULT QT_TRANSLATE_NOOP("Multiprotocols", "DEFAULT")
STRLIST(NO_SUBTYPE, {STR_MULTI_DEFAULT})
#define STR_DEF(x) x
#elif defined(MULTIMODULE)
#define STRLIST(x, ...) const char* const x[] = __VA_ARGS__;
#define PROTODEF(...) const mm_protocol_definition multi_protocols[] = __VA_ARGS__
STR_TYP const mm_options_strings::options[] = {
nullptr,
STR_DEF(STR_MULTI_OPTION),
STR_DEF(STR_MULTI_RFTUNE),
STR_DEF(STR_MULTI_VIDFREQ),
STR_DEF(STR_MULTI_FIXEDID),
STR_DEF(STR_MULTI_TELEMETRY),
STR_DEF(STR_MULTI_SERVOFREQ),
STR_DEF(STR_MULTI_MAX_THROW),
STR_DEF(STR_MULTI_RFCHAN),
STR_DEF(STR_MULTI_RFPOWER),
STR_DEF(STR_MULTI_WBUS) // probably not used by MPM anymore
};
#define NO_SUBTYPE nullptr
#else
#define STRLIST(x, ...)
#define PROTODEF(...)
#endif
//
// Common definitions of Multi protocol subtype options (only for protocols that do have subtypes)
//
STRLIST(STR_SUBTYPE_FLYSKY, {"Flysky","V9x9","V6x6","V912","CX20"})
STRLIST(STR_SUBTYPE_HUBSAN, {"H107","H301","H501"})
STRLIST(STR_SUBTYPE_FRSKYD, {"D8","Cloned"})
STRLIST(STR_SUBTYPE_FRSKYX, {"CH_16","CH_8","EU_16","EU_8","Cloned","Clon_8"})
STRLIST(STR_SUBTYPE_HISKY, {"Hisky","HK310"})
STRLIST(STR_SUBTYPE_V2X2, {"Std","JXD506","MR101"})
STRLIST(STR_SUBTYPE_DSM, {"DSM2_1F","DSM2_2F","DSMX_1F","DSMX_2F","AUTO","DSMR_1F","DSMR","DSM2_SFC"})
STRLIST(STR_SUBTYPE_DEVO, {"8ch","10ch","12ch","6ch","7ch"})
STRLIST(STR_SUBTYPE_YD717, {"Std","SkyWlkr","Syma X4","XINXUN","NIHUI"})
STRLIST(STR_SUBTYPE_KN, {"WLtoys","FeiLun"})
STRLIST(STR_SUBTYPE_SYMAX, {"Std","X5C"})
STRLIST(STR_SUBTYPE_SLT, {"SLT_V1","SLT_V2","Q100","Q200","MR100","V1_4CH","RF_SIM"})
STRLIST(STR_SUBTYPE_CX10, {"Green","Blue","DM007","-","JC3015a","JC3015b","MK33041"})
STRLIST(STR_SUBTYPE_CG023, {"Std","YD829"})
STRLIST(STR_SUBTYPE_BAYANG, {"Std","H8S3D","X16 AH","IRDrone","DHD D4","QX100"})
STRLIST(STR_SUBTYPE_ESky, {"Std","ET4"})
STRLIST(STR_SUBTYPE_MT99, {"MT","H7","YZ","LS","FY805","A180","Dragon","F949G"})
STRLIST(STR_SUBTYPE_MJXQ, {"WLH08","X600","X800","H26D","E010","H26WH","PHOENIX"})
STRLIST(STR_SUBTYPE_FY326, {"FY326","FY319"})
STRLIST(STR_SUBTYPE_FUTABA, {"SFHSS"})
STRLIST(STR_SUBTYPE_HONTAI, {"HONTAI","JJRCX1","X5C1","FQ777_951","XKK170"})
STRLIST(STR_SUBTYPE_AFHDS2A, {"PWM_IBUS","PPM_IBUS","PWM_SBUS","PPM_SBUS","PWM_IB16","PPM_IB16","PWM_SB16","PPM_SB16"})
STRLIST(STR_SUBTYPE_Q2X2, {"Q222","Q242","Q282"})
STRLIST(STR_SUBTYPE_WK2x01, {"WK2801","WK2401","W6_5_1","W6_6_1","W6_HEL","W6_HEL_I"})
STRLIST(STR_SUBTYPE_Q303, {"Q303","CX35","CX10D","CX10WD"})
STRLIST(STR_SUBTYPE_CABELL, {"CAB_V3","C_TELEM","-","-","-","-","F_SAFE","UNBIND"})
STRLIST(STR_SUBTYPE_ESKY150, {"4ch","7ch"})
STRLIST(STR_SUBTYPE_H83D, {"H8_3D","H20H","H20Mini","H30Mini"})
STRLIST(STR_SUBTYPE_CORONA, {"COR_V1","COR_V2","FD_V3"})
STRLIST(STR_SUBTYPE_HITEC, {"OPT_FW","OPT_HUB","MINIMA"})
STRLIST(STR_SUBTYPE_WFLY, {"WFR0x"})
STRLIST(STR_SUBTYPE_BUGS_MINI, {"BUGSMINI","BUGS3H"})
STRLIST(STR_SUBTYPE_TRAXXAS, {"TQ"})
STRLIST(STR_SUBTYPE_E01X, {"E012","E015"})
STRLIST(STR_SUBTYPE_V911S, {"V911S","E119"})
STRLIST(STR_SUBTYPE_GD00X, {"GD_V1","GD_V2"})
STRLIST(STR_SUBTYPE_V761, {"3ch","4ch","TOPRC"})
STRLIST(STR_SUBTYPE_KF606, {"KF606","MIG320","ZCZ50"})
STRLIST(STR_SUBTYPE_REDPINE, {"Fast","Slow"})
STRLIST(STR_SUBTYPE_POTENSIC, {"A20"})
STRLIST(STR_SUBTYPE_ZSX, {"280"})
STRLIST(STR_SUBTYPE_HEIGHT, {"5ch","8ch"})
STRLIST(STR_SUBTYPE_FRSKYX_RX, {"Multi","CloneTX","EraseTX","CPPM"})
STRLIST(STR_SUBTYPE_HOTT, {"Sync","No_Sync"})
STRLIST(STR_SUBTYPE_FX, {"816","620","9630","Q560"})
STRLIST(STR_SUBTYPE_PELIKAN, {"Pro","Lite","SCX24"})
STRLIST(STR_SUBTYPE_XK, {"X450","X420","Cars"})
STRLIST(STR_SUBTYPE_XN297DUMP, {"250K","1M","2M","AUTO"})
STRLIST(STR_SUBTYPE_FRSKYX2, {"CH_16","CH_8","EU_16","EU_8","Cloned"})
STRLIST(STR_SUBTYPE_FRSKYR9, {"915MHz","868MHz","915_8ch","868_8ch","FCC","--","FCC_8ch","--_8ch"})
STRLIST(STR_SUBTYPE_PROPEL, {"74-Z"})
STRLIST(STR_SUBTYPE_FRSKYL, {"LR12","LR12_6ch"})
STRLIST(STR_SUBTYPE_ESKY150V2, {"150V2"})
STRLIST(STR_SUBTYPE_JJRC345, {"JJRC345","SkyTmblr"})
STRLIST(STR_SUBTYPE_KYOSHO, {"FHSS","Hype"})
STRLIST(STR_SUBTYPE_KYOSHO2, {"KT-17"})
STRLIST(STR_SUBTYPE_RLINK, {"Surface","Air","DumboRC","RC4G"})
STRLIST(STR_SUBTYPE_ELRS, {"N/A WIP"})
STRLIST(STR_SUBTYPE_REALACC, {"R11"})
STRLIST(STR_SUBTYPE_WFLY2, {"RF20x"})
STRLIST(STR_SUBTYPE_E016HV2, {"E016Hv2"})
STRLIST(STR_SUBTYPE_MOULDKG, {"Analog","Digital"})
STRLIST(STR_SUBTYPE_MT992, {"PA18","SU35"})
STRLIST(STR_SUBTYPE_RX, {"Multi","CPPM"})
STRLIST(STR_SUBTYPE_DSM_RX, {"Multi","CloneTX","EraseTX","CPPM"})
STRLIST(STR_SUBTYPE_E129, {"STD","C186"})
STRLIST(STR_SUBTYPE_SFG22, {"F22","F22S","J20"})
STRLIST(STR_SUBTYPE_XK2, {"X4","P10"})
STRLIST(STR_SUBTYPE_JIABAILE, {"STD","GYRO"})
//
// Generic subtypes for future use protocols - don't touch
//
STRLIST(STR_SUBTYPE_NN, { SPARE_SUBTYPE_NAMES })
//
// Common data structure defining Multi protocol capabilites, i.e. number of subtypes,
// failsafe support yes/no, channel map disabled yes/no, reference to the subtype options strings above
// and further protocol options, e.g. RF tune, video frequency.
//
PROTODEF ({
{MODULE_SUBTYPE_MULTI_FLYSKY, 4, false, true, STR_SUBTYPE_FLYSKY, nullptr},
{MODULE_SUBTYPE_MULTI_HUBSAN, 2, false, false, STR_SUBTYPE_HUBSAN, STR_DEF(STR_MULTI_VIDFREQ)},
{MODULE_SUBTYPE_MULTI_FRSKY, 1, false, false, STR_SUBTYPE_FRSKYD, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_HISKY, 1, true, true, STR_SUBTYPE_HISKY, nullptr},
{MODULE_SUBTYPE_MULTI_V2X2, 2, false, false, STR_SUBTYPE_V2X2, nullptr},
{MODULE_SUBTYPE_MULTI_DSM2, 7, false, true, STR_SUBTYPE_DSM, STR_DEF(STR_MULTI_MAX_THROW)},
{MODULE_SUBTYPE_MULTI_DEVO, 4, true, true, STR_SUBTYPE_DEVO, STR_DEF(STR_MULTI_FIXEDID)},
{MODULE_SUBTYPE_MULTI_YD717, 4, false, false, STR_SUBTYPE_YD717, nullptr},
{MODULE_SUBTYPE_MULTI_KN, 1, false, false, STR_SUBTYPE_KN, nullptr},
{MODULE_SUBTYPE_MULTI_SYMAX, 1, false, false, STR_SUBTYPE_SYMAX, nullptr},
{MODULE_SUBTYPE_MULTI_SLT, 6, false, true, STR_SUBTYPE_SLT, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_CX10, 6, false, false, STR_SUBTYPE_CX10, nullptr},
{MODULE_SUBTYPE_MULTI_CG023, 1, false, false, STR_SUBTYPE_CG023, nullptr},
{MODULE_SUBTYPE_MULTI_BAYANG, 5, false, false, STR_SUBTYPE_BAYANG, STR_DEF(STR_MULTI_TELEMETRY)},
{MODULE_SUBTYPE_MULTI_FRSKYX, 5, true, false, STR_SUBTYPE_FRSKYX, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_ESky, 1, false, true, STR_SUBTYPE_ESky, nullptr},
{MODULE_SUBTYPE_MULTI_MT99XX, 7, false, false, STR_SUBTYPE_MT99, nullptr},
{MODULE_SUBTYPE_MULTI_MJXQ, 6, false, false, STR_SUBTYPE_MJXQ, nullptr},
{MODULE_SUBTYPE_MULTI_SHENQI, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_FY326, 1, false, false, STR_SUBTYPE_FY326, nullptr},
{MODULE_SUBTYPE_MULTI_FUTABA, 0, true, true, STR_SUBTYPE_FUTABA, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_J6PRO, 0, false, true, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_FQ777, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_ASSAN, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_FRSKYV, 0, false, false, NO_SUBTYPE, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_HONTAI, 4, false, false, STR_SUBTYPE_HONTAI, nullptr},
// MODULE_SUBTYPE_MULTI_OLRS non selectable and masked out for selection
{MODULE_SUBTYPE_MULTI_FS_AFHDS2A, 7, true, true, STR_SUBTYPE_AFHDS2A, STR_DEF(STR_MULTI_SERVOFREQ)},
{MODULE_SUBTYPE_MULTI_Q2X2, 2, false, false, STR_SUBTYPE_Q2X2, nullptr},
{MODULE_SUBTYPE_MULTI_WK_2X01, 5, true, true, STR_SUBTYPE_WK2x01, nullptr},
{MODULE_SUBTYPE_MULTI_Q303, 3, false, false, STR_SUBTYPE_Q303, nullptr},
{MODULE_SUBTYPE_MULTI_GW008, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_DM002, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_CABELL, 7, false, false, STR_SUBTYPE_CABELL, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_ESKY150, 1, false, false, STR_SUBTYPE_ESKY150, nullptr},
{MODULE_SUBTYPE_MULTI_H83D, 3, false, false, STR_SUBTYPE_H83D, nullptr},
{MODULE_SUBTYPE_MULTI_CORONA, 2, false, false, STR_SUBTYPE_CORONA, STR_DEF(STR_MULTI_RFTUNE)},
// MODULE_SUBTYPE_MULTI_CFLIE non selectable and masked out for selection
{MODULE_SUBTYPE_MULTI_HITEC, 2, false, false, STR_SUBTYPE_HITEC, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_WFLY, 0, true, false, STR_SUBTYPE_WFLY, nullptr},
{MODULE_SUBTYPE_MULTI_BUGS, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_BUGS_MINI, 1, false, false, STR_SUBTYPE_BUGS_MINI, nullptr},
{MODULE_SUBTYPE_MULTI_TRAXXAS, 0, false, false, STR_SUBTYPE_TRAXXAS, nullptr},
{MODULE_SUBTYPE_MULTI_NCC1701, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_E01X, 1, false, false, STR_SUBTYPE_E01X, nullptr},
{MODULE_SUBTYPE_MULTI_V911S, 1, false, false, STR_SUBTYPE_V911S, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_GD00X, 1, false, false, STR_SUBTYPE_GD00X, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_V761, 2, false, false, STR_SUBTYPE_V761, nullptr},
{MODULE_SUBTYPE_MULTI_KF606, 2, false, false, STR_SUBTYPE_KF606, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_REDPINE, 1, false, false, STR_SUBTYPE_REDPINE, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_POTENSIC, 0, false, false, STR_SUBTYPE_POTENSIC, nullptr},
{MODULE_SUBTYPE_MULTI_ZSX, 0, false, false, STR_SUBTYPE_ZSX, nullptr},
{MODULE_SUBTYPE_MULTI_HEIGHT, 1, false, false, STR_SUBTYPE_HEIGHT, nullptr},
// MODULE_SUBTYPE_MULTI_SCANNER non selectable and masked out for selection
{MODULE_SUBTYPE_MULTI_FRSKYX_RX, 3, false, false, STR_SUBTYPE_FRSKYX_RX, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_AFHDS2A_RX, 1, false, false, STR_SUBTYPE_RX, nullptr},
{MODULE_SUBTYPE_MULTI_HOTT, 1, true, false, STR_SUBTYPE_HOTT, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_FX, 3, false, false, STR_SUBTYPE_FX, nullptr},
{MODULE_SUBTYPE_MULTI_BAYANG_RX, 1, false, false, STR_SUBTYPE_RX, nullptr},
{MODULE_SUBTYPE_MULTI_PELIKAN, 2, false, true, STR_SUBTYPE_PELIKAN, nullptr},
{MODULE_SUBTYPE_MULTI_EAZYRC, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_XK, 2, false, false, STR_SUBTYPE_XK, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_XN297DUMP, 3, false, false, STR_SUBTYPE_XN297DUMP, STR_DEF(STR_MULTI_RFCHAN)},
{MODULE_SUBTYPE_MULTI_FRSKYX2, 4, true, false, STR_SUBTYPE_FRSKYX2, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_FRSKY_R9, 7, true, false, STR_SUBTYPE_FRSKYR9, nullptr},
{MODULE_SUBTYPE_MULTI_PROPEL, 0, false, false, STR_SUBTYPE_PROPEL, nullptr},
{MODULE_SUBTYPE_MULTI_FRSKYL, 1, false, false, STR_SUBTYPE_FRSKYL, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_SKYARTEC, 0, false, true, NO_SUBTYPE, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_ESKY150V2, 0, false, true, STR_SUBTYPE_ESKY150V2, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_DSM_RX, 3, false, true, STR_SUBTYPE_DSM_RX, nullptr},
{MODULE_SUBTYPE_MULTI_JJRC345, 1, false, false, STR_SUBTYPE_JJRC345, nullptr},
{MODULE_SUBTYPE_MULTI_Q90C, 0, false, false, NO_SUBTYPE, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_KYOSHO, 1, false, true, STR_SUBTYPE_KYOSHO, nullptr},
{MODULE_SUBTYPE_MULTI_RLINK, 3, false, false, STR_SUBTYPE_RLINK, STR_DEF(STR_MULTI_RFTUNE)},
// MODULE_SUBTYPE_MULTI_ELRS non selectable and masked out for selection
{MODULE_SUBTYPE_MULTI_REALACC, 0, false, false, STR_SUBTYPE_REALACC, nullptr},
{MODULE_SUBTYPE_MULTI_OMP, 0, false, false, NO_SUBTYPE, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_MLINK, 0, true, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_WFLY2, 0, true, false, STR_SUBTYPE_WFLY2, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_E016HV2, 0, false, false, STR_SUBTYPE_E016HV2, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_E010R5, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_LOLI, 0, true, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_E129, 1, false, false, STR_SUBTYPE_E129, nullptr},
{MODULE_SUBTYPE_MULTI_JOYSWAY, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_E016H, 0, false, false, NO_SUBTYPE, nullptr},
// MODULE_SUBTYPE_MULTI_CONFIG non selectable and masked out for selection
// MODULE_SUBTYPE_MULTI_IKEAANSLUTA non selectable and masked out for selection
// MODULE_SUBTYPE_MULTI_WILLIFM non selectable and masked out for selection
{MODULE_SUBTYPE_MULTI_LOSI, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_MOULDKG, 1, false, false, STR_SUBTYPE_MOULDKG, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_XERALL, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_MT99XX2, 1, false, false, STR_SUBTYPE_MT992, nullptr},
{MODULE_SUBTYPE_MULTI_KYOSHO2, 0, false, false, STR_SUBTYPE_KYOSHO2, nullptr},
{MODULE_SUBTYPE_MULTI_SCORPIO, 0, false, true, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_BLUEFLY, 0, false, false, NO_SUBTYPE, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_BUMBLEB, 0, false, false, NO_SUBTYPE, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_SGF22, 2, false, false, STR_SUBTYPE_SFG22, nullptr},
{MODULE_SUBTYPE_MULTI_KYOSHO3, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_XK2, 1, false, false, STR_SUBTYPE_XK2, STR_DEF(STR_MULTI_RFTUNE)},
{MODULE_SUBTYPE_MULTI_YUXIANG, 0, false, false, NO_SUBTYPE, nullptr},
// MODULE_SUBTYPE_PINECONE non selectable and masked out for selection
{MODULE_SUBTYPE_MULTI_JIABAILE, 1, false, false, STR_SUBTYPE_JIABAILE, nullptr},
{MODULE_SUBTYPE_MULTI_H36, 0, false, false, NO_SUBTYPE, nullptr},
{MODULE_SUBTYPE_MULTI_NN1, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_NN2, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_NN3, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_NN4, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_NN5, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_NN6, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_NN7, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_NN8, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_NN9, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
{MODULE_SUBTYPE_MULTI_NN10, 7, true, true, STR_SUBTYPE_NN, STR_DEF(STR_MULTI_OPTION)},
//
// most likely no longer required
//
{MM_RF_CUSTOM_SELECTED, 0, true, false, NO_SUBTYPE, STR_DEF(STR_MULTI_OPTION)},
// Sentinel and default for protocols not listed above (MM_RF_CUSTOM is 0xff)
{MODULE_SUBTYPE_MULTI_SENTINEL, 0, false, false, NO_SUBTYPE, nullptr},
});
#endif // MULTIMODULE
+100
View File
@@ -0,0 +1,100 @@
/*
* Copyright (C) EdgeTX
*
* Based on code named
* opentx - https://github.com/opentx/opentx
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "analogs.h"
#include "dataconstants.h"
#include "edgetx_helpers.h"
#include "hal/adc_driver.h"
static char _custom_names[MAX_ANALOG_INPUTS][LEN_ANA_NAME + 1] = { 0 };
void analogSetCustomLabel(uint8_t type, uint8_t idx, const char* str, size_t len)
{
if (idx >= adcGetMaxInputs(type)) return;
idx += adcGetInputOffset(type);
strncpy(_custom_names[idx], str, min<size_t>(LEN_ANA_NAME, len));
_custom_names[idx][LEN_ANA_NAME] = '\0';
}
const char* analogGetCustomLabel(uint8_t type, uint8_t idx)
{
if (idx >= adcGetMaxInputs(type)) return "";
idx += adcGetInputOffset(type);
return _custom_names[idx];
}
bool analogHasCustomLabel(uint8_t type, uint8_t idx)
{
return *analogGetCustomLabel(type, idx) != 0;
}
static int _lookup_input_idx(uint8_t type, const char* name, size_t len,
const char* (*fct)(uint8_t,uint8_t))
{
auto max_inputs = adcGetMaxInputs(type);
if (!max_inputs) return -1;
for (uint8_t i = 0; i < max_inputs; i++) {
if (!strncmp(fct(type, i), name, len)) return i;
}
return -1;
}
int analogLookupPhysicalIdx(uint8_t type, const char* name, size_t len)
{
return _lookup_input_idx(type, name, len, adcGetInputName);
}
static int analogLookupLabelIdx(uint8_t type, const char* name, size_t len)
{
return _lookup_input_idx(type, name, len, adcGetInputLabel);
}
const char* analogGetPhysicalName(uint8_t type, uint8_t idx)
{
return adcGetInputName(type, idx);
}
const char* analogGetCanonicalName(uint8_t type, uint8_t idx)
{
// Main controls are special cases here as
// we use the label slot to place the specific names
// (2-gimbal radios vs. surface radios)
if (type == ADC_INPUT_MAIN)
return adcGetInputLabel(type, idx);
return adcGetInputName(type, idx);
}
int analogLookupCanonicalIdx(uint8_t type, const char* name, size_t len)
{
if (type == ADC_INPUT_MAIN) {
return analogLookupLabelIdx(type, name, len);
}
return analogLookupPhysicalIdx(type, name, len);
}
+35
View File
@@ -0,0 +1,35 @@
/*
* Copyright (C) EdgeTX
*
* Based on code named
* opentx - https://github.com/opentx/opentx
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#pragma once
#include <stddef.h>
#include <stdint.h>
void analogSetCustomLabel(uint8_t type, uint8_t idx, const char* str, size_t len);
const char* analogGetCustomLabel(uint8_t type, uint8_t idx);
bool analogHasCustomLabel(uint8_t type, uint8_t idx);
const char* analogGetPhysicalName(uint8_t type, uint8_t idx);
int analogLookupPhysicalIdx(uint8_t type, const char* name, size_t len);
const char* analogGetCanonicalName(uint8_t type, uint8_t idx);
int analogLookupCanonicalIdx(uint8_t type, const char* name, size_t len);
+1129
View File
File diff suppressed because it is too large Load Diff
+599
View File
@@ -0,0 +1,599 @@
/*
* Copyright (C) EdgeTX
*
* Based on code named
* opentx - https://github.com/opentx/opentx
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#pragma once
#include <stddef.h>
#include <string.h>
#include "ff.h"
#include "edgetx_types.h"
#include "dataconstants.h"
#include "hal/audio_driver.h"
/*
Implements a bit field, number of bits is set by the template,
each bit can be modified and read by the provided methods.
*/
template <unsigned int NUM_BITS> class BitField
{
private:
uint8_t bits[(NUM_BITS + 7) / 8];
public:
BitField()
{
reset();
}
void reset()
{
memset(bits, 0, sizeof(bits));
}
void setBit(unsigned int bitNo)
{
if (bitNo >= NUM_BITS) return;
bits[bitNo >> 3] = bits[bitNo >> 3] | (1 << (bitNo & 0x07));
}
bool getBit(unsigned int bitNo) const
{
if (bitNo >= NUM_BITS) return false;
return bits[bitNo >> 3] & (1 << (bitNo & 0x07));
}
unsigned int getSize() const
{
return NUM_BITS;
}
};
#define INDEX_LOGICAL_SWITCH_AUDIO_FILE(index, event) (2*(index)+(event))
#define INDEX_PHASE_AUDIO_FILE(index, event) (2*(index)+(event))
// max length (example: /SOUNDS/fr/123456789012/1234567890-off.wav)
constexpr uint8_t AUDIO_MODEL_FILENAME_MAXLEN = (sizeof("/SOUNDS/fr/") - 1) + LEN_MODEL_NAME + 1 + LEN_FLIGHT_MODE_NAME + (sizeof("-off.wav") - 1);
constexpr uint8_t AUDIO_LUA_FILENAME_MAXLEN = 42; // Some scripts use long audio paths, even on 128x64 boards
constexpr uint8_t AUDIO_FILENAME_MAXLEN = (AUDIO_LUA_FILENAME_MAXLEN > AUDIO_MODEL_FILENAME_MAXLEN ? AUDIO_LUA_FILENAME_MAXLEN : AUDIO_MODEL_FILENAME_MAXLEN);
#define AUDIO_QUEUE_LENGTH (16) // must be a power of 2!
#define AUDIO_BUFFER_DURATION (10)
#define AUDIO_BUFFER_SIZE (AUDIO_SAMPLE_RATE*AUDIO_BUFFER_DURATION/1000)
#if !defined(AUDIO_SAMPLE_FMT)
#if defined(SIMU) || defined(AUDIO_SPI)
#define AUDIO_SAMPLE_FMT AUDIO_SAMPLE_FMT_S16
#else
#define AUDIO_SAMPLE_FMT AUDIO_SAMPLE_FMT_U16
#endif
#endif
#if defined(SIMU)
#define AUDIO_BUFFER_COUNT (10) // simulator needs more buffers for smooth audio
#elif defined(AUDIO_SPI)
#define AUDIO_BUFFER_COUNT (2) // smaller than Taranis since there is also a buffer on the ADC chip
#elif defined(STORAGE_USE_SPI_FLASH)
#define AUDIO_BUFFER_COUNT (10) // SPI Flash need more buffer for smooth audio
#else
#define AUDIO_BUFFER_COUNT (3)
#endif
#define BEEP_MIN_FREQ (150)
#define BEEP_MAX_FREQ (15000)
#define BEEP_DEFAULT_FREQ (2250)
#define USE_SETTINGS_VOLUME (127)
#if AUDIO_SAMPLE_FMT == AUDIO_SAMPLE_FMT_S16
typedef int16_t audio_data_t;
#define AUDIO_DATA_SILENCE 0
#elif AUDIO_SAMPLE_FMT == AUDIO_SAMPLE_FMT_U16
typedef uint16_t audio_data_t;
#define AUDIO_DATA_SILENCE 0x8000
#else
#error "Unknown audio sample format"
#endif
struct AudioBuffer {
audio_data_t data[AUDIO_BUFFER_SIZE];
uint16_t size;
};
extern AudioBuffer audioBuffers[AUDIO_BUFFER_COUNT];
enum FragmentTypes {
FRAGMENT_EMPTY,
FRAGMENT_TONE,
FRAGMENT_FILE,
};
struct Tone {
uint16_t freq;
uint16_t duration;
uint16_t pause;
int8_t freqIncr;
uint8_t reset;
uint8_t pure; // use the distortion-free sine LUT (e.g. CLI "beep")
Tone() {};
Tone(uint16_t freq, uint16_t duration, uint16_t pause, int8_t freqIncr, bool reset, bool pure):
freq(freq),
duration(duration),
pause(pause),
freqIncr(freqIncr),
reset(reset),
pure(pure)
{};
};
struct AudioFragment {
uint8_t type;
uint8_t id;
uint8_t repeat;
int8_t fragmentVolume;
union {
Tone tone;
char file[AUDIO_FILENAME_MAXLEN+1];
};
AudioFragment() { clear(); };
AudioFragment(uint16_t freq, uint16_t duration, uint16_t pause, uint8_t repeat, int8_t freqIncr, bool reset, int8_t fragmentVolume, bool pure=false, uint8_t id=0 ):
type(FRAGMENT_TONE),
id(id),
repeat(repeat),
fragmentVolume(fragmentVolume),
tone(freq, duration, pause, freqIncr, reset, pure)
{};
AudioFragment(const char * filename, uint8_t repeat, int8_t fragmentVolume, uint8_t id = 0):
type(FRAGMENT_FILE),
id(id),
repeat(repeat),
fragmentVolume(fragmentVolume)
{
strcpy(file, filename);
}
void clear()
{
memset(reinterpret_cast<void*>(this), 0, sizeof(AudioFragment));
this->fragmentVolume = USE_SETTINGS_VOLUME;
}
};
class ToneContext {
public:
inline void clear()
{
memset(reinterpret_cast<void*>(this), 0, sizeof(ToneContext));
fragment.fragmentVolume = USE_SETTINGS_VOLUME;
}
bool isFree() const
{
return fragment.type == FRAGMENT_EMPTY;
}
int mixBuffer(AudioBuffer *buffer, int volume, unsigned int fade);
void setFragment(uint16_t freq, uint16_t duration, uint16_t pause, uint8_t repeat, int8_t freqIncr, bool reset, int8_t fragmentVolume, bool pure = false, uint8_t id = 0)
{
fragment = AudioFragment(freq, duration, pause, repeat, freqIncr, reset, fragmentVolume, pure, id);
}
private:
AudioFragment fragment;
struct {
float step;
float idx;
float volume;
uint16_t freq;
uint16_t duration;
uint16_t pause;
} state;
};
class WavContext {
public:
inline void clear() { fragment.clear(); };
int mixBuffer(AudioBuffer *buffer, int volume, unsigned int fade);
bool hasPromptId(uint8_t id) const { return fragment.id == id; };
void setFragment(const char * filename, uint8_t repeat, int8_t fragmentVolume, uint8_t id)
{
fragment = AudioFragment(filename, repeat, fragmentVolume, id);
}
void stop(uint8_t id)
{
if (fragment.id == id) {
fragment.clear();
}
}
private:
AudioFragment fragment;
struct {
FIL file;
uint8_t codec;
uint32_t freq;
uint32_t size;
uint8_t resampleRatio;
uint16_t readSize;
} state;
};
class MixedContext {
#if defined(CLI)
friend void printAudioVars();
#endif
public:
MixedContext()
{
clear();
}
void setFragment(const AudioFragment * frag)
{
if (frag) {
fragment = *frag;
}
}
inline void clear()
{
tone.clear(); // the biggest member of the uninon
}
bool isEmpty() const { return fragment.type == FRAGMENT_EMPTY; };
bool isTone() const { return fragment.type == FRAGMENT_TONE; };
bool isFile() const { return fragment.type == FRAGMENT_FILE; };
bool hasPromptId(uint8_t id) const { return fragment.id == id; };
int mixBuffer(AudioBuffer *buffer, int toneVolume, int wavVolume, unsigned int fade)
{
if (isTone())
return tone.mixBuffer(buffer, toneVolume, fade);
else if (isFile())
return wav.mixBuffer(buffer, wavVolume, fade);
return 0;
}
private:
union {
AudioFragment fragment; // a hack: fragment is used to access the fragment members of tone and wav
ToneContext tone;
WavContext wav;
};
};
class AudioBufferFifo {
#if defined(CLI)
friend void printAudioVars();
#endif
private:
volatile uint8_t readIdx;
volatile uint8_t writeIdx;
inline uint8_t nextBufferIdx(uint8_t idx) const
{
return (idx >= AUDIO_BUFFER_COUNT - 1 ? 0 : idx + 1);
}
bool full() const { return readIdx == nextBufferIdx(writeIdx); }
bool empty() const { return readIdx == writeIdx; }
uint8_t used() const { return (writeIdx - readIdx) % AUDIO_BUFFER_COUNT; }
public:
AudioBufferFifo() : readIdx(0), writeIdx(0)
{
memset(audioBuffers, 0, sizeof(audioBuffers));
}
// returns an empty buffer to be filled with data and put back into FIFO
// with audioPushBuffer()
AudioBuffer *getEmptyBuffer() const
{
return full() ? nullptr : &audioBuffers[writeIdx];
}
// puts filled buffer into FIFO
void audioPushBuffer() { writeIdx = nextBufferIdx(writeIdx); }
// frees the last played buffer
void freeNextFilledBuffer() { readIdx = nextBufferIdx(readIdx); }
// returns a pointer to the audio buffer to be played
const AudioBuffer *getNextFilledBuffer()
{
return empty() ? nullptr : &audioBuffers[readIdx];
}
bool filledAtleast(int noBuffers) const { return used() >= noBuffers; }
};
class AudioFragmentFifo
{
#if defined(CLI)
friend void printAudioVars();
#endif
private:
volatile uint8_t ridx;
volatile uint8_t widx;
AudioFragment fragments[AUDIO_QUEUE_LENGTH];
uint8_t nextIdx(uint8_t idx) const
{
return (idx + 1) & (AUDIO_QUEUE_LENGTH - 1);
}
public:
AudioFragmentFifo() : ridx(0), widx(0), fragments() {};
bool hasPromptId(uint8_t id)
{
uint8_t i = ridx;
while (i != widx) {
AudioFragment & fragment = fragments[i];
if (fragment.id == id) return true;
i = nextIdx(i);
}
return false;
}
bool removePromptById(uint8_t id)
{
uint8_t i = ridx;
while (i != widx) {
AudioFragment & fragment = fragments[i];
if (fragment.id == id) fragment.clear();
i = nextIdx(i);
}
return false;
}
bool empty() const
{
return ridx == widx;
}
bool full() const
{
return ridx == nextIdx(widx);
}
void clear()
{
widx = ridx; // clean the queue
}
const AudioFragment * get()
{
if (!empty()) {
const AudioFragment * result = &fragments[ridx];
if (!fragments[ridx].repeat--) {
// repeat is done, move to the next fragment
ridx = nextIdx(ridx);
}
return result;
}
return nullptr;
}
void push(const AudioFragment & fragment)
{
if (!full()) {
// TRACE("fragment %d at %d", fragment.type, widx);
fragments[widx] = fragment;
widx = nextIdx(widx);
}
}
};
class AudioQueue {
#if defined(CLI)
friend void printAudioVars();
#endif
public:
AudioQueue();
void start() { _started = true; };
void playTone(uint16_t freq, uint16_t len, uint16_t pause=0, uint8_t flags=0, int8_t freqIncr=0, int8_t fragmentVolume = USE_SETTINGS_VOLUME);
void playFile(const char *filename, uint8_t flags=0, uint8_t id=0, int8_t fragmentVolume = USE_SETTINGS_VOLUME);
void stopPlay(uint8_t id);
void stopAll();
void flush();
void pause(uint16_t tLen);
void stopSD();
bool isPlaying(uint8_t id);
bool isEmpty() const { return fragmentsFifo.empty(); };
void wakeup();
bool started() const { return _started; };
#if defined(AUDIO_UNMUTE_DELAY)
tmr10ms_t lastAudioPlayTime = 0;
#endif
AudioBufferFifo buffersFifo;
private:
volatile bool _started;
MixedContext normalContext;
WavContext backgroundContext;
ToneContext priorityContext;
ToneContext varioContext;
AudioFragmentFifo fragmentsFifo;
};
extern uint8_t currentSpeakerVolume;
extern AudioQueue audioQueue;
enum {
// IDs for special functions [0:64]
// IDs for global functions [64:128]
ID_PLAY_PROMPT_BASE = 128,
ID_PLAY_FROM_SD_MANAGER = 255,
};
void codecsInit();
void audioEvent(unsigned int index);
void audioPlay(unsigned int index, uint8_t id=0);
void onKeyError();
void audioKeyPress();
void audioKeyError();
void audioTrimPress(int value);
void audioTimerCountdown(uint8_t timer, int value);
#if defined(AUDIO)
#define AUDIO_ERROR_MESSAGE(e) audioEvent(e)
#define AUDIO_TIMER_MINUTE(t) playDuration(t, 0, 0)
#define AUDIO_KEY_PRESS() audioKeyPress()
#define AUDIO_KEY_ERROR() audioKeyError()
#define AUDIO_HELLO() audioPlay(AUDIO_HELLO)
#define AUDIO_BYE() audioPlay(AU_BYE, ID_PLAY_PROMPT_BASE + AU_BYE)
#define AUDIO_WARNING1() audioEvent(AU_WARNING1)
#define AUDIO_WARNING2() audioEvent(AU_WARNING2)
#define AUDIO_TX_BATTERY_LOW() audioEvent(AU_TX_BATTERY_LOW)
#define AUDIO_ERROR() audioEvent(AU_ERROR)
#define AUDIO_TIMER_COUNTDOWN(idx, val) audioTimerCountdown(idx, val)
#define AUDIO_TIMER_ELAPSED(idx) audioEvent(AU_TIMER1_ELAPSED+idx)
#define AUDIO_INACTIVITY() audioEvent(AU_INACTIVITY)
#define AUDIO_MIX_WARNING(x) audioEvent(AU_MIX_WARNING_1+x-1)
#define AUDIO_POT_MIDDLE(x) audioEvent(AU_STICK1_MIDDLE+x)
#define AUDIO_TRIM_MIDDLE() audioEvent(AU_TRIM_MIDDLE)
#define AUDIO_TRIM_MIN() audioEvent(AU_TRIM_MIN)
#define AUDIO_TRIM_MAX() audioEvent(AU_TRIM_MAX)
#define AUDIO_TRIM_PRESS(val) audioTrimPress(val)
#define AUDIO_PLAY(p) audioEvent(p)
#define AUDIO_VARIO(fq, t, p, f) audioQueue.playTone(fq, t, p, f)
#define AUDIO_RSSI_ORANGE() audioEvent(AU_RSSI_ORANGE)
#define AUDIO_RSSI_RED() audioEvent(AU_RSSI_RED)
#define AUDIO_RAS_RED() audioEvent(AU_RAS_RED)
#define AUDIO_TELEMETRY_CONNECTED() audioEvent(AU_TELEMETRY_CONNECTED)
#define AUDIO_TELEMETRY_LOST() audioEvent(AU_TELEMETRY_LOST)
#define AUDIO_TELEMETRY_BACK() audioEvent(AU_TELEMETRY_BACK)
#define AUDIO_TRAINER_CONNECTED() audioEvent(AU_TRAINER_CONNECTED)
#define AUDIO_TRAINER_LOST() audioEvent(AU_TRAINER_LOST)
#define AUDIO_TRAINER_BACK() audioEvent(AU_TRAINER_BACK)
#else // AUDIO
#define AUDIO_TIMER_COUNTDOWN(idx, val)
#define AUDIO_TIMER_ELAPSED(idx)
#define AUDIO_TRIM_MIN()
#define AUDIO_TRIM_MAX()
#define AUDIO_TRIM_PRESS(val)
#define AUDIO_VARIO(fq, t, p, f)
#define AUDIO_RSSI_ORANGE()
#define AUDIO_RSSI_RED()
#define AUDIO_RAS_RED()
#define AUDIO_TELEMETRY_CONNECTED()
#define AUDIO_TELEMETRY_LOST()
#define AUDIO_TELEMETRY_BACK()
#define AUDIO_TRAINER_CONNECTED()
#define AUDIO_TRAINER_LOST()
#define AUDIO_TRAINER_BACK()
#endif
enum AutomaticPromptsCategories {
SYSTEM_AUDIO_CATEGORY,
MODEL_AUDIO_CATEGORY,
PHASE_AUDIO_CATEGORY,
SWITCH_AUDIO_CATEGORY,
LOGICAL_SWITCH_AUDIO_CATEGORY,
};
enum AutomaticPromptsEvents {
AUDIO_EVENT_OFF,
AUDIO_EVENT_ON,
AUDIO_EVENT_MID,
};
void pushPrompt(uint16_t prompt, uint8_t id=0, uint8_t fragmentVolume = USE_SETTINGS_VOLUME);
void pushUnit(uint8_t unit, uint8_t idx, uint8_t id, uint8_t fragmentVolume = USE_SETTINGS_VOLUME);
void playModelName();
#define PUSH_NUMBER_PROMPT(p) pushPrompt((p), id, fragmentVolume)
#define PUSH_UNIT_PROMPT(p, i) pushUnit((p), (i), id, fragmentVolume)
#define PLAY_NUMBER(n, u, a) playNumber((n), (u), (a), id, fragmentVolume)
#define PLAY_DURATION(d, att) playDuration((d), (att), id, fragmentVolume)
#define PLAY_DURATION_ATT , uint8_t flags
#define PLAY_TIME 1
#define PLAY_LONG_TIMER 2
#define LONG_TIMER_DURATION (10 * 60) // 10 minutes
#define IS_PLAY_TIME() (flags & PLAY_TIME)
#define IS_PLAY_LONG_TIMER() (flags & PLAY_LONG_TIMER)
#define IS_PLAYING(id) audioQueue.isPlaying((id))
#define PLAY_VALUE(v, id) playValue((v), (id), USE_SETTINGS_VOLUME)
#define PLAY_FILE(f, flags, id) audioQueue.playFile((f), (flags), (id), USE_SETTINGS_VOLUME)
#define STOP_PLAY(id) audioQueue.stopPlay((id))
#if defined(AUDIO)
#define AUDIO_RESET() audioQueue.stopAll()
#define AUDIO_FLUSH() audioQueue.flush()
#endif
#if defined(AUDIO)
extern tmr10ms_t timeAutomaticPromptsSilence;
void playModelEvent(uint8_t category, uint8_t index, event_t event=0);
#define PLAY_PHASE_OFF(phase) playModelEvent(PHASE_AUDIO_CATEGORY, phase, AUDIO_EVENT_OFF)
#define PLAY_PHASE_ON(phase) playModelEvent(PHASE_AUDIO_CATEGORY, phase, AUDIO_EVENT_ON)
#define PLAY_SWITCH_MOVED(sw) playModelEvent(SWITCH_AUDIO_CATEGORY, sw)
#define PLAY_LOGICAL_SWITCH_OFF(sw) playModelEvent(LOGICAL_SWITCH_AUDIO_CATEGORY, sw, AUDIO_EVENT_OFF)
#define PLAY_LOGICAL_SWITCH_ON(sw) playModelEvent(LOGICAL_SWITCH_AUDIO_CATEGORY, sw, AUDIO_EVENT_ON)
#define PLAY_MODEL_NAME() playModelName()
#define START_SILENCE_PERIOD() timeAutomaticPromptsSilence = get_tmr10ms()
#define IS_SILENCE_PERIOD_ELAPSED() (get_tmr10ms()-timeAutomaticPromptsSilence > 50)
#else
#define PLAY_PHASE_OFF(phase)
#define PLAY_PHASE_ON(phase)
#define PLAY_SWITCH_MOVED(sw)
#define PLAY_LOGICAL_SWITCH_OFF(sw)
#define PLAY_LOGICAL_SWITCH_ON(sw)
#define PLAY_MODEL_NAME()
#define START_SILENCE_PERIOD()
#define IS_SILENCE_PERIOD_ELAPSED() true
#endif
char * getAudioPath(char * path);
void referenceSystemAudioFiles();
void referenceModelAudioFiles();
bool isAudioFileReferenced(uint32_t i, char * filename/*at least AUDIO_FILENAME_MAXLEN+1 long*/);
+79
View File
@@ -0,0 +1,79 @@
/*
* Copyright (C) EdgeTX
*
* Based on code named
* libopenui - https://github.com/opentx/libopenui
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#pragma once
#include <inttypes.h>
// A set of bitfield handling macros
template <typename T>
inline T bfBit(uint8_t n)
{
return T(1) << n;
}
#define BFBIT_FLIP(y, mask) ( y ^= (mask) )
//! Create a bitmask of length 'len'.
template <typename T>
inline T bfBitmask(uint8_t len)
{
return bfBit<T>(len) - 1;
}
//! Create a bitfield mask of length 'len' starting at bit 'start'.
template <typename T>
inline T bfMask(uint8_t start, uint8_t len)
{
return bfBitmask<T>(len) << start;
}
//! Prepare a bitmask for insertion or combining.
template <typename T>
inline T bfPrep(T x, uint8_t start, uint8_t len)
{
return (x & bfBitmask<T>(len)) << start;
}
//! Extract a bitfield of length 'len' starting at bit 'start' from 'y'.
template <typename T>
inline T bfGet(T y, uint8_t start, uint8_t len)
{
return ((y)>>(start)) & bfBitmask<T>(len);
}
//! Insert 'len' bits of 'x 'into 'y', starting at bit 'start' from 'y'.
template <class T>
inline T bfSet(T to, T from, uint8_t start, uint8_t len)
{
return (to & ~bfMask<T>(start, len)) | bfPrep<T>(from, start, len);
}
template <class T>
inline T bfBitGet(T y, T mask)
{
return (y & mask);
}
template <class T>
inline T bfSingleBitGet(T y, uint8_t i)
{
return bfBitGet(y, bfBit<T>(i));
}
+1
View File
@@ -0,0 +1 @@
/*.lbm
+10
View File
@@ -0,0 +1,10 @@
set(FONT "STD" CACHE STRING "Choose font : STD or SQT5")
set_property(CACHE FONT PROPERTY STRINGS "STD" "SQT5")
string(TOLOWER "${FONT}" FONT_DIR)
set(STICKS_ARGS --rows 4)
add_bitmaps_target(9x_xbm_1bit ${RADIO_SRC_DIR}/bitmaps/sticks.xbm 1bit "${STICKS_ARGS}") # 1bit format, 1byte size, split into 4 rows
add_bitmaps_target(9x_bitmaps ${RADIO_SRC_DIR}/bitmaps/128x64/*.png 1bit "") # 1bit format, 1byte size, 1 row
add_fonts_target(9x_fonts_1bit ${RADIO_SRC_DIR}/fonts/${FONT_DIR}/*.png)
add_dependencies(9x_bitmaps 9x_fonts_1bit 9x_xbm_1bit)
Binary file not shown.

After

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

+1
View File
@@ -0,0 +1 @@
/mainmenu.png
+10
View File
@@ -0,0 +1,10 @@
set(FONT "STD" CACHE STRING "Choose font : STD or SQT5")
set_property(CACHE FONT PROPERTY STRINGS "STD" "SQT5")
string(TOLOWER "${FONT}" FONT_DIR)
set(STICKS_ARGS --rows 4)
add_bitmaps_target(taranis_xbm ${RADIO_SRC_DIR}/bitmaps/sticks.xbm 1bit "${STICKS_ARGS}") # 1bit format, 1byte size, split into 4 rows
add_fonts_target(taranis_fonts ${RADIO_SRC_DIR}/fonts/${FONT_DIR}/*.png)
add_bitmaps_target(taranis_bitmaps ${RADIO_SRC_DIR}/bitmaps/212x64/*.png 4bits "--rle")
add_dependencies(taranis_bitmaps taranis_fonts taranis_xbm)
Binary file not shown.

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 708 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

+13
View File
@@ -0,0 +1,13 @@
set(BITMAP_SIZE_ARGS --size-format 2)
set(BITMAP_LZ4_ARGS ${BITMAP_SIZE_ARGS} --lz4)
set(MASK_LZ4_ARGS ${BITMAP_SIZE_ARGS} --lz4)
add_bitmaps_target(bm320_bmps "${RADIO_SRC_DIR}/bitmaps/320x240/bmp_*.png" "4/4/4/4" "${BITMAP_LZ4_ARGS}")
add_bitmaps_target(bm320_masks "${RADIO_SRC_DIR}/bitmaps/320x240/mask_*.png" 8bits "${MASK_LZ4_ARGS}")
add_custom_target(bm320_bitmaps)
add_dependencies(bm320_bitmaps
bm320_bmps
bm320_masks
)
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 934 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 948 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 619 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 923 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 890 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 821 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 851 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 904 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 715 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Some files were not shown because too many files have changed in this diff Show More