@aircast-4g/mavlink 1.0.1 → 1.1.2

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 (135) hide show
  1. package/dist/cli.js +0 -0
  2. package/dist/dialects/ardupilotmega/decoder.js +11930 -0
  3. package/dist/dialects/common/decoder.js +9098 -0
  4. package/dist/dialects/minimal/decoder.js +67 -0
  5. package/dist/generator/generator.d.ts +1 -0
  6. package/dist/generator/generator.d.ts.map +1 -1
  7. package/dist/generator/generator.js +49 -5
  8. package/dist/generator/generator.js.map +1 -1
  9. package/dist/generator/template-engine.d.ts +1 -0
  10. package/dist/generator/template-engine.d.ts.map +1 -1
  11. package/dist/generator/template-engine.js +50 -0
  12. package/dist/generator/template-engine.js.map +1 -1
  13. package/dist/parser/mavlink-parser.d.ts.map +1 -1
  14. package/dist/parser/mavlink-parser.js +17 -6
  15. package/dist/parser/mavlink-parser.js.map +1 -1
  16. package/dist/parser/message-decoder.d.ts +40 -4
  17. package/dist/parser/message-decoder.d.ts.map +1 -1
  18. package/dist/parser/message-decoder.js +263 -222
  19. package/dist/parser/message-decoder.js.map +1 -1
  20. package/dist/parser/types.d.ts +1 -0
  21. package/dist/parser/types.d.ts.map +1 -1
  22. package/dist/parser/types.js.map +1 -1
  23. package/package.json +17 -26
  24. package/dist/batch-processor.d.ts +0 -17
  25. package/dist/batch-processor.d.ts.map +0 -1
  26. package/dist/batch-processor.js +0 -141
  27. package/dist/batch-processor.js.map +0 -1
  28. package/dist/generator.d.ts +0 -15
  29. package/dist/generator.d.ts.map +0 -1
  30. package/dist/generator.js +0 -92
  31. package/dist/generator.js.map +0 -1
  32. package/dist/template-engine.d.ts +0 -13
  33. package/dist/template-engine.d.ts.map +0 -1
  34. package/dist/template-engine.js +0 -220
  35. package/dist/template-engine.js.map +0 -1
  36. package/dist/type-converter.d.ts +0 -15
  37. package/dist/type-converter.d.ts.map +0 -1
  38. package/dist/type-converter.js +0 -179
  39. package/dist/type-converter.js.map +0 -1
  40. package/dist/xml-parser.d.ts +0 -13
  41. package/dist/xml-parser.d.ts.map +0 -1
  42. package/dist/xml-parser.js +0 -170
  43. package/dist/xml-parser.js.map +0 -1
  44. package/types/ardupilotmega/enums.d.ts +0 -2427
  45. package/types/ardupilotmega/enums.d.ts.map +0 -1
  46. package/types/ardupilotmega/enums.js +0 -4636
  47. package/types/ardupilotmega/enums.js.map +0 -1
  48. package/types/ardupilotmega/index.d.ts +0 -4
  49. package/types/ardupilotmega/index.d.ts.map +0 -1
  50. package/types/ardupilotmega/index.js +0 -22
  51. package/types/ardupilotmega/index.js.map +0 -1
  52. package/types/ardupilotmega/messages.d.ts +0 -3719
  53. package/types/ardupilotmega/messages.d.ts.map +0 -1
  54. package/types/ardupilotmega/messages.js +0 -1281
  55. package/types/ardupilotmega/messages.js.map +0 -1
  56. package/types/ardupilotmega/types.d.ts +0 -221
  57. package/types/ardupilotmega/types.d.ts.map +0 -1
  58. package/types/ardupilotmega/types.js +0 -5
  59. package/types/ardupilotmega/types.js.map +0 -1
  60. package/types/common/enums.d.ts +0 -1843
  61. package/types/common/enums.d.ts.map +0 -1
  62. package/types/common/enums.js +0 -3636
  63. package/types/common/enums.js.map +0 -1
  64. package/types/common/index.d.ts +0 -4
  65. package/types/common/index.d.ts.map +0 -1
  66. package/types/common/index.js +0 -21
  67. package/types/common/index.js.map +0 -1
  68. package/types/common/messages.d.ts +0 -2805
  69. package/types/common/messages.d.ts.map +0 -1
  70. package/types/common/messages.js +0 -920
  71. package/types/common/messages.js.map +0 -1
  72. package/types/common/types.d.ts +0 -157
  73. package/types/common/types.d.ts.map +0 -1
  74. package/types/common/types.js +0 -4
  75. package/types/common/types.js.map +0 -1
  76. package/types/minimal/enums.d.ts +0 -244
  77. package/types/minimal/enums.d.ts.map +0 -1
  78. package/types/minimal/enums.js +0 -496
  79. package/types/minimal/enums.js.map +0 -1
  80. package/types/minimal/index.d.ts +0 -4
  81. package/types/minimal/index.d.ts.map +0 -1
  82. package/types/minimal/index.js +0 -21
  83. package/types/minimal/index.js.map +0 -1
  84. package/types/minimal/messages.d.ts +0 -25
  85. package/types/minimal/messages.d.ts.map +0 -1
  86. package/types/minimal/messages.js +0 -12
  87. package/types/minimal/messages.js.map +0 -1
  88. package/types/minimal/types.d.ts +0 -14
  89. package/types/minimal/types.d.ts.map +0 -1
  90. package/types/minimal/types.js +0 -4
  91. package/types/minimal/types.js.map +0 -1
  92. package/types/paparazzi/enums.ts +0 -3632
  93. package/types/paparazzi/index.ts +0 -6
  94. package/types/paparazzi/messages.ts +0 -6185
  95. package/types/paparazzi/types.ts +0 -2159
  96. package/types/python_array_test/enums.ts +0 -3632
  97. package/types/python_array_test/index.ts +0 -6
  98. package/types/python_array_test/messages.ts +0 -6258
  99. package/types/python_array_test/types.ts +0 -2159
  100. package/types/standard/enums.d.ts +0 -248
  101. package/types/standard/enums.d.ts.map +0 -1
  102. package/types/standard/enums.js +0 -505
  103. package/types/standard/enums.js.map +0 -1
  104. package/types/standard/enums.ts +0 -502
  105. package/types/standard/index.d.ts +0 -4
  106. package/types/standard/index.d.ts.map +0 -1
  107. package/types/standard/index.js +0 -22
  108. package/types/standard/index.js.map +0 -1
  109. package/types/standard/index.ts +0 -6
  110. package/types/standard/messages.d.ts +0 -25
  111. package/types/standard/messages.d.ts.map +0 -1
  112. package/types/standard/messages.js +0 -13
  113. package/types/standard/messages.js.map +0 -1
  114. package/types/standard/messages.ts +0 -63
  115. package/types/standard/types.d.ts +0 -15
  116. package/types/standard/types.d.ts.map +0 -1
  117. package/types/standard/types.js +0 -5
  118. package/types/standard/types.js.map +0 -1
  119. package/types/standard/types.ts +0 -278
  120. package/types/test/enums.ts +0 -2
  121. package/types/test/index.ts +0 -6
  122. package/types/test/messages.ts +0 -69
  123. package/types/test/types.ts +0 -11
  124. /package/{types/ardupilotmega/enums.ts → dist/dialects/ardupilotmega/enums.d.ts} +0 -0
  125. /package/{types/ardupilotmega/index.ts → dist/dialects/ardupilotmega/index.d.ts} +0 -0
  126. /package/{types/ardupilotmega/messages.ts → dist/dialects/ardupilotmega/messages.d.ts} +0 -0
  127. /package/{types/ardupilotmega/types.ts → dist/dialects/ardupilotmega/types.d.ts} +0 -0
  128. /package/{types/common/enums.ts → dist/dialects/common/enums.d.ts} +0 -0
  129. /package/{types/common/index.ts → dist/dialects/common/index.d.ts} +0 -0
  130. /package/{types/common/messages.ts → dist/dialects/common/messages.d.ts} +0 -0
  131. /package/{types/common/types.ts → dist/dialects/common/types.d.ts} +0 -0
  132. /package/{types/minimal/enums.ts → dist/dialects/minimal/enums.d.ts} +0 -0
  133. /package/{types/minimal/index.ts → dist/dialects/minimal/index.d.ts} +0 -0
  134. /package/{types/minimal/messages.ts → dist/dialects/minimal/messages.d.ts} +0 -0
  135. /package/{types/minimal/types.ts → dist/dialects/minimal/types.d.ts} +0 -0
