@aircast-4g/mavlink 1.1.3 → 1.1.5

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.
Files changed (95) hide show
  1. package/dist/dialects/ardupilotmega/index.d.ts +6373 -5
  2. package/dist/dialects/ardupilotmega/index.js +17515 -0
  3. package/dist/dialects/ardupilotmega/index.js.map +1 -0
  4. package/dist/dialects/common/index.d.ts +4817 -5
  5. package/dist/dialects/common/index.js +13420 -0
  6. package/dist/dialects/common/index.js.map +1 -0
  7. package/dist/dialects/minimal/index.d.ts +295 -5
  8. package/dist/dialects/minimal/index.js +570 -0
  9. package/dist/dialects/minimal/index.js.map +1 -0
  10. package/dist/dialects/paparazzi/index.d.ts +4851 -0
  11. package/dist/dialects/paparazzi/index.js +13518 -0
  12. package/dist/dialects/paparazzi/index.js.map +1 -0
  13. package/dist/dialects/python_array_test/index.d.ts +4886 -0
  14. package/dist/dialects/python_array_test/index.js +13665 -0
  15. package/dist/dialects/python_array_test/index.js.map +1 -0
  16. package/dist/dialects/standard/index.d.ts +301 -0
  17. package/dist/dialects/standard/index.js +578 -0
  18. package/dist/dialects/standard/index.js.map +1 -0
  19. package/dist/dialects/test/index.d.ts +53 -0
  20. package/dist/dialects/test/index.js +120 -0
  21. package/dist/dialects/test/index.js.map +1 -0
  22. package/dist/index.d.ts +345 -8
  23. package/dist/{index.js → mavlink.cjs.js} +8 -18
  24. package/dist/mavlink.cjs.js.map +1 -0
  25. package/dist/mavlink.esm.js +11 -0
  26. package/dist/mavlink.esm.js.map +1 -0
  27. package/dist/mavlink.iife.js +17 -0
  28. package/dist/mavlink.iife.js.map +1 -0
  29. package/package.json +52 -18
  30. package/dist/cli.d.ts +0 -3
  31. package/dist/cli.d.ts.map +0 -1
  32. package/dist/cli.js +0 -174
  33. package/dist/cli.js.map +0 -1
  34. package/dist/dialects/ardupilotmega/decoder.js +0 -11930
  35. package/dist/dialects/ardupilotmega/enums.d.ts +0 -4631
  36. package/dist/dialects/ardupilotmega/messages.d.ts +0 -8088
  37. package/dist/dialects/ardupilotmega/types.d.ts +0 -2833
  38. package/dist/dialects/common/decoder.js +0 -9098
  39. package/dist/dialects/common/enums.d.ts +0 -3632
  40. package/dist/dialects/common/messages.d.ts +0 -6114
  41. package/dist/dialects/common/types.d.ts +0 -2159
  42. package/dist/dialects/minimal/decoder.js +0 -67
  43. package/dist/dialects/minimal/enums.d.ts +0 -494
  44. package/dist/dialects/minimal/messages.d.ts +0 -62
  45. package/dist/dialects/minimal/types.d.ts +0 -272
  46. package/dist/generator/batch-processor.d.ts +0 -17
  47. package/dist/generator/batch-processor.d.ts.map +0 -1
  48. package/dist/generator/batch-processor.js +0 -141
  49. package/dist/generator/batch-processor.js.map +0 -1
  50. package/dist/generator/generator.d.ts +0 -16
  51. package/dist/generator/generator.d.ts.map +0 -1
  52. package/dist/generator/generator.js +0 -136
  53. package/dist/generator/generator.js.map +0 -1
  54. package/dist/generator/template-engine.d.ts +0 -14
  55. package/dist/generator/template-engine.d.ts.map +0 -1
  56. package/dist/generator/template-engine.js +0 -270
  57. package/dist/generator/template-engine.js.map +0 -1
  58. package/dist/generator/type-converter.d.ts +0 -15
  59. package/dist/generator/type-converter.d.ts.map +0 -1
  60. package/dist/generator/type-converter.js +0 -179
  61. package/dist/generator/type-converter.js.map +0 -1
  62. package/dist/generator/xml-parser.d.ts +0 -13
  63. package/dist/generator/xml-parser.d.ts.map +0 -1
  64. package/dist/generator/xml-parser.js +0 -170
  65. package/dist/generator/xml-parser.js.map +0 -1
  66. package/dist/index.d.ts.map +0 -1
  67. package/dist/index.js.map +0 -1
  68. package/dist/parser/crc.d.ts +0 -7
  69. package/dist/parser/crc.d.ts.map +0 -1
  70. package/dist/parser/crc.js +0 -182
  71. package/dist/parser/crc.js.map +0 -1
  72. package/dist/parser/frame-parser.d.ts +0 -15
  73. package/dist/parser/frame-parser.d.ts.map +0 -1
  74. package/dist/parser/frame-parser.js +0 -82
  75. package/dist/parser/frame-parser.js.map +0 -1
  76. package/dist/parser/index.d.ts +0 -6
  77. package/dist/parser/index.d.ts.map +0 -1
  78. package/dist/parser/index.js +0 -28
  79. package/dist/parser/index.js.map +0 -1
  80. package/dist/parser/mavlink-parser.d.ts +0 -35
  81. package/dist/parser/mavlink-parser.d.ts.map +0 -1
  82. package/dist/parser/mavlink-parser.js +0 -215
  83. package/dist/parser/mavlink-parser.js.map +0 -1
  84. package/dist/parser/message-decoder.d.ts +0 -47
  85. package/dist/parser/message-decoder.d.ts.map +0 -1
  86. package/dist/parser/message-decoder.js +0 -288
  87. package/dist/parser/message-decoder.js.map +0 -1
  88. package/dist/parser/types.d.ts +0 -60
  89. package/dist/parser/types.d.ts.map +0 -1
  90. package/dist/parser/types.js +0 -13
  91. package/dist/parser/types.js.map +0 -1
  92. package/dist/types.d.ts +0 -110
  93. package/dist/types.d.ts.map +0 -1
  94. package/dist/types.js +0 -3
  95. package/dist/types.js.map +0 -1
