1+ import { mavlinkDef } from "./mavlinkDef"
2+
3+ function enumToNumericLabelEntries ( enumObj ) {
4+ return Object . entries ( enumObj )
5+ . filter ( ( [ key ] ) => ! Number . isNaN ( Number ( key ) ) ) // keep "0","1",...
6+ . map ( ( [ key , name ] ) => [ Number ( key ) , name ] )
7+ . sort ( ( a , b ) => a [ 0 ] - b [ 0 ] )
8+ }
9+
110export const MAV_STATE = [
211 "UNINIT" ,
312 "BOOT" ,
@@ -10,71 +19,13 @@ export const MAV_STATE = [
1019 "FLIGHT TERMINATION" ,
1120]
1221
13- export const MAV_SEVERITY = [
14- "EMERGENCY" ,
15- "ALERT" ,
16- "CRITICAL" ,
17- "ERROR" ,
18- "WARNING" ,
19- "NOTICE" ,
20- "INFO" ,
21- "DEBUG" ,
22- ]
22+ export const PLANE_MODES_FLIGHT_MODE_MAP = Object . fromEntries (
23+ enumToNumericLabelEntries ( mavlinkDef . PlaneMode ) ,
24+ )
2325
24- export const PLANE_MODES_FLIGHT_MODE_MAP = {
25- 0 : "Manual" ,
26- 1 : "CIRCLE" ,
27- 2 : "STABILIZE" ,
28- 3 : "TRAINING" ,
29- 4 : "ACRO" ,
30- 5 : "FBWA" ,
31- 6 : "FBWB" ,
32- 7 : "CRUISE" ,
33- 8 : "AUTOTUNE" ,
34- 10 : "Auto" ,
35- 11 : "RTL" ,
36- 12 : "Loiter" ,
37- 13 : "TAKEOFF" ,
38- 14 : "AVOID_ADSB" ,
39- 15 : "Guided" ,
40- 17 : "QSTABILIZE" ,
41- 18 : "QHOVER" ,
42- 19 : "QLOITER" ,
43- 20 : "QLAND" ,
44- 21 : "QRTL" ,
45- 22 : "QAUTOTUNE" ,
46- 23 : "QACRO" ,
47- 24 : "THERMAL" ,
48- 25 : "Loiter to QLand" ,
49- }
50-
51- export const COPTER_MODES_FLIGHT_MODE_MAP = {
52- 0 : "Stabilize" ,
53- 1 : "Acro" ,
54- 2 : "AltHold" ,
55- 3 : "Auto" ,
56- 4 : "Guided" ,
57- 5 : "Loiter" ,
58- 6 : "RTL" ,
59- 7 : "Circle" ,
60- 9 : "Land" ,
61- 11 : "Drift" ,
62- 13 : "Sport" ,
63- 14 : "Flip" ,
64- 15 : "AutoTune" ,
65- 16 : "PosHold" ,
66- 17 : "Brake" ,
67- 18 : "Throw" ,
68- 19 : "Avoid_ADSB" ,
69- 20 : "Guided_NoGPS" ,
70- 21 : "Smart_RTL" ,
71- 22 : "FlowHold" ,
72- 23 : "Follow" ,
73- 24 : "ZigZag" ,
74- 25 : "SystemID" ,
75- 26 : "Heli_Autorotate" ,
76- 27 : "UNKNOWN" ,
77- }
26+ export const COPTER_MODES_FLIGHT_MODE_MAP = Object . fromEntries (
27+ enumToNumericLabelEntries ( mavlinkDef . CopterMode ) ,
28+ )
7829
7930export function getFlightModeMap ( aircraftType ) {
8031 if ( aircraftType === "Plane" ) {
@@ -85,19 +36,15 @@ export function getFlightModeMap(aircraftType) {
8536 return { }
8637}
8738
88- export const GPS_FIX_TYPES = [
89- "NO GPS" ,
90- "NO FIX" ,
91- "2D FIX" ,
92- "3D FIX" ,
93- "DGPS" ,
94- "RTK FLOAT" ,
95- "RTK FIXED" ,
96- "STATIC" ,
97- "PPP" ,
98- ]
39+ function formatGpsFixLabel ( name ) {
40+ return name
41+ . replace ( / ^ G P S _ F I X _ T Y P E _ / , "" ) // remove prefix
42+ . replace ( / _ / g, " " ) // underscores -> spaces
43+ }
9944
100- export const MAV_AUTOPILOT_INVALID = 8
45+ export const GPS_FIX_TYPES = enumToNumericLabelEntries (
46+ mavlinkDef . GpsFixType ,
47+ ) . map ( ( [ , name ] ) => formatGpsFixLabel ( name ) )
10148
10249export const FRAME_TYPE_MAP_QUAD = {
10350 0 : {
@@ -314,15 +261,6 @@ export const MOTOR_LETTER_LABELS = [
314261 "L" ,
315262]
316263
317- export const MISSION_STATES = {
318- 0 : "UNKNOWN" ,
319- 1 : "NO MISSION" ,
320- 2 : "NOT STARTED" ,
321- 3 : "ACTIVE" ,
322- 4 : "PAUSED" ,
323- 5 : "COMPLETED" ,
324- }
325-
326264// List of mission item commands to not display on the map
327265// due to lack of GPS coordinates
328266export const FILTER_MISSION_ITEM_COMMANDS_LIST = {
@@ -460,24 +398,7 @@ export const FENCE_ITEM_COMMANDS_LIST = {
460398 5004 : "MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION" ,
461399}
462400
463- export const MAV_FRAME_LIST = {
464- 0 : "MAV_FRAME_GLOBAL" ,
465- 1 : "MAV_FRAME_LOCAL_NED" ,
466- 2 : "MAV_FRAME_MISSION" ,
467- 3 : "MAV_FRAME_GLOBAL_RELATIVE_ALT" ,
468- 4 : "MAV_FRAME_LOCAL_ENU" ,
469- 5 : "MAV_FRAME_GLOBAL_INT" ,
470- 6 : "MAV_FRAME_GLOBAL_RELATIVE_ALT_INT" ,
471- 7 : "MAV_FRAME_LOCAL_OFFSET_NED" ,
472- 8 : "MAV_FRAME_BODY_NED" ,
473- 9 : "MAV_FRAME_BODY_OFFSET_NED" ,
474- 10 : "MAV_FRAME_GLOBAL_TERRAIN_ALT" ,
475- 11 : "MAV_FRAME_GLOBAL_TERRAIN_ALT_INT" ,
476- 12 : "MAV_FRAME_BODY_FRD" ,
477- 21 : "MAV_FRAME_LOCAL_FRD" ,
478- 22 : "MAV_FRAME_LOCAL_FLU" ,
479- 23 : "MAV_FRAME_ENUM_END" ,
480- }
401+ export const MAV_FRAME_LIST = mavlinkDef . MavFrame
481402
482403function getPositionFrameValue ( frameName ) {
483404 return Object . keys ( MAV_FRAME_LIST ) . find (
@@ -500,20 +421,9 @@ function getFrameDropdownData() {
500421
501422export const MAV_FRAME_DROPDOWN_DATA = getFrameDropdownData ( )
502423
503- export const EKF_STATUS_FLAGS = {
504- 1 : "EKF_ATTITUDE" ,
505- 2 : "EKF_VELOCITY_HORIZ" ,
506- 4 : "EKF_VELOCITY_VERT" ,
507- 8 : "EKF_POS_HORIZ_REL" ,
508- 16 : "EKF_POS_HORIZ_ABS" ,
509- 32 : "EKF_POS_VERT_ABS" ,
510- 64 : "EKF_POS_VERT_AGL" ,
511- 128 : "EKF_CONST_POS_MODE" ,
512- 256 : "EKF_PRED_POS_HORIZ_REL" ,
513- 512 : "EKF_PRED_POS_HORIZ_ABS" ,
514- 1024 : "EKF_UNINITIALIZED" ,
515- 32768 : "EKF_GPS_GLITCHING" ,
516- }
424+ export const EKF_STATUS_FLAGS = Object . fromEntries (
425+ enumToNumericLabelEntries ( mavlinkDef . EkfStatusFlags ) ,
426+ )
517427
518428export function getActiveEKFFlags ( statusValue ) {
519429 const activeFlags = [ ]
0 commit comments