@@ -0,0 +1,67 @@
1
+ // Auto-generated decoder definitions for minimal dialect
2
+ // Generated from MAVLink XML definitions
3
+
4
+ const MINIMAL_MESSAGE_DEFINITIONS = [
5
+ {
6
+ id: 0,
7
+ name: 'HEARTBEAT',
8
+ fields: [
9
+ {
10
+ name: 'type',
11
+ type: 'uint8_t',
12
+ },
13
+ {
14
+ name: 'autopilot',
15
+ type: 'uint8_t',
16
+ },
17
+ {
18
+ name: 'base_mode',
19
+ type: 'uint8_t',
20
+ },
21
+ {
22
+ name: 'custom_mode',
23
+ type: 'uint32_t',
24
+ },
25
+ {
26
+ name: 'system_status',
27
+ type: 'uint8_t',
28
+ },
29
+ {
30
+ name: 'mavlink_version',
31
+ type: 'uint8_t_mavlink_version',
32
+ },
33
+ ]
34
+ },
35
+ {
36
+ id: 300,
37
+ name: 'PROTOCOL_VERSION',
38
+ fields: [
39
+ {
40
+ name: 'version',
41
+ type: 'uint16_t',
42
+ },
43
+ {
44
+ name: 'min_version',
45
+ type: 'uint16_t',
46
+ },
47
+ {
48
+ name: 'max_version',
49
+ type: 'uint16_t',
50
+ },
51
+ {
52
+ name: 'spec_version_hash',
53
+ type: 'uint8_t',
54
+ arrayLength: 8,
55
+ },
56
+ {
57
+ name: 'library_version_hash',
58
+ type: 'uint8_t',
59
+ arrayLength: 8,
60
+ },
61
+ ]
62
+ },
63
+ ];
64
+
65
+ module.exports = {
66
+ MINIMAL_MESSAGE_DEFINITIONS
67
+ };
@@ -7,6 +7,7 @@ export declare class MAVLinkGenerator {
7
7
  generateFromURL(url: string, outputPath: string, options: GenerationOptions): Promise<void>;
8
8
  generateFromFile(filePath: string, outputPath: string, options: GenerationOptions): Promise<void>;
9
9
  private generate;
10
+ private generateDecoderDefinitions;
10
11
  reset(): void;
11
12
  }
