Skip to content

Commit b1f5f32

Browse files
authored
Merge pull request #2068 from iNavFlight/dzikuvx-do-not-use-MSP_BOXNAMES
Do not use MSP_BOXNAMES
2 parents 90b8139 + cb3a7e9 commit b1f5f32

7 files changed

+353
-84
lines changed

js/fc.js

+20-8
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const FwApproachCollection = require('./fwApproachCollection')
1414
const { PLATFORM } = require('./model')
1515
const VTX = require('./vtx');
1616
const BitHelper = require('./bitHelper');
17+
const { FLIGHT_MODES } = require('./flightModes');
1718

1819

1920
var FC = {
@@ -28,8 +29,8 @@ var FC = {
2829
RC_MAP: null,
2930
RC: null,
3031
RC_tuning: null,
31-
AUX_CONFIG: null,
32-
AUX_CONFIG_IDS: null,
32+
AUX_CONFIG: [],
33+
AUX_CONFIG_IDS: [],
3334
MODE_RANGES: null,
3435
ADJUSTMENT_RANGES: null,
3536
SERVO_CONFIG: null,
@@ -85,6 +86,7 @@ var FC = {
8586
FEATURES: null,
8687
RATE_DYNAMICS: null,
8788
EZ_TUNE: null,
89+
FLIGHT_MODES: null,
8890

8991
restartRequired: false,
9092
MAX_SERVO_RATE: 125,
@@ -198,8 +200,16 @@ var FC = {
198200
manual_yaw_rate: 0,
199201
};
200202

201-
this.AUX_CONFIG = [];
202-
this.AUX_CONFIG_IDS = [];
203+
this.generateAuxConfig = function () {
204+
console.log('Generating AUX_CONFIG');
205+
this.AUX_CONFIG = [];
206+
for ( let i = 0; i < this.AUX_CONFIG_IDS.length; i++ ) {
207+
let found = FLIGHT_MODES.find( mode => mode.permanentId === this.AUX_CONFIG_IDS[i] );
208+
if (found) {
209+
this.AUX_CONFIG.push(found.boxName);
210+
}
211+
}
212+
};
203213

204214
this.MODE_RANGES = [];
205215
this.ADJUSTMENT_RANGES = [];
@@ -940,11 +950,13 @@ var FC = {
940950
return this.getServoMixInputNames()[input];
941951
},
942952
getModeId: function (name) {
943-
for (var i = 0; i < this.AUX_CONFIG.length; i++) {
944-
if (this.AUX_CONFIG[i] == name)
945-
return i;
953+
954+
let mode = FLIGHT_MODES.find( mode => mode.boxName === name );
955+
if (mode) {
956+
return mode.permanentId;
957+
} else {
958+
return -1;
946959
}
947-
return -1;
948960
},
949961
isModeBitSet: function (i) {
950962
return BitHelper.bit_check(this.CONFIG.mode[Math.trunc(i / 32)], i % 32);

js/flightModes.js

+286
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
'use strict';
2+
3+
var FLIGHT_MODES = [
4+
{
5+
boxId: 0,
6+
boxName: "ARM",
7+
permanentId: 0
8+
},
9+
{
10+
boxId: 1,
11+
boxName: "ANGLE",
12+
permanentId: 1
13+
},
14+
{
15+
boxId: 2,
16+
boxName: "HORIZON",
17+
permanentId: 2
18+
},
19+
{
20+
boxId: 3,
21+
boxName: "NAV ALTHOLD",
22+
permanentId: 3
23+
},
24+
{
25+
boxId: 4,
26+
boxName: "HEADING HOLD",
27+
permanentId: 5
28+
},
29+
{
30+
boxId: 5,
31+
boxName: "HEADFREE",
32+
permanentId: 6
33+
},
34+
{
35+
boxId: 6,
36+
boxName: "HEADADJ",
37+
permanentId: 7
38+
},
39+
{
40+
boxId: 7,
41+
boxName: "CAMSTAB",
42+
permanentId: 8
43+
},
44+
{
45+
boxId: 8,
46+
boxName: "NAV RTH",
47+
permanentId: 10
48+
},
49+
{
50+
boxId: 9,
51+
boxName: "NAV POSHOLD",
52+
permanentId: 11
53+
},
54+
{
55+
boxId: 10,
56+
boxName: "MANUAL",
57+
permanentId: 12
58+
},
59+
{
60+
boxId: 11,
61+
boxName: "BEEPER",
62+
permanentId: 13
63+
},
64+
{
65+
boxId: 12,
66+
boxName: "LEDS OFF",
67+
permanentId: 15
68+
},
69+
{
70+
boxId: 13,
71+
boxName: "LIGHTS",
72+
permanentId: 16
73+
},
74+
{
75+
boxId: 15,
76+
boxName: "OSD OFF",
77+
permanentId: 19
78+
},
79+
{
80+
boxId: 16,
81+
boxName: "TELEMETRY",
82+
permanentId: 20
83+
},
84+
{
85+
boxId: 28,
86+
boxName: "AUTO TUNE",
87+
permanentId: 21
88+
},
89+
{
90+
boxId: 17,
91+
boxName: "BLACKBOX",
92+
permanentId: 26
93+
},
94+
{
95+
boxId: 18,
96+
boxName: "FAILSAFE",
97+
permanentId: 27
98+
},
99+
{
100+
boxId: 19,
101+
boxName: "NAV WP",
102+
permanentId: 28
103+
},
104+
{
105+
boxId: 20,
106+
boxName: "AIR MODE",
107+
permanentId: 29
108+
},
109+
{
110+
boxId: 21,
111+
boxName: "HOME RESET",
112+
permanentId: 30
113+
},
114+
{
115+
boxId: 22,
116+
boxName: "GCS NAV",
117+
permanentId: 31
118+
},
119+
{
120+
boxId: 39,
121+
boxName: "FPV ANGLE MIX",
122+
permanentId: 32
123+
},
124+
{
125+
boxId: 24,
126+
boxName: "SURFACE",
127+
permanentId: 33
128+
},
129+
{
130+
boxId: 25,
131+
boxName: "FLAPERON",
132+
permanentId: 34
133+
},
134+
{
135+
boxId: 26,
136+
boxName: "TURN ASSIST",
137+
permanentId: 35
138+
},
139+
{
140+
boxId: 14,
141+
boxName: "NAV LAUNCH",
142+
permanentId: 36
143+
},
144+
{
145+
boxId: 27,
146+
boxName: "SERVO AUTOTRIM",
147+
permanentId: 37
148+
},
149+
{
150+
boxId: 23,
151+
boxName: "KILLSWITCH",
152+
permanentId: 38
153+
},
154+
{
155+
boxId: 29,
156+
boxName: "CAMERA CONTROL 1",
157+
permanentId: 39
158+
},
159+
{
160+
boxId: 30,
161+
boxName: "CAMERA CONTROL 2",
162+
permanentId: 40
163+
},
164+
{
165+
boxId: 31,
166+
boxName: "CAMERA CONTROL 3",
167+
permanentId: 41
168+
},
169+
{
170+
boxId: 32,
171+
boxName: "OSD ALT 1",
172+
permanentId: 42
173+
},
174+
{
175+
boxId: 33,
176+
boxName: "OSD ALT 2",
177+
permanentId: 43
178+
},
179+
{
180+
boxId: 34,
181+
boxName: "OSD ALT 3",
182+
permanentId: 44
183+
},
184+
{
185+
boxId: 35,
186+
boxName: "NAV COURSE HOLD",
187+
permanentId: 45
188+
},
189+
{
190+
boxId: 36,
191+
boxName: "MC BRAKING",
192+
permanentId: 46
193+
},
194+
{
195+
boxId: 37,
196+
boxName: "USER1",
197+
permanentId: 47
198+
},
199+
{
200+
boxId: 38,
201+
boxName: "USER2",
202+
permanentId: 48
203+
},
204+
{
205+
boxId: 48,
206+
boxName: "USER3",
207+
permanentId: 57
208+
},
209+
{
210+
boxId: 49,
211+
boxName: "USER4",
212+
permanentId: 58
213+
},
214+
{
215+
boxId: 40,
216+
boxName: "LOITER CHANGE",
217+
permanentId: 49
218+
},
219+
{
220+
boxId: 41,
221+
boxName: "MSP RC OVERRIDE",
222+
permanentId: 50
223+
},
224+
{
225+
boxId: 42,
226+
boxName: "PREARM",
227+
permanentId: 51
228+
},
229+
{
230+
boxId: 43,
231+
boxName: "TURTLE",
232+
permanentId: 52
233+
},
234+
{
235+
boxId: 44,
236+
boxName: "NAV CRUISE",
237+
permanentId: 53
238+
},
239+
{
240+
boxId: 45,
241+
boxName: "AUTO LEVEL TRIM",
242+
permanentId: 54
243+
},
244+
{
245+
boxId: 46,
246+
boxName: "WP PLANNER",
247+
permanentId: 55
248+
},
249+
{
250+
boxId: 47,
251+
boxName: "SOARING",
252+
permanentId: 56
253+
},
254+
{
255+
boxId: 50,
256+
boxName: "MISSION CHANGE",
257+
permanentId: 59
258+
},
259+
{
260+
boxId: 51,
261+
boxName: "BEEPER MUTE",
262+
permanentId: 60
263+
},
264+
{
265+
boxId: 52,
266+
boxName: "MULTI FUNCTION",
267+
permanentId: 61
268+
},
269+
{
270+
boxId: 53,
271+
boxName: "MIXER PROFILE 2",
272+
permanentId: 62
273+
},
274+
{
275+
boxId: 54,
276+
boxName: "MIXER TRANSITION",
277+
permanentId: 63
278+
},
279+
{
280+
boxId: 55,
281+
boxName: "ANGLE HOLD",
282+
permanentId: 64
283+
}
284+
];
285+
286+
module.exports = {FLIGHT_MODES};

js/msp/MSPCodes.js

-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ var MSPCodes = {
8484
MSP_PID: 112,
8585
MSP_ACTIVEBOXES: 113,
8686
MSP_MOTOR_PINS: 115,
87-
MSP_BOXNAMES: 116,
8887
MSP_PIDNAMES: 117,
8988
MSP_WP: 118,
9089
MSP_BOXIDS: 119,

js/msp/MSPHelper.js

-15
Original file line numberDiff line numberDiff line change
@@ -386,21 +386,6 @@ var mspHelper = (function () {
386386
case MSPCodes.MSP_MOTOR_PINS:
387387
console.log(data);
388388
break;
389-
case MSPCodes.MSP_BOXNAMES:
390-
//noinspection JSUndeclaredVariable
391-
FC.AUX_CONFIG = []; // empty the array as new data is coming in
392-
buff = [];
393-
for (let i = 0; i < data.byteLength; i++) {
394-
if (data.getUint8(i) == 0x3B) { // ; (delimeter char)
395-
FC.AUX_CONFIG.push(String.fromCharCode.apply(null, buff)); // convert bytes into ASCII and save as strings
396-
397-
// empty buffer
398-
buff = [];
399-
} else {
400-
buff.push(data.getUint8(i));
401-
}
402-
}
403-
break;
404389
case MSPCodes.MSP_PIDNAMES:
405390
//noinspection JSUndeclaredVariable
406391
FC.PID_names = []; // empty the array as new data is coming in

0 commit comments

Comments
 (0)