@aircast-4g/mavlink 1.1.11 → 1.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dialects/ardupilotmega/index.d.ts +336 -245
- package/dist/dialects/ardupilotmega/index.js +1155 -897
- package/dist/dialects/ardupilotmega/index.js.map +1 -1
- package/dist/dialects/common/index.d.ts +302 -221
- package/dist/dialects/common/index.js +1019 -787
- package/dist/dialects/common/index.js.map +1 -1
- package/dist/dialects/minimal/index.d.ts +9 -14
- package/dist/dialects/minimal/index.js +59 -39
- package/dist/dialects/minimal/index.js.map +1 -1
- package/dist/dialects/paparazzi/index.d.ts +303 -222
- package/dist/dialects/paparazzi/index.js +1022 -790
- package/dist/dialects/paparazzi/index.js.map +1 -1
- package/dist/dialects/python_array_test/index.d.ts +308 -227
- package/dist/dialects/python_array_test/index.js +1038 -806
- package/dist/dialects/python_array_test/index.js.map +1 -1
- package/dist/dialects/standard/index.d.ts +72 -12
- package/dist/dialects/standard/index.js +213 -20
- package/dist/dialects/standard/index.js.map +1 -1
- package/dist/dialects/test/index.d.ts +13 -11
- package/dist/dialects/test/index.js +88 -44
- package/dist/dialects/test/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -86,7 +86,8 @@ declare enum MAV_TYPEEnum {
|
|
|
86
86
|
MAV_TYPE_SPACECRAFT_ORBITER = 45,
|
|
87
87
|
MAV_TYPE_GROUND_QUADRUPED = 46,
|
|
88
88
|
MAV_TYPE_VTOL_GYRODYNE = 47,
|
|
89
|
-
MAV_TYPE_GRIPPER = 48
|
|
89
|
+
MAV_TYPE_GRIPPER = 48,
|
|
90
|
+
MAV_TYPE_RADIO = 49
|
|
90
91
|
}
|
|
91
92
|
type MAV_TYPE = MAV_TYPEEnum;
|
|
92
93
|
declare enum MAV_MODE_FLAGEnum {
|
|
@@ -207,6 +208,9 @@ declare enum MAV_COMPONENTEnum {
|
|
|
207
208
|
MAV_COMP_ID_CAMERA4 = 103,
|
|
208
209
|
MAV_COMP_ID_CAMERA5 = 104,
|
|
209
210
|
MAV_COMP_ID_CAMERA6 = 105,
|
|
211
|
+
MAV_COMP_ID_RADIO = 110,
|
|
212
|
+
MAV_COMP_ID_RADIO2 = 111,
|
|
213
|
+
MAV_COMP_ID_RADIO3 = 112,
|
|
210
214
|
MAV_COMP_ID_SERVO1 = 140,
|
|
211
215
|
MAV_COMP_ID_SERVO2 = 141,
|
|
212
216
|
MAV_COMP_ID_SERVO3 = 142,
|
|
@@ -267,6 +271,38 @@ declare enum MAV_BOOLEnum {
|
|
|
267
271
|
MAV_BOOL_TRUE = 1
|
|
268
272
|
}
|
|
269
273
|
type MAV_BOOL = MAV_BOOLEnum;
|
|
274
|
+
declare enum MAV_PROTOCOL_CAPABILITYEnum {
|
|
275
|
+
MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT = 1,
|
|
276
|
+
MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT = 2,
|
|
277
|
+
MAV_PROTOCOL_CAPABILITY_MISSION_INT = 4,
|
|
278
|
+
MAV_PROTOCOL_CAPABILITY_COMMAND_INT = 8,
|
|
279
|
+
MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE = 16,
|
|
280
|
+
MAV_PROTOCOL_CAPABILITY_FTP = 32,
|
|
281
|
+
MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET = 64,
|
|
282
|
+
MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED = 128,
|
|
283
|
+
MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT = 256,
|
|
284
|
+
MAV_PROTOCOL_CAPABILITY_TERRAIN = 512,
|
|
285
|
+
MAV_PROTOCOL_CAPABILITY_RESERVED3 = 1024,
|
|
286
|
+
MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION = 2048,
|
|
287
|
+
MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION = 4096,
|
|
288
|
+
MAV_PROTOCOL_CAPABILITY_MAVLINK2 = 8192,
|
|
289
|
+
MAV_PROTOCOL_CAPABILITY_MISSION_FENCE = 16384,
|
|
290
|
+
MAV_PROTOCOL_CAPABILITY_MISSION_RALLY = 32768,
|
|
291
|
+
MAV_PROTOCOL_CAPABILITY_RESERVED2 = 65536,
|
|
292
|
+
MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST = 131072,
|
|
293
|
+
MAV_PROTOCOL_CAPABILITY_COMPONENT_IMPLEMENTS_GIMBAL_MANAGER = 262144,
|
|
294
|
+
MAV_PROTOCOL_CAPABILITY_COMPONENT_ACCEPTS_GCS_CONTROL = 524288,
|
|
295
|
+
MAV_PROTOCOL_CAPABILITY_GRIPPER = 1048576
|
|
296
|
+
}
|
|
297
|
+
type MAV_PROTOCOL_CAPABILITY = MAV_PROTOCOL_CAPABILITYEnum;
|
|
298
|
+
declare enum FIRMWARE_VERSION_TYPEEnum {
|
|
299
|
+
FIRMWARE_VERSION_TYPE_DEV = 0,
|
|
300
|
+
FIRMWARE_VERSION_TYPE_ALPHA = 64,
|
|
301
|
+
FIRMWARE_VERSION_TYPE_BETA = 128,
|
|
302
|
+
FIRMWARE_VERSION_TYPE_RC = 192,
|
|
303
|
+
FIRMWARE_VERSION_TYPE_OFFICIAL = 255
|
|
304
|
+
}
|
|
305
|
+
type FIRMWARE_VERSION_TYPE = FIRMWARE_VERSION_TYPEEnum;
|
|
270
306
|
|
|
271
307
|
interface MessageHeartbeat {
|
|
272
308
|
custom_mode: number;
|
|
@@ -276,23 +312,45 @@ interface MessageHeartbeat {
|
|
|
276
312
|
system_status: MAV_STATE;
|
|
277
313
|
mavlink_version: number;
|
|
278
314
|
}
|
|
279
|
-
interface
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
315
|
+
interface MessageGlobalPositionInt {
|
|
316
|
+
time_boot_ms: number;
|
|
317
|
+
lat: number;
|
|
318
|
+
lon: number;
|
|
319
|
+
alt: number;
|
|
320
|
+
relative_alt: number;
|
|
321
|
+
vx: number;
|
|
322
|
+
vy: number;
|
|
323
|
+
vz: number;
|
|
324
|
+
hdg: number;
|
|
325
|
+
}
|
|
326
|
+
interface MessageAutopilotVersion {
|
|
327
|
+
capabilities: MAV_PROTOCOL_CAPABILITY;
|
|
328
|
+
uid: number;
|
|
329
|
+
flight_sw_version: number;
|
|
330
|
+
middleware_sw_version: number;
|
|
331
|
+
os_sw_version: number;
|
|
332
|
+
board_version: number;
|
|
333
|
+
vendor_id: number;
|
|
334
|
+
product_id: number;
|
|
335
|
+
flight_custom_version: number[];
|
|
336
|
+
middleware_custom_version: number[];
|
|
337
|
+
os_custom_version: number[];
|
|
338
|
+
uid2?: number[];
|
|
285
339
|
}
|
|
286
340
|
interface MessageTypeMap {
|
|
287
341
|
HEARTBEAT: MessageHeartbeat;
|
|
288
|
-
|
|
342
|
+
GLOBAL_POSITION_INT: MessageGlobalPositionInt;
|
|
343
|
+
AUTOPILOT_VERSION: MessageAutopilotVersion;
|
|
289
344
|
}
|
|
290
345
|
type AnyMessage = ParsedMAVLinkMessage$1;
|
|
291
346
|
declare function isHeartbeat(msg: ParsedMAVLinkMessage$1): msg is ParsedMAVLinkMessage$1 & {
|
|
292
347
|
payload: MessageHeartbeat;
|
|
293
348
|
};
|
|
294
|
-
declare function
|
|
295
|
-
payload:
|
|
349
|
+
declare function isGlobalPositionInt(msg: ParsedMAVLinkMessage$1): msg is ParsedMAVLinkMessage$1 & {
|
|
350
|
+
payload: MessageGlobalPositionInt;
|
|
351
|
+
};
|
|
352
|
+
declare function isAutopilotVersion(msg: ParsedMAVLinkMessage$1): msg is ParsedMAVLinkMessage$1 & {
|
|
353
|
+
payload: MessageAutopilotVersion;
|
|
296
354
|
};
|
|
297
355
|
|
|
298
356
|
interface ParsedMAVLinkMessage {
|
|
@@ -346,6 +404,8 @@ declare abstract class DialectParser {
|
|
|
346
404
|
resetBuffer(): void;
|
|
347
405
|
decode(frame: MAVLinkFrame): ParsedMAVLinkMessage;
|
|
348
406
|
private decodePayload;
|
|
407
|
+
private sortFieldsByWireOrder;
|
|
408
|
+
private getFieldTypeSize;
|
|
349
409
|
private getDefaultValue;
|
|
350
410
|
private decodeField;
|
|
351
411
|
private decodeSingleValue;
|
|
@@ -385,5 +445,5 @@ declare class StandardSerializer {
|
|
|
385
445
|
supportsMessage(messageName: string): boolean;
|
|
386
446
|
}
|
|
387
447
|
|
|
388
|
-
export { MAV_AUTOPILOTEnum, MAV_BOOLEnum, MAV_COMPONENTEnum, MAV_MODE_FLAGEnum, MAV_MODE_FLAG_DECODE_POSITIONEnum, MAV_STATEEnum, MAV_TYPEEnum, StandardParser, StandardSerializer,
|
|
389
|
-
export type { AnyMessage, MAV_AUTOPILOT, MAV_BOOL, MAV_COMPONENT, MAV_MODE_FLAG, MAV_MODE_FLAG_DECODE_POSITION, MAV_STATE, MAV_TYPE,
|
|
448
|
+
export { FIRMWARE_VERSION_TYPEEnum, MAV_AUTOPILOTEnum, MAV_BOOLEnum, MAV_COMPONENTEnum, MAV_MODE_FLAGEnum, MAV_MODE_FLAG_DECODE_POSITIONEnum, MAV_PROTOCOL_CAPABILITYEnum, MAV_STATEEnum, MAV_TYPEEnum, StandardParser, StandardSerializer, isAutopilotVersion, isGlobalPositionInt, isHeartbeat };
|
|
449
|
+
export type { AnyMessage, FIRMWARE_VERSION_TYPE, MAV_AUTOPILOT, MAV_BOOL, MAV_COMPONENT, MAV_MODE_FLAG, MAV_MODE_FLAG_DECODE_POSITION, MAV_PROTOCOL_CAPABILITY, MAV_STATE, MAV_TYPE, MessageAutopilotVersion, MessageGlobalPositionInt, MessageHeartbeat, MessageTypeMap, ParsedMAVLinkMessage$1 as ParsedMAVLinkMessage };
|
|
@@ -148,6 +148,8 @@ var MAV_TYPEEnum;
|
|
|
148
148
|
MAV_TYPEEnum[MAV_TYPEEnum["MAV_TYPE_VTOL_GYRODYNE"] = 47] = "MAV_TYPE_VTOL_GYRODYNE";
|
|
149
149
|
// Gripper
|
|
150
150
|
MAV_TYPEEnum[MAV_TYPEEnum["MAV_TYPE_GRIPPER"] = 48] = "MAV_TYPE_GRIPPER";
|
|
151
|
+
// Radio
|
|
152
|
+
MAV_TYPEEnum[MAV_TYPEEnum["MAV_TYPE_RADIO"] = 49] = "MAV_TYPE_RADIO";
|
|
151
153
|
})(MAV_TYPEEnum || (MAV_TYPEEnum = {}));
|
|
152
154
|
// These flags encode the MAV mode, see MAV_MODE enum for useful combinations.
|
|
153
155
|
var MAV_MODE_FLAGEnum;
|
|
@@ -386,6 +388,12 @@ var MAV_COMPONENTEnum;
|
|
|
386
388
|
MAV_COMPONENTEnum[MAV_COMPONENTEnum["MAV_COMP_ID_CAMERA5"] = 104] = "MAV_COMP_ID_CAMERA5";
|
|
387
389
|
// Camera #6.
|
|
388
390
|
MAV_COMPONENTEnum[MAV_COMPONENTEnum["MAV_COMP_ID_CAMERA6"] = 105] = "MAV_COMP_ID_CAMERA6";
|
|
391
|
+
// Radio #1.
|
|
392
|
+
MAV_COMPONENTEnum[MAV_COMPONENTEnum["MAV_COMP_ID_RADIO"] = 110] = "MAV_COMP_ID_RADIO";
|
|
393
|
+
// Radio #2.
|
|
394
|
+
MAV_COMPONENTEnum[MAV_COMPONENTEnum["MAV_COMP_ID_RADIO2"] = 111] = "MAV_COMP_ID_RADIO2";
|
|
395
|
+
// Radio #3.
|
|
396
|
+
MAV_COMPONENTEnum[MAV_COMPONENTEnum["MAV_COMP_ID_RADIO3"] = 112] = "MAV_COMP_ID_RADIO3";
|
|
389
397
|
// Servo #1.
|
|
390
398
|
MAV_COMPONENTEnum[MAV_COMPONENTEnum["MAV_COMP_ID_SERVO1"] = 140] = "MAV_COMP_ID_SERVO1";
|
|
391
399
|
// Servo #2.
|
|
@@ -501,14 +509,81 @@ var MAV_BOOLEnum;
|
|
|
501
509
|
// True.
|
|
502
510
|
MAV_BOOLEnum[MAV_BOOLEnum["MAV_BOOL_TRUE"] = 1] = "MAV_BOOL_TRUE";
|
|
503
511
|
})(MAV_BOOLEnum || (MAV_BOOLEnum = {}));
|
|
512
|
+
// Bitmask of (optional) autopilot capabilities (64 bit). If a bit is set, the autopilot supports this capability.
|
|
513
|
+
var MAV_PROTOCOL_CAPABILITYEnum;
|
|
514
|
+
(function (MAV_PROTOCOL_CAPABILITYEnum) {
|
|
515
|
+
// Autopilot supports the MISSION_ITEM float message type.
|
|
516
|
+
// Note that MISSION_ITEM is deprecated, and autopilots should use MISSION_ITEM_INT instead.
|
|
517
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT"] = 1] = "MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT";
|
|
518
|
+
// Autopilot supports the new param float message type.
|
|
519
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT"] = 2] = "MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT";
|
|
520
|
+
// Autopilot supports MISSION_ITEM_INT scaled integer message type.
|
|
521
|
+
// Note that this flag must always be set if missions are supported, because missions must always use MISSION_ITEM_INT (rather than MISSION_ITEM, which is deprecated).
|
|
522
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_MISSION_INT"] = 4] = "MAV_PROTOCOL_CAPABILITY_MISSION_INT";
|
|
523
|
+
// Autopilot supports COMMAND_INT scaled integer message type.
|
|
524
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_COMMAND_INT"] = 8] = "MAV_PROTOCOL_CAPABILITY_COMMAND_INT";
|
|
525
|
+
// Parameter protocol uses byte-wise encoding of parameter values into param_value (float) fields: https://mavlink.io/en/services/parameter.html#parameter-encoding.
|
|
526
|
+
// Note that either this flag or MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST should be set if the parameter protocol is supported.
|
|
527
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE"] = 16] = "MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE";
|
|
528
|
+
// Autopilot supports the File Transfer Protocol v1: https://mavlink.io/en/services/ftp.html.
|
|
529
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_FTP"] = 32] = "MAV_PROTOCOL_CAPABILITY_FTP";
|
|
530
|
+
// Autopilot supports commanding attitude offboard.
|
|
531
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET"] = 64] = "MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET";
|
|
532
|
+
// Autopilot supports commanding position and velocity targets in local NED frame.
|
|
533
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED"] = 128] = "MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED";
|
|
534
|
+
// Autopilot supports commanding position and velocity targets in global scaled integers.
|
|
535
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT"] = 256] = "MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT";
|
|
536
|
+
// Autopilot supports terrain protocol / data handling.
|
|
537
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_TERRAIN"] = 512] = "MAV_PROTOCOL_CAPABILITY_TERRAIN";
|
|
538
|
+
// Reserved for future use.
|
|
539
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_RESERVED3"] = 1024] = "MAV_PROTOCOL_CAPABILITY_RESERVED3";
|
|
540
|
+
// Autopilot supports the MAV_CMD_DO_FLIGHTTERMINATION command (flight termination).
|
|
541
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION"] = 2048] = "MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION";
|
|
542
|
+
// Autopilot supports onboard compass calibration.
|
|
543
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION"] = 4096] = "MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION";
|
|
544
|
+
// Autopilot supports MAVLink version 2.
|
|
545
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_MAVLINK2"] = 8192] = "MAV_PROTOCOL_CAPABILITY_MAVLINK2";
|
|
546
|
+
// Autopilot supports mission fence protocol.
|
|
547
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_MISSION_FENCE"] = 16384] = "MAV_PROTOCOL_CAPABILITY_MISSION_FENCE";
|
|
548
|
+
// Autopilot supports mission rally point protocol.
|
|
549
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_MISSION_RALLY"] = 32768] = "MAV_PROTOCOL_CAPABILITY_MISSION_RALLY";
|
|
550
|
+
// Reserved for future use.
|
|
551
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_RESERVED2"] = 65536] = "MAV_PROTOCOL_CAPABILITY_RESERVED2";
|
|
552
|
+
// Parameter protocol uses C-cast of parameter values to set the param_value (float) fields: https://mavlink.io/en/services/parameter.html#parameter-encoding.
|
|
553
|
+
// Note that either this flag or MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE should be set if the parameter protocol is supported.
|
|
554
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST"] = 131072] = "MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST";
|
|
555
|
+
// This component implements/is a gimbal manager. This means the GIMBAL_MANAGER_INFORMATION, and other messages can be requested.
|
|
556
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_COMPONENT_IMPLEMENTS_GIMBAL_MANAGER"] = 262144] = "MAV_PROTOCOL_CAPABILITY_COMPONENT_IMPLEMENTS_GIMBAL_MANAGER";
|
|
557
|
+
// Component supports locking control to a particular GCS independent of its system (via MAV_CMD_REQUEST_OPERATOR_CONTROL).
|
|
558
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_COMPONENT_ACCEPTS_GCS_CONTROL"] = 524288] = "MAV_PROTOCOL_CAPABILITY_COMPONENT_ACCEPTS_GCS_CONTROL";
|
|
559
|
+
// Autopilot has a connected gripper. MAVLink Grippers would set MAV_TYPE_GRIPPER instead.
|
|
560
|
+
MAV_PROTOCOL_CAPABILITYEnum[MAV_PROTOCOL_CAPABILITYEnum["MAV_PROTOCOL_CAPABILITY_GRIPPER"] = 1048576] = "MAV_PROTOCOL_CAPABILITY_GRIPPER";
|
|
561
|
+
})(MAV_PROTOCOL_CAPABILITYEnum || (MAV_PROTOCOL_CAPABILITYEnum = {}));
|
|
562
|
+
// These values define the type of firmware release. These values indicate the first version or release of this type. For example the first alpha release would be 64, the second would be 65.
|
|
563
|
+
var FIRMWARE_VERSION_TYPEEnum;
|
|
564
|
+
(function (FIRMWARE_VERSION_TYPEEnum) {
|
|
565
|
+
// development release
|
|
566
|
+
FIRMWARE_VERSION_TYPEEnum[FIRMWARE_VERSION_TYPEEnum["FIRMWARE_VERSION_TYPE_DEV"] = 0] = "FIRMWARE_VERSION_TYPE_DEV";
|
|
567
|
+
// alpha release
|
|
568
|
+
FIRMWARE_VERSION_TYPEEnum[FIRMWARE_VERSION_TYPEEnum["FIRMWARE_VERSION_TYPE_ALPHA"] = 64] = "FIRMWARE_VERSION_TYPE_ALPHA";
|
|
569
|
+
// beta release
|
|
570
|
+
FIRMWARE_VERSION_TYPEEnum[FIRMWARE_VERSION_TYPEEnum["FIRMWARE_VERSION_TYPE_BETA"] = 128] = "FIRMWARE_VERSION_TYPE_BETA";
|
|
571
|
+
// release candidate
|
|
572
|
+
FIRMWARE_VERSION_TYPEEnum[FIRMWARE_VERSION_TYPEEnum["FIRMWARE_VERSION_TYPE_RC"] = 192] = "FIRMWARE_VERSION_TYPE_RC";
|
|
573
|
+
// official stable release
|
|
574
|
+
FIRMWARE_VERSION_TYPEEnum[FIRMWARE_VERSION_TYPEEnum["FIRMWARE_VERSION_TYPE_OFFICIAL"] = 255] = "FIRMWARE_VERSION_TYPE_OFFICIAL";
|
|
575
|
+
})(FIRMWARE_VERSION_TYPEEnum || (FIRMWARE_VERSION_TYPEEnum = {}));
|
|
504
576
|
|
|
505
577
|
// Auto-generated TypeScript message interfaces for standard dialect
|
|
506
578
|
// Type guard functions
|
|
507
579
|
function isHeartbeat(msg) {
|
|
508
580
|
return msg.message_name === 'HEARTBEAT';
|
|
509
581
|
}
|
|
510
|
-
function
|
|
511
|
-
return msg.message_name === '
|
|
582
|
+
function isGlobalPositionInt(msg) {
|
|
583
|
+
return msg.message_name === 'GLOBAL_POSITION_INT';
|
|
584
|
+
}
|
|
585
|
+
function isAutopilotVersion(msg) {
|
|
586
|
+
return msg.message_name === 'AUTOPILOT_VERSION';
|
|
512
587
|
}
|
|
513
588
|
|
|
514
589
|
// Auto-generated decoder and parser for standard dialect
|
|
@@ -516,7 +591,8 @@ function isProtocolVersion(msg) {
|
|
|
516
591
|
// Embedded MAVLink CRC implementation
|
|
517
592
|
const CRC_EXTRA = {
|
|
518
593
|
0: 50,
|
|
519
|
-
|
|
594
|
+
33: 104,
|
|
595
|
+
148: 106
|
|
520
596
|
};
|
|
521
597
|
class MAVLinkCRC {
|
|
522
598
|
static calculate(data, crcExtra) {
|
|
@@ -679,7 +755,11 @@ class DialectParser {
|
|
|
679
755
|
const result = {};
|
|
680
756
|
const view = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);
|
|
681
757
|
let offset = 0;
|
|
682
|
-
|
|
758
|
+
// MAVLink v2 wire format: fields are sorted by type size (largest first)
|
|
759
|
+
// Extension fields come after core fields and maintain their XML order
|
|
760
|
+
// See: https://mavlink.io/en/guide/serialization.html#field_reordering
|
|
761
|
+
const sortedFields = this.sortFieldsByWireOrder(fields);
|
|
762
|
+
for (const field of sortedFields) {
|
|
683
763
|
if (offset >= payload.length) {
|
|
684
764
|
result[field.name] = this.getDefaultValue(field);
|
|
685
765
|
}
|
|
@@ -691,6 +771,43 @@ class DialectParser {
|
|
|
691
771
|
}
|
|
692
772
|
return result;
|
|
693
773
|
}
|
|
774
|
+
// Sort fields by MAVLink v2 wire order: by type size descending, extensions last
|
|
775
|
+
// Uses stable sort to preserve original order for same-size fields
|
|
776
|
+
sortFieldsByWireOrder(fields) {
|
|
777
|
+
// Separate core fields and extension fields
|
|
778
|
+
const coreFields = [];
|
|
779
|
+
const extensionFields = [];
|
|
780
|
+
fields.forEach((field, index) => {
|
|
781
|
+
if (field.extension) {
|
|
782
|
+
extensionFields.push(field);
|
|
783
|
+
}
|
|
784
|
+
else {
|
|
785
|
+
coreFields.push({ field, originalIndex: index });
|
|
786
|
+
}
|
|
787
|
+
});
|
|
788
|
+
// Stable sort core fields by type size (descending)
|
|
789
|
+
// Arrays are sorted by element type size, not total array size
|
|
790
|
+
coreFields.sort((a, b) => {
|
|
791
|
+
const sizeA = this.getFieldTypeSize(a.field);
|
|
792
|
+
const sizeB = this.getFieldTypeSize(b.field);
|
|
793
|
+
if (sizeB !== sizeA) {
|
|
794
|
+
return sizeB - sizeA; // Descending order (largest first)
|
|
795
|
+
}
|
|
796
|
+
// Same size: maintain original XML order (stable sort)
|
|
797
|
+
return a.originalIndex - b.originalIndex;
|
|
798
|
+
});
|
|
799
|
+
// Extension fields maintain their XML order and come after core fields
|
|
800
|
+
return [...coreFields.map(c => c.field), ...extensionFields];
|
|
801
|
+
}
|
|
802
|
+
// Get the size of a single element of a field type (for wire order sorting)
|
|
803
|
+
getFieldTypeSize(field) {
|
|
804
|
+
let baseType = field.type;
|
|
805
|
+
// Strip array notation to get base type (arrays sort by element type, not total size)
|
|
806
|
+
if (baseType.includes('[') && baseType.includes(']')) {
|
|
807
|
+
baseType = baseType.substring(0, baseType.indexOf('['));
|
|
808
|
+
}
|
|
809
|
+
return this.getSingleFieldSize(baseType);
|
|
810
|
+
}
|
|
694
811
|
getDefaultValue(field) {
|
|
695
812
|
const isArray = field.arrayLength !== undefined && field.arrayLength > 1;
|
|
696
813
|
if (isArray) {
|
|
@@ -897,15 +1014,19 @@ class DialectParser {
|
|
|
897
1014
|
}
|
|
898
1015
|
}
|
|
899
1016
|
serializePayload(message, fields) {
|
|
1017
|
+
// MAVLink v2 wire format: fields must be sorted by type size (largest first)
|
|
1018
|
+
// Extension fields come after core fields and maintain their XML order
|
|
1019
|
+
// See: https://mavlink.io/en/guide/serialization.html#field_reordering
|
|
1020
|
+
const sortedFields = this.sortFieldsByWireOrder(fields);
|
|
900
1021
|
// Calculate total payload size
|
|
901
1022
|
let totalSize = 0;
|
|
902
|
-
for (const field of
|
|
1023
|
+
for (const field of sortedFields) {
|
|
903
1024
|
totalSize += this.getFieldSize(field);
|
|
904
1025
|
}
|
|
905
1026
|
const buffer = new ArrayBuffer(totalSize);
|
|
906
1027
|
const view = new DataView(buffer);
|
|
907
1028
|
let offset = 0;
|
|
908
|
-
for (const field of
|
|
1029
|
+
for (const field of sortedFields) {
|
|
909
1030
|
const value = message[field.name];
|
|
910
1031
|
const bytesWritten = this.serializeField(view, offset, field, value);
|
|
911
1032
|
offset += bytesWritten;
|
|
@@ -917,8 +1038,7 @@ class DialectParser {
|
|
|
917
1038
|
let corePayloadSize = 0;
|
|
918
1039
|
let extensionStartOffset = 0;
|
|
919
1040
|
let hasExtensions = false;
|
|
920
|
-
|
|
921
|
-
for (const field of fields) {
|
|
1041
|
+
for (const field of sortedFields) {
|
|
922
1042
|
const fieldSize = this.getFieldSize(field);
|
|
923
1043
|
// Check if this is an extension field using proper XML-based detection
|
|
924
1044
|
const isExtensionField = field.extension === true;
|
|
@@ -1209,31 +1329,104 @@ const MESSAGE_DEFINITIONS = [
|
|
|
1209
1329
|
]
|
|
1210
1330
|
},
|
|
1211
1331
|
{
|
|
1212
|
-
id:
|
|
1213
|
-
name: '
|
|
1332
|
+
id: 33,
|
|
1333
|
+
name: 'GLOBAL_POSITION_INT',
|
|
1214
1334
|
fields: [
|
|
1215
1335
|
{
|
|
1216
|
-
name: '
|
|
1217
|
-
type: '
|
|
1218
|
-
arrayLength: 8,
|
|
1336
|
+
name: 'time_boot_ms',
|
|
1337
|
+
type: 'uint32_t',
|
|
1219
1338
|
},
|
|
1220
1339
|
{
|
|
1221
|
-
name: '
|
|
1222
|
-
type: '
|
|
1223
|
-
arrayLength: 8,
|
|
1340
|
+
name: 'lat',
|
|
1341
|
+
type: 'int32_t',
|
|
1224
1342
|
},
|
|
1225
1343
|
{
|
|
1226
|
-
name: '
|
|
1344
|
+
name: 'lon',
|
|
1345
|
+
type: 'int32_t',
|
|
1346
|
+
},
|
|
1347
|
+
{
|
|
1348
|
+
name: 'alt',
|
|
1349
|
+
type: 'int32_t',
|
|
1350
|
+
},
|
|
1351
|
+
{
|
|
1352
|
+
name: 'relative_alt',
|
|
1353
|
+
type: 'int32_t',
|
|
1354
|
+
},
|
|
1355
|
+
{
|
|
1356
|
+
name: 'vx',
|
|
1357
|
+
type: 'int16_t',
|
|
1358
|
+
},
|
|
1359
|
+
{
|
|
1360
|
+
name: 'vy',
|
|
1361
|
+
type: 'int16_t',
|
|
1362
|
+
},
|
|
1363
|
+
{
|
|
1364
|
+
name: 'vz',
|
|
1365
|
+
type: 'int16_t',
|
|
1366
|
+
},
|
|
1367
|
+
{
|
|
1368
|
+
name: 'hdg',
|
|
1227
1369
|
type: 'uint16_t',
|
|
1228
1370
|
},
|
|
1371
|
+
]
|
|
1372
|
+
},
|
|
1373
|
+
{
|
|
1374
|
+
id: 148,
|
|
1375
|
+
name: 'AUTOPILOT_VERSION',
|
|
1376
|
+
fields: [
|
|
1377
|
+
{
|
|
1378
|
+
name: 'capabilities',
|
|
1379
|
+
type: 'uint64_t',
|
|
1380
|
+
},
|
|
1381
|
+
{
|
|
1382
|
+
name: 'uid',
|
|
1383
|
+
type: 'uint64_t',
|
|
1384
|
+
},
|
|
1385
|
+
{
|
|
1386
|
+
name: 'flight_sw_version',
|
|
1387
|
+
type: 'uint32_t',
|
|
1388
|
+
},
|
|
1389
|
+
{
|
|
1390
|
+
name: 'middleware_sw_version',
|
|
1391
|
+
type: 'uint32_t',
|
|
1392
|
+
},
|
|
1393
|
+
{
|
|
1394
|
+
name: 'os_sw_version',
|
|
1395
|
+
type: 'uint32_t',
|
|
1396
|
+
},
|
|
1397
|
+
{
|
|
1398
|
+
name: 'board_version',
|
|
1399
|
+
type: 'uint32_t',
|
|
1400
|
+
},
|
|
1229
1401
|
{
|
|
1230
|
-
name: '
|
|
1402
|
+
name: 'vendor_id',
|
|
1231
1403
|
type: 'uint16_t',
|
|
1232
1404
|
},
|
|
1233
1405
|
{
|
|
1234
|
-
name: '
|
|
1406
|
+
name: 'product_id',
|
|
1235
1407
|
type: 'uint16_t',
|
|
1236
1408
|
},
|
|
1409
|
+
{
|
|
1410
|
+
name: 'flight_custom_version',
|
|
1411
|
+
type: 'uint8_t',
|
|
1412
|
+
arrayLength: 8,
|
|
1413
|
+
},
|
|
1414
|
+
{
|
|
1415
|
+
name: 'middleware_custom_version',
|
|
1416
|
+
type: 'uint8_t',
|
|
1417
|
+
arrayLength: 8,
|
|
1418
|
+
},
|
|
1419
|
+
{
|
|
1420
|
+
name: 'os_custom_version',
|
|
1421
|
+
type: 'uint8_t',
|
|
1422
|
+
arrayLength: 8,
|
|
1423
|
+
},
|
|
1424
|
+
{
|
|
1425
|
+
name: 'uid2',
|
|
1426
|
+
type: 'uint8_t',
|
|
1427
|
+
arrayLength: 18,
|
|
1428
|
+
extension: true,
|
|
1429
|
+
},
|
|
1237
1430
|
]
|
|
1238
1431
|
},
|
|
1239
1432
|
];
|
|
@@ -1293,5 +1486,5 @@ class StandardSerializer {
|
|
|
1293
1486
|
}
|
|
1294
1487
|
}
|
|
1295
1488
|
|
|
1296
|
-
export { MAV_AUTOPILOTEnum, MAV_BOOLEnum, MAV_COMPONENTEnum, MAV_MODE_FLAGEnum, MAV_MODE_FLAG_DECODE_POSITIONEnum, MAV_STATEEnum, MAV_TYPEEnum, StandardParser, StandardSerializer,
|
|
1489
|
+
export { FIRMWARE_VERSION_TYPEEnum, MAV_AUTOPILOTEnum, MAV_BOOLEnum, MAV_COMPONENTEnum, MAV_MODE_FLAGEnum, MAV_MODE_FLAG_DECODE_POSITIONEnum, MAV_PROTOCOL_CAPABILITYEnum, MAV_STATEEnum, MAV_TYPEEnum, StandardParser, StandardSerializer, isAutopilotVersion, isGlobalPositionInt, isHeartbeat };
|
|
1297
1490
|
//# sourceMappingURL=index.js.map
|