12
13
  export declare function generateTypesFromXML(xmlContent: string, options: GenerationOptions): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/generator/generator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAA4C,MAAM,UAAU,CAAC;AAEvF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;;IAQjC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3F,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAKzF,QAAQ;IA+BtB,KAAK,IAAI,IAAI;CAGd;AAGD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC,CAsCzC"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/generator/generator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAA4C,MAAM,UAAU,CAAC;AAEvF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;;IAQjC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3F,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAKzF,QAAQ;IAoCtB,OAAO,CAAC,0BAA0B;IAkDlC,KAAK,IAAI,IAAI;CAGd;AAGD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC,CAsCzC"}
@@ -33,20 +33,64 @@ class MAVLinkGenerator {
33
33
  await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'index.ts'), content);
34
34
  }
35
35
  else {
36
- // Generate separate files
36
+ // Generate separate files as .d.ts files
37
37
  const typesContent = this.templateEngine.generateTypes(tsDialect);
38
- await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'types.ts'), typesContent);
38
+ await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'types.d.ts'), typesContent);
39
39
  if (options.includeEnums) {
40
40
  const enumsContent = this.templateEngine.generateEnums(tsDialect);
41
- await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'enums.ts'), enumsContent);
41
+ await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'enums.d.ts'), enumsContent);
42
42
  }
43
43
  const messagesContent = this.templateEngine.generateMessages(tsDialect);
44
- await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'messages.ts'), messagesContent);
44
+ await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'messages.d.ts'), messagesContent);
45
45
  const indexContent = this.templateEngine.generateIndex(tsDialect, options.includeEnums);
46
- await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'index.ts'), indexContent);
46
+ await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'index.d.ts'), indexContent);
47
47
  }
48
+ // Generate decoder definitions in the same dialect directory
49
+ const decoderContent = this.generateDecoderDefinitions(definition, options.dialectName);
50
+ const decoderPath = (0, path_1.join)(outputPath, 'decoder.js');
51
+ await fs_1.promises.writeFile(decoderPath, decoderContent);
48
52
  console.log(`Generated TypeScript types for ${options.dialectName} in ${outputPath}`);
49
53
  }