@@ -1,215 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAVLinkParser = void 0;
4
- // Main MAVLink parser that processes raw bytes and outputs JSON messages
5
- const frame_parser_1 = require("./frame-parser");
6
- const message_decoder_1 = require("./message-decoder");
7
- const crc_1 = require("./crc");
8
- const types_1 = require("./types");
9
- class MAVLinkParser {
10
- constructor(options = {}) {
11
- this.bufferLength = 0;
12
- this.frameParser = new frame_parser_1.MAVLinkFrameParser();
13
- this.messageDecoder = new message_decoder_1.MAVLinkMessageDecoder();
14
- this.buffer = new Uint8Array(1024); // Initial buffer size
15
- this.options = {
16
- validateCRC: true,
17
- allowProtocolV1: true,
18
- allowProtocolV2: true,
19
- maxBufferSize: 4096,
20
- ...options
21
- };
22
- }
23
- /**
24
- * Parse raw bytes from data channel and return JSON messages
25
- * @param data Raw bytes from data channel (WebRTC, WebSocket, etc.)
26
- * @returns Array of parsed MAVLink messages in JSON format
27
- */
28
- parseBytes(data) {
29
- const messages = [];
30
- try {
31
- // Append new data to buffer
32
- this.appendToBuffer(data);
33
- // Parse all complete frames from buffer
34
- let processedBytes = 0;
35
- while (processedBytes < this.bufferLength) {
36
- const parseResult = this.tryParseFrame(processedBytes);
37
- if (parseResult === null) {
38
- // No complete frame found, wait for more data
39
- break;
40
- }
41
- if (parseResult instanceof Error) {
42
- // Parse error, skip this byte and continue
43
- processedBytes++;
44
- continue;
45
- }
46
- const { frame, bytesConsumed } = parseResult;
47
- processedBytes += bytesConsumed;
48
- // Validate CRC if enabled
49
- let crcValid = true;
50
- if (this.options.validateCRC) {
51
- crcValid = this.validateFrameCRC(frame);
52
- if (!crcValid) {
53
- console.warn(`CRC validation failed for message ${frame.message_id}`);
54
- continue;
55
- }
56
- }
57
- // Decode message
58
- try {
59
- const frameWithCRC = { ...frame, crc_ok: crcValid };
60
- const message = this.messageDecoder.decode(frameWithCRC);
61
- messages.push(message);
62
- }
63
- catch (error) {
64
- // Message decode error, continue with next frame
65
- console.warn(`Failed to decode message ${frame.message_id}:`, error);
66
- }
67
- }
68
- // Remove processed bytes from buffer
69
- if (processedBytes > 0) {
70
- this.buffer.copyWithin(0, processedBytes, this.bufferLength);
71
- this.bufferLength -= processedBytes;
72
- }
73
- }
74
- catch (error) {
75
- throw new types_1.ParserError(`Parser error: ${error instanceof Error ? error.message : 'Unknown error'}`);
76
- }
77
- return messages;
78
- }
79
- /**
80
- * Parse a single raw message (for testing or when you have complete frames)
81
- */
82
- parseMessage(data) {
83
- try {
84
- const frame = this.frameParser.parseFrame(data);
85
- let crcValid = true;
86
- if (this.options.validateCRC) {
87
- crcValid = this.validateFrameCRC(frame);
88
- if (!crcValid) {
89
- throw new types_1.ParserError('CRC validation failed');
90
- }
91
- }
92
- const frameWithCRC = { ...frame, crc_ok: crcValid };
93
- return this.messageDecoder.decode(frameWithCRC);
94
- }
95
- catch (error) {
96
- throw new types_1.ParserError(`Failed to parse message: ${error instanceof Error ? error.message : 'Unknown error'}`);
97
- }
98
- }
99
- appendToBuffer(data) {
100
- // Check if we need to expand the buffer
101
- if (this.buffer.length - this.bufferLength < data.length) {
102
- // Check max buffer size
103
- if (this.bufferLength + data.length > this.options.maxBufferSize) {
104
- // Reset buffer to prevent memory issues
105
- this.buffer = new Uint8Array(this.options.maxBufferSize);
106
- this.bufferLength = 0;
107
- }
108
- else {
109
- // Expand buffer
110
- const newBuffer = new Uint8Array(this.buffer.length * 2);
111
- newBuffer.set(this.buffer.subarray(0, this.bufferLength));
112
- this.buffer = newBuffer;
113
- }
114
- }
115
- // Append new data
116
- this.buffer.set(data, this.bufferLength);
117
- this.bufferLength += data.length;
118
- }
119
- tryParseFrame(offset) {
120
- if (offset >= this.bufferLength) {
121
- return null;
122
- }
123
- // Find next frame start
124
- let startIndex = -1;
125
- for (let i = offset; i < this.bufferLength; i++) {
126
- const byte = this.buffer[i];
127
- if (byte === 0xFE || byte === 0xFD) { // MAVLink v1 or v2 magic
128
- startIndex = i;
129
- break;
130
- }
131
- }
132
- if (startIndex === -1) {
133
- // No frame start found
134
- return null;
135
- }
136
- try {
137
- // Try to parse frame from start position
138
- const frameData = this.buffer.subarray(startIndex, this.bufferLength);
139
- const frame = this.frameParser.parseFrame(frameData);
140
- // Frame parsed successfully
141
- const frameLength = this.getFrameLength(frame);
142
- const bytesConsumed = startIndex - offset + frameLength;
143
- return { frame, bytesConsumed };
144
- }
145
- catch (error) {
146
- // Not enough data or parse error
147
- if (error instanceof Error && error.message.includes('Insufficient data')) {
148
- return null; // Wait for more data
149
- }
150
- return error; // Parse error, will skip this byte
151
- }
152
- }
153
- getFrameLength(frame) {
154
- // Calculate total frame length including header, payload, checksum, and signature
155
- const headerSize = frame.protocol_version === 2 ? 10 : 6;
156
- const payloadSize = frame.payload.length;
157
- const checksumSize = 2;
158
- const signatureSize = frame.signature ? 13 : 0;
159
- return headerSize + payloadSize + checksumSize + signatureSize;
160
- }
161
- validateFrameCRC(frame) {
162
- try {
163
- // Reconstruct the data for CRC calculation
164
- const headerSize = frame.protocol_version === 2 ? 9 : 5; // Exclude magic byte
165
- const data = new Uint8Array(headerSize + frame.payload.length);
166
- let offset = 0;
167
- if (frame.protocol_version === 2) {
168
- data[offset++] = frame.payload.length;
169
- data[offset++] = frame.incompatible_flags || 0;
170
- data[offset++] = frame.compatible_flags || 0;
171
- data[offset++] = frame.sequence;
172
- data[offset++] = frame.system_id;
173
- data[offset++] = frame.component_id;
174
- data[offset++] = frame.message_id & 0xFF;
175
- data[offset++] = (frame.message_id >> 8) & 0xFF;
176
- data[offset++] = (frame.message_id >> 16) & 0xFF;
177
- }
178
- else {
179
- data[offset++] = frame.payload.length;
180
- data[offset++] = frame.sequence;
181
- data[offset++] = frame.system_id;
182
- data[offset++] = frame.component_id;
183
- data[offset++] = frame.message_id & 0xFF;
184
- }
185
- // Add payload
186
- data.set(frame.payload, offset);
187
- // Calculate CRC with extra byte
188
- const crcExtra = crc_1.CRCCalculator.getCRCExtra(frame.message_id);
189
- const calculatedCRC = crc_1.CRCCalculator.calculate(data, crcExtra);
190
- return calculatedCRC === frame.checksum;
191
- }
192
- catch (error) {
193
- console.warn('CRC validation error:', error);
194
- return false;
195
- }
196
- }
197
- /**
198
- * Reset parser state (useful when connection is reset)
199
- */
200
- reset() {
201
- this.buffer.fill(0);
202
- this.bufferLength = 0;
203
- }
204
- /**
205
- * Get parser statistics
206
- */
207
- getStats() {
208
- return {
209
- bufferSize: this.buffer.length,
210
- bufferUsed: this.bufferLength
211
- };
212
- }
213
- }
214
- exports.MAVLinkParser = MAVLinkParser;
215
- //# sourceMappingURL=mavlink-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mavlink-parser.js","sourceRoot":"","sources":["../../src/parser/mavlink-parser.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- import { ParsedMAVLinkMessage, MAVLinkFrame } from './types';
2
- interface MessageDefinition {
3
- id: number;
4
- name: string;
5
- fields: FieldDefinition[];
6
- }
7
- interface FieldDefinition {
8
- name: string;
9
- type: string;
10
- arrayLength?: number;
11
- extension?: boolean;
12
- }
13
- export declare class MAVLinkMessageDecoder {
14
- private messageDefinitions;
15
- private definitionsLoaded;
16
- constructor();
17
- decode(frame: MAVLinkFrame & {
18
- crc_ok?: boolean;
19
- protocol_version?: 1 | 2;
20
- }): ParsedMAVLinkMessage;
21
- private decodePayload;
22
- private getDefaultValue;
23
- private decodeField;
24
- private decodeSingleValue;
25
- /**
26
- * Load all available generated message definitions from built-in dialects
27
- * This enables decoding of 319+ messages instead of just basic ones
28
- */
29
- loadGeneratedDefinitions(): Promise<void>;
30
- private initializeFromGeneratedDefinitions;
31
- addCustomMessageDefinition(id: number, name: string, fields: FieldDefinition[]): void;
32
- getMessageDefinition(id: number): MessageDefinition | undefined;
33
- getSupportedMessageIds(): number[];
34
- isDefinitionsLoaded(): boolean;
35
- /**
36
- * Wait for definitions to be loaded before proceeding
37
- * Returns immediately if already loaded
38
- */
39
- waitForDefinitions(): Promise<void>;
40
- /**
41
- * Factory method to create decoder with all generated definitions loaded
42
- * @returns Promise that resolves to decoder with 319+ message definitions
43
- */
44
- static createWithGeneratedDefinitions(): Promise<MAVLinkMessageDecoder>;
45
- }
46
- export {};
47
- //# sourceMappingURL=message-decoder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-decoder.d.ts","sourceRoot":"","sources":["../../src/parser/message-decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE7D,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,iBAAiB,CAAkB;;IAU3C,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;KAAE,GAAG,oBAAoB;IAyClG,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,iBAAiB;IA2DzB;;;OAGG;IACU,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;YAIxC,kCAAkC;IAgCzC,0BAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IAIrF,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI/D,sBAAsB,IAAI,MAAM,EAAE;IAIlC,mBAAmB,IAAI,OAAO;IAIrC;;;OAGG;IACU,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBhD;;;OAGG;WACiB,8BAA8B,IAAI,OAAO,CAAC,qBAAqB,CAAC;CAKrF"}
@@ -1,288 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.MAVLinkMessageDecoder = void 0;
37
- class MAVLinkMessageDecoder {
38
- constructor() {
39
- this.messageDefinitions = new Map();
40
- this.definitionsLoaded = false;
41
- // Start loading generated definitions immediately
42
- this.loadGeneratedDefinitions().catch(error => {
43
- console.warn('Failed to load generated message definitions:', error);
44
- console.warn('Messages will show as UNKNOWN until definitions are loaded');
45
- });
46
- }
47
- decode(frame) {
48
- const messageDef = this.messageDefinitions.get(frame.message_id);
49
- // Determine protocol version from magic byte if not provided
50
- const protocolVersion = frame.protocol_version || (frame.magic === 0xFD ? 2 : 1);
51
- if (!messageDef) {
52
- return {
53
- timestamp: Date.now(),
54
- system_id: frame.system_id,
55
- component_id: frame.component_id,
56
- message_id: frame.message_id,
57
- message_name: `UNKNOWN_${frame.message_id}`,
58
- sequence: frame.sequence,
59
- payload: {
60
- raw_payload: Array.from(frame.payload)
61
- },
62
- protocol_version: protocolVersion,
63
- checksum: frame.checksum,
64
- crc_ok: frame.crc_ok !== false,
65
- signature: frame.signature
66
- };
67
- }
68
- const payload = this.decodePayload(frame.payload, messageDef.fields);
69
- return {
70
- timestamp: Date.now(),
71
- system_id: frame.system_id,
72
- component_id: frame.component_id,
73
- message_id: frame.message_id,
74
- message_name: messageDef.name,
75
- sequence: frame.sequence,
76
- payload,
77
- protocol_version: protocolVersion,
78
- checksum: frame.checksum,
79
- crc_ok: frame.crc_ok !== false,
80
- signature: frame.signature
81
- };
82
- }
83
- decodePayload(payload, fields) {
84
- const result = {};
85
- const view = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);
86
- let offset = 0;
87
- for (const field of fields) {
88
- if (offset >= payload.length) {
89
- // Set default value for missing fields
90
- result[field.name] = this.getDefaultValue(field);
91
- }
92
- else {
93
- const { value, bytesRead } = this.decodeField(view, offset, field);
94
- result[field.name] = value;
95
- offset += bytesRead;
96
- }
97
- }
98
- return result;
99
- }
100
- getDefaultValue(field) {
101
- const isArray = field.arrayLength !== undefined && field.arrayLength > 1;
102
- if (isArray) {
103
- return [];
104
- }
105
- switch (field.type) {
106
- case 'uint8_t':
107
- case 'int8_t':
108
- case 'uint16_t':
109
- case 'int16_t':
110
- case 'uint32_t':
111
- case 'int32_t':
112
- case 'float':
113
- case 'double':
114
- return 0;
115
- case 'uint64_t':
116
- case 'int64_t':
117
- return 0n;
118
- case 'char':
119
- return '\0';
120
- default:
121
- if (field.type.startsWith('char[') || field.type.includes('[]')) {
122
- return '';
123
- }
124
- return 0;
125
- }
126
- }
127
- decodeField(view, offset, field) {
128
- const isArray = field.arrayLength !== undefined;
129
- const arrayLength = field.arrayLength || 1;
130
- if (isArray && arrayLength > 1) {
131
- const values = [];
132
- let totalBytes = 0;
133
- for (let i = 0; i < arrayLength; i++) {
134
- if (offset + totalBytes >= view.byteLength)
135
- break;
136
- const { value, bytesRead } = this.decodeSingleValue(view, offset + totalBytes, field.type);
137
- values.push(value);
138
- totalBytes += bytesRead;
139
- }
140
- return { value: values, bytesRead: totalBytes };
141
- }
142
- else {
143
- return this.decodeSingleValue(view, offset, field.type);
144
- }
145
- }
146
- decodeSingleValue(view, offset, type) {
147
- try {
148
- switch (type) {
149
- case 'uint8_t':
150
- return { value: view.getUint8(offset), bytesRead: 1 };
151
- case 'int8_t':
152
- return { value: view.getInt8(offset), bytesRead: 1 };
153
- case 'uint16_t':
154
- return { value: view.getUint16(offset, true), bytesRead: 2 };
155
- case 'int16_t':
156
- return { value: view.getInt16(offset, true), bytesRead: 2 };
157
- case 'uint32_t':
158
- return { value: view.getUint32(offset, true), bytesRead: 4 };
159
- case 'int32_t':
160
- return { value: view.getInt32(offset, true), bytesRead: 4 };
161
- case 'uint64_t':
162
- return { value: view.getBigUint64(offset, true), bytesRead: 8 };
163
- case 'int64_t':
164
- return { value: view.getBigInt64(offset, true), bytesRead: 8 };
165
- case 'float':
166
- return { value: view.getFloat32(offset, true), bytesRead: 4 };
167
- case 'double':
168
- return { value: view.getFloat64(offset, true), bytesRead: 8 };
169
- case 'char': {
170
- const charCode = view.getUint8(offset);
171
- return { value: charCode === 0 ? '\0' : String.fromCharCode(charCode), bytesRead: 1 };
172
- }
173
- default:
174
- if (type.startsWith('char[') && type.endsWith(']')) {
175
- const length = parseInt(type.slice(5, -1));
176
- const chars = [];
177
- for (let i = 0; i < length && offset + i < view.byteLength; i++) {
178
- const charCode = view.getUint8(offset + i);
179
- if (charCode === 0)
180
- break;
181
- chars.push(String.fromCharCode(charCode));
182
- }
183
- return { value: chars.join(''), bytesRead: length };
184
- }
185
- else if (type.includes('[') && type.includes(']')) {
186
- const baseType = type.substring(0, type.indexOf('['));
187
- const arrayLength = parseInt(type.substring(type.indexOf('[') + 1, type.indexOf(']')));
188
- const values = [];
189
- let totalBytes = 0;
190
- for (let i = 0; i < arrayLength; i++) {
191
- if (offset + totalBytes >= view.byteLength)
192
- break;
193
- const { value, bytesRead } = this.decodeSingleValue(view, offset + totalBytes, baseType);
194
- values.push(value);
195
- totalBytes += bytesRead;
196
- }
197
- return { value: values, bytesRead: totalBytes };
198
- }
199
- return { value: view.getUint8(offset), bytesRead: 1 };
200
- }
201
- }
202
- catch (error) {
203
- return { value: 0, bytesRead: 1 };
204
- }
205
- }
206
- /**
207
- * Load all available generated message definitions from built-in dialects
208
- * This enables decoding of 319+ messages instead of just basic ones
209
- */
210
- async loadGeneratedDefinitions() {
211
- await this.initializeFromGeneratedDefinitions();
212
- }
213
- async initializeFromGeneratedDefinitions() {
214
- try {
215
- // Load decoder definitions from dist folder
216
- const dialects = ['common', 'ardupilotmega', 'minimal'];
217
- const allDefinitions = new Map();
218
- for (const dialectName of dialects) {
219
- try {
220
- const decoderModule = await Promise.resolve(`${`../../dist/dialects/${dialectName}/decoder`}`).then(s => __importStar(require(s)));
221
- const exportName = `${dialectName.toUpperCase()}_MESSAGE_DEFINITIONS`;
222
- const MESSAGE_DEFINITIONS = decoderModule[exportName];
223
- if (MESSAGE_DEFINITIONS) {
224
- for (const def of MESSAGE_DEFINITIONS) {
225
- if (!allDefinitions.has(def.id)) {
226
- allDefinitions.set(def.id, def);
227
- }
228
- }
229
- }
230
- }
231
- catch (error) {
232
- console.warn(`Failed to load ${dialectName} decoder definitions:`, error);
233
- }
234
- }
235
- this.messageDefinitions = allDefinitions;
236
- this.definitionsLoaded = true;
237
- console.log(`Loaded ${this.messageDefinitions.size} message definitions from generated decoders`);
238
- }
239
- catch (error) {
240
- console.error('Failed to load generated definitions:', error);
241
- this.definitionsLoaded = false;
242
- }
243
- }
244
- addCustomMessageDefinition(id, name, fields) {
245
- this.messageDefinitions.set(id, { id, name, fields });
246
- }
247
- getMessageDefinition(id) {
248
- return this.messageDefinitions.get(id);
249
- }
250
- getSupportedMessageIds() {
251
- return Array.from(this.messageDefinitions.keys()).sort((a, b) => a - b);
252
- }
253
- isDefinitionsLoaded() {
254
- return this.definitionsLoaded;
255
- }
256
- /**
257
- * Wait for definitions to be loaded before proceeding
258
- * Returns immediately if already loaded
259
- */
260
- async waitForDefinitions() {
261
- if (this.definitionsLoaded) {
262
- return;
263
- }
264
- // Wait a bit for async loading to complete
265
- return new Promise((resolve) => {
266
- const checkLoaded = () => {
267
- if (this.definitionsLoaded) {
268
- resolve();
269
- }
270
- else {
271
- setTimeout(checkLoaded, 10);
272
- }
273
- };
274
- checkLoaded();
275
- });
276
- }
277
- /**
278
- * Factory method to create decoder with all generated definitions loaded
279
- * @returns Promise that resolves to decoder with 319+ message definitions
280
- */
281
- static async createWithGeneratedDefinitions() {
282
- const decoder = new MAVLinkMessageDecoder();
283
- await decoder.loadGeneratedDefinitions();
284
- return decoder;
285
- }
286
- }
287
- exports.MAVLinkMessageDecoder = MAVLinkMessageDecoder;
288
- //# sourceMappingURL=message-decoder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-decoder.js","sourceRoot":"","sources":["../../src/parser/message-decoder.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- export interface ParsedMAVLinkMessage {
2
- timestamp: number;
3
- system_id: number;
4
- component_id: number;
5
- message_id: number;
6
- message_name: string;
7
- sequence: number;
8
- payload: Record<string, any>;
9
- protocol_version: 1 | 2;
10
- checksum: number;
11
- crc_ok: boolean;
12
- signature?: Uint8Array;
13
- }
14
- export interface MAVLinkFrame {
15
- magic: number;
16
- length: number;
17
- incompatible_flags?: number;
18
- compatible_flags?: number;
19
- sequence: number;
20
- system_id: number;
21
- component_id: number;
22
- message_id: number;
23
- payload: Uint8Array;
24
- checksum: number;
25
- signature?: Uint8Array;
26
- }
27
- export interface ParserOptions {
28
- validateCRC?: boolean;
29
- allowProtocolV1?: boolean;
30
- allowProtocolV2?: boolean;
31
- maxBufferSize?: number;
32
- }
33
- export declare class ParserError extends Error {
34
- frame?: any;
35
- constructor(message: string, frame?: any);
36
- }
37
- export interface ParserResult {
38
- messages: ParsedMAVLinkMessage[];
39
- errors: ParserError[];
40
- bytesProcessed: number;
41
- remainingBytes: Uint8Array;
42
- }
43
- export interface FieldDescriptor {
44
- name: string;
45
- type: string;
46
- enum?: string;
47
- arrayLength?: number;
48
- }
49
- export interface MessageDescriptor {
50
- id: number;
51
- name: string;
52
- fields: FieldDescriptor[];
53
- crc_extra: number;
54
- }
55
- export interface DialectRegistry {
56
- [dialectName: string]: {
57
- [messageId: number]: MessageDescriptor;
58
- };
59
- }
60
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parser/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,WAAY,SAAQ,KAAK;IAC7B,KAAK,CAAC,EAAE,GAAG,CAAC;gBAEP,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;CAKzC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,WAAW,EAAE,MAAM,GAAG;QACrB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAAC;KACxC,CAAC;CACH"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- // Parser types for MAVLink protocol parsing
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ParserError = void 0;
5
- class ParserError extends Error {
6
- constructor(message, frame) {
7
- super(message);
8
- this.name = 'ParserError';
9
- this.frame = frame;
10
- }
11
- }
12
- exports.ParserError = ParserError;
13
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/parser/types.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;AAqC5C,MAAa,WAAY,SAAQ,KAAK;IAGpC,YAAY,OAAe,EAAE,KAAW;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AARD,kCAQC"}