54
+ generateDecoderDefinitions(definition, dialectName) {
55
+ let code = `// Auto-generated decoder definitions for ${dialectName} dialect\n`;
56
+ code += `// Generated from MAVLink XML definitions\n\n`;
57
+ const dialectNameUpper = dialectName.toUpperCase();
58
+ const exportName = `${dialectNameUpper}_MESSAGE_DEFINITIONS`;
59
+ code += `const ${exportName} = [\n`;
60
+ for (const message of definition.messages || []) {
61
+ code += ` {\n`;
62
+ code += ` id: ${message.id},\n`;
63
+ code += ` name: '${message.name}',\n`;
64
+ code += ` fields: [\n`;
65
+ for (const field of message.fields || []) {
66
+ let fieldType = field.type;
67
+ let arrayLength;
68
+ // Handle array types like uint8_t[4]
69
+ const arrayMatch = fieldType.match(/^([^[]+)\[(\d+)\]$/);
70
+ if (arrayMatch) {
71
+ fieldType = arrayMatch[1];
72
+ arrayLength = parseInt(arrayMatch[2]);
73
+ }
74
+ code += ` {\n`;
75
+ code += ` name: '${field.name}',\n`;
76
+ code += ` type: '${fieldType}',\n`;
77
+ if (arrayLength) {
78
+ code += ` arrayLength: ${arrayLength},\n`;
79
+ }
80
+ if (field.extension) {
81
+ code += ` extension: ${field.extension},\n`;
82
+ }
83
+ code += ` },\n`;
84
+ }
85
+ code += ` ]\n`;
86
+ code += ` },\n`;
87
+ }
88
+ code += `];\n\n`;
89
+ code += `module.exports = {\n`;
90
+ code += ` ${exportName}\n`;
91
+ code += `};\n`;
92
+ return code;
93
+ }
50
94
  reset() {
51
95
  this.xmlParser.reset();
52
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/generator/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/generator/generator.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,6 @@ export declare class TemplateEngine {
9
9
  generateMessages(dialect: TypeScriptDialect): string;
10
10
  generateIndex(dialect: TypeScriptDialect, includeEnums?: boolean): string;
11
11
  generateSingle(dialect: TypeScriptDialect): string;
12
+ generateDecoder(dialect: TypeScriptDialect): string;
12
13
  }
13
14
  //# sourceMappingURL=template-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../src/generator/template-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAsD;;IAOvE,OAAO,CAAC,mBAAmB;IAmK3B,OAAO,CAAC,eAAe;IAcvB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQjD,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQjD,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQpD,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,YAAY,GAAE,OAAe,GAAG,MAAM;IAQhF,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;CAOnD"}
1
+ {"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../src/generator/template-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAsD;;IAOvE,OAAO,CAAC,mBAAmB;IA4M3B,OAAO,CAAC,eAAe;IAkBvB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQjD,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQjD,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQpD,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,YAAY,GAAE,OAAe,GAAG,MAAM;IAQhF,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQlD,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;CAQpD"}
@@ -167,6 +167,46 @@ export function is{{ name }}(msg: MAVLinkMessage): msg is MAVLinkMessage<Message
167
167
  return msg.type === '{{ originalName }}';
168
168
  }
169
169
  {{/each}}
170
+ `));
171
+ // Decoder definitions template
172
+ this.templates.set('decoder', handlebars_1.default.compile(`// Auto-generated decoder definitions for {{{ dialectName }}} dialect
173
+ // Generated from MAVLink XML definitions
174
+
175
+ interface MessageDefinition {
176
+ id: number;
177
+ name: string;
178
+ fields: FieldDefinition[];
179
+ }
180
+
181
+ interface FieldDefinition {
182
+ name: string;
183
+ type: string;
184
+ arrayLength?: number;
185
+ extension?: boolean;
186
+ }
187
+
188
+ export const {{toUpperCase dialectName}}_MESSAGE_DEFINITIONS: MessageDefinition[] = [
189
+ {{#each messages}}
190
+ {
191
+ id: {{ id }},
192
+ name: '{{{ originalName }}}',
193
+ fields: [
194
+ {{#each fields}}
195
+ {
196
+ name: '{{{ name }}}',
197
+ type: '{{{ originalType }}}',
198
+ {{#if arrayLength}}
199
+ arrayLength: {{ arrayLength }},
200
+ {{/if}}
201
+ {{#if extension}}
202
+ extension: {{ extension }},
203
+ {{/if}}
204
+ },
205
+ {{/each}}
206
+ ]
207
+ },
208
+ {{/each}}
209
+ ];
170
210
  `));
171
211
  }
172
212
  registerHelpers() {
@@ -179,6 +219,9 @@ export function is{{ name }}(msg: MAVLinkMessage): msg is MAVLinkMessage<Message
179
219
  handlebars_1.default.registerHelper('ne', (a, b) => {
180
220
  return a !== b;
181
221
  });
222
+ handlebars_1.default.registerHelper('toUpperCase', (str) => {
223
+ return str.toUpperCase();
224
+ });
182
225
  }
183
226
  generateTypes(dialect) {
184
227
  const template = this.templates.get('types');
@@ -215,6 +258,13 @@ export function is{{ name }}(msg: MAVLinkMessage): msg is MAVLinkMessage<Message
215
258
  }
216
259
  return template(dialect);
217
260
  }
261
+ generateDecoder(dialect) {
262
+ const template = this.templates.get('decoder');
263
+ if (!template) {
264
+ throw new Error('Decoder template not found');
265
+ }
266
+ return template(dialect);
267
+ }
218
268
  }
219
269
  exports.TemplateEngine = TemplateEngine;
220
270
  //# sourceMappingURL=template-engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../src/generator/template-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../src/generator/template-engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mavlink-parser.d.ts","sourceRoot":"","sources":["../../src/parser/mavlink-parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAe,aAAa,EAAE,MAAM,SAAS,CAAC;AAE3E,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,OAAO,CAAgB;gBAEnB,OAAO,GAAE,aAAkB;IAavC;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB,EAAE;IAsD3D;;OAEG;IACI,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB,GAAG,IAAI;IAclE,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,aAAa;IAuCrB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,gBAAgB;IAyCxB;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACI,QAAQ,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAM9D"}
1
+ {"version":3,"file":"mavlink-parser.d.ts","sourceRoot":"","sources":["../../src/parser/mavlink-parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAe,aAAa,EAAE,MAAM,SAAS,CAAC;AAE3E,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,OAAO,CAAgB;gBAEnB,OAAO,GAAE,aAAkB;IAavC;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB,EAAE;IA4D3D;;OAEG;IACI,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB,GAAG,IAAI;IAmBlE,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,aAAa;IAuCrB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,gBAAgB;IAyCxB;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACI,QAAQ,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAM9D"}
@@ -46,12 +46,18 @@ class MAVLinkParser {
46
46
  const { frame, bytesConsumed } = parseResult;
47
47
  processedBytes += bytesConsumed;
48
48
  // Validate CRC if enabled
49
- if (this.options.validateCRC && !this.validateFrameCRC(frame)) {
50
- continue;
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
+ }
51
56
  }
52
57
  // Decode message
53
58
  try {
54
- const message = this.messageDecoder.decode(frame);
59
+ const frameWithCRC = { ...frame, crc_ok: crcValid };
60
+ const message = this.messageDecoder.decode(frameWithCRC);
55
61
  messages.push(message);
56
62
  }
57
63
  catch (error) {
@@ -76,10 +82,15 @@ class MAVLinkParser {
76
82
  parseMessage(data) {
77
83
  try {
78
84
  const frame = this.frameParser.parseFrame(data);
79
- if (this.options.validateCRC && !this.validateFrameCRC(frame)) {
80
- throw new types_1.ParserError('CRC validation failed');
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
+ }
81
91
  }
82
- return this.messageDecoder.decode(frame);
92
+ const frameWithCRC = { ...frame, crc_ok: crcValid };
93
+ return this.messageDecoder.decode(frameWithCRC);
83
94
  }
84
95
  catch (error) {
85
96
  throw new types_1.ParserError(`Failed to parse message: ${error instanceof Error ? error.message : 'Unknown error'}`);
@@ -1 +1 @@
1
- {"version":3,"file":"mavlink-parser.js","sourceRoot":"","sources":["../../src/parser/mavlink-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mavlink-parser.js","sourceRoot":"","sources":["../../src/parser/mavlink-parser.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,47 @@
1
- import { MAVLinkFrame, ParsedMAVLinkMessage } from './types';
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
+ }
2
13
  export declare class MAVLinkMessageDecoder {
3
- private messageMap;
14
+ private messageDefinitions;
15
+ private definitionsLoaded;
4
16
  constructor();
5
17
  decode(frame: MAVLinkFrame & {
6
- protocol_version: 1 | 2;
18
+ crc_ok?: boolean;
19
+ protocol_version?: 1 | 2;
7
20
  }): ParsedMAVLinkMessage;
8
21
  private decodePayload;
9
- private getMessageName;
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>;
10
45
  }
46
+ export {};
11
47
  //# sourceMappingURL=message-decoder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-decoder.d.ts","sourceRoot":"","sources":["../../src/parser/message-decoder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAe,MAAM,SAAS,CAAC;AAE1E,qBAAa,qBAAqB;IAChC,OAAO,CAAC,UAAU,CAA+B;;IAM1C,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAA;KAAE,GAAG,oBAAoB;IAyBtF,OAAO,CAAC,aAAa;IA8DrB,OAAO,CAAC,cAAc;CA8JvB"}
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"}