@aircast-4g/mavlink 1.0.1
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/LICENSE +21 -0
- package/README.md +632 -0
- package/dist/batch-processor.d.ts +17 -0
- package/dist/batch-processor.d.ts.map +1 -0
- package/dist/batch-processor.js +141 -0
- package/dist/batch-processor.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +174 -0
- package/dist/cli.js.map +1 -0
- package/dist/generator/batch-processor.d.ts +17 -0
- package/dist/generator/batch-processor.d.ts.map +1 -0
- package/dist/generator/batch-processor.js +141 -0
- package/dist/generator/batch-processor.js.map +1 -0
- package/dist/generator/generator.d.ts +15 -0
- package/dist/generator/generator.d.ts.map +1 -0
- package/dist/generator/generator.js +92 -0
- package/dist/generator/generator.js.map +1 -0
- package/dist/generator/template-engine.d.ts +13 -0
- package/dist/generator/template-engine.d.ts.map +1 -0
- package/dist/generator/template-engine.js +220 -0
- package/dist/generator/template-engine.js.map +1 -0
- package/dist/generator/type-converter.d.ts +15 -0
- package/dist/generator/type-converter.d.ts.map +1 -0
- package/dist/generator/type-converter.js +179 -0
- package/dist/generator/type-converter.js.map +1 -0
- package/dist/generator/xml-parser.d.ts +13 -0
- package/dist/generator/xml-parser.d.ts.map +1 -0
- package/dist/generator/xml-parser.js +170 -0
- package/dist/generator/xml-parser.js.map +1 -0
- package/dist/generator.d.ts +15 -0
- package/dist/generator.d.ts.map +1 -0
- package/dist/generator.js +92 -0
- package/dist/generator.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/crc.d.ts +7 -0
- package/dist/parser/crc.d.ts.map +1 -0
- package/dist/parser/crc.js +182 -0
- package/dist/parser/crc.js.map +1 -0
- package/dist/parser/frame-parser.d.ts +15 -0
- package/dist/parser/frame-parser.d.ts.map +1 -0
- package/dist/parser/frame-parser.js +82 -0
- package/dist/parser/frame-parser.js.map +1 -0
- package/dist/parser/index.d.ts +6 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +28 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/mavlink-parser.d.ts +35 -0
- package/dist/parser/mavlink-parser.d.ts.map +1 -0
- package/dist/parser/mavlink-parser.js +204 -0
- package/dist/parser/mavlink-parser.js.map +1 -0
- package/dist/parser/message-decoder.d.ts +11 -0
- package/dist/parser/message-decoder.d.ts.map +1 -0
- package/dist/parser/message-decoder.js +247 -0
- package/dist/parser/message-decoder.js.map +1 -0
- package/dist/parser/types.d.ts +59 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js +13 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/template-engine.d.ts +13 -0
- package/dist/template-engine.d.ts.map +1 -0
- package/dist/template-engine.js +220 -0
- package/dist/template-engine.js.map +1 -0
- package/dist/type-converter.d.ts +15 -0
- package/dist/type-converter.d.ts.map +1 -0
- package/dist/type-converter.js +179 -0
- package/dist/type-converter.js.map +1 -0
- package/dist/types.d.ts +110 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/xml-parser.d.ts +13 -0
- package/dist/xml-parser.d.ts.map +1 -0
- package/dist/xml-parser.js +170 -0
- package/dist/xml-parser.js.map +1 -0
- package/package.json +105 -0
- package/types/ardupilotmega/enums.d.ts +2427 -0
- package/types/ardupilotmega/enums.d.ts.map +1 -0
- package/types/ardupilotmega/enums.js +4636 -0
- package/types/ardupilotmega/enums.js.map +1 -0
- package/types/ardupilotmega/enums.ts +4631 -0
- package/types/ardupilotmega/index.d.ts +4 -0
- package/types/ardupilotmega/index.d.ts.map +1 -0
- package/types/ardupilotmega/index.js +22 -0
- package/types/ardupilotmega/index.js.map +1 -0
- package/types/ardupilotmega/index.ts +6 -0
- package/types/ardupilotmega/messages.d.ts +3719 -0
- package/types/ardupilotmega/messages.d.ts.map +1 -0
- package/types/ardupilotmega/messages.js +1281 -0
- package/types/ardupilotmega/messages.js.map +1 -0
- package/types/ardupilotmega/messages.ts +8088 -0
- package/types/ardupilotmega/types.d.ts +221 -0
- package/types/ardupilotmega/types.d.ts.map +1 -0
- package/types/ardupilotmega/types.js +5 -0
- package/types/ardupilotmega/types.js.map +1 -0
- package/types/ardupilotmega/types.ts +2833 -0
- package/types/common/enums.d.ts +1843 -0
- package/types/common/enums.d.ts.map +1 -0
- package/types/common/enums.js +3636 -0
- package/types/common/enums.js.map +1 -0
- package/types/common/enums.ts +3632 -0
- package/types/common/index.d.ts +4 -0
- package/types/common/index.d.ts.map +1 -0
- package/types/common/index.js +21 -0
- package/types/common/index.js.map +1 -0
- package/types/common/index.ts +6 -0
- package/types/common/messages.d.ts +2805 -0
- package/types/common/messages.d.ts.map +1 -0
- package/types/common/messages.js +920 -0
- package/types/common/messages.js.map +1 -0
- package/types/common/messages.ts +6114 -0
- package/types/common/types.d.ts +157 -0
- package/types/common/types.d.ts.map +1 -0
- package/types/common/types.js +4 -0
- package/types/common/types.js.map +1 -0
- package/types/common/types.ts +2159 -0
- package/types/minimal/enums.d.ts +244 -0
- package/types/minimal/enums.d.ts.map +1 -0
- package/types/minimal/enums.js +496 -0
- package/types/minimal/enums.js.map +1 -0
- package/types/minimal/enums.ts +494 -0
- package/types/minimal/index.d.ts +4 -0
- package/types/minimal/index.d.ts.map +1 -0
- package/types/minimal/index.js +21 -0
- package/types/minimal/index.js.map +1 -0
- package/types/minimal/index.ts +6 -0
- package/types/minimal/messages.d.ts +25 -0
- package/types/minimal/messages.d.ts.map +1 -0
- package/types/minimal/messages.js +12 -0
- package/types/minimal/messages.js.map +1 -0
- package/types/minimal/messages.ts +62 -0
- package/types/minimal/types.d.ts +14 -0
- package/types/minimal/types.d.ts.map +1 -0
- package/types/minimal/types.js +4 -0
- package/types/minimal/types.js.map +1 -0
- package/types/minimal/types.ts +272 -0
- package/types/paparazzi/enums.ts +3632 -0
- package/types/paparazzi/index.ts +6 -0
- package/types/paparazzi/messages.ts +6185 -0
- package/types/paparazzi/types.ts +2159 -0
- package/types/python_array_test/enums.ts +3632 -0
- package/types/python_array_test/index.ts +6 -0
- package/types/python_array_test/messages.ts +6258 -0
- package/types/python_array_test/types.ts +2159 -0
- package/types/standard/enums.d.ts +248 -0
- package/types/standard/enums.d.ts.map +1 -0
- package/types/standard/enums.js +505 -0
- package/types/standard/enums.js.map +1 -0
- package/types/standard/enums.ts +502 -0
- package/types/standard/index.d.ts +4 -0
- package/types/standard/index.d.ts.map +1 -0
- package/types/standard/index.js +22 -0
- package/types/standard/index.js.map +1 -0
- package/types/standard/index.ts +6 -0
- package/types/standard/messages.d.ts +25 -0
- package/types/standard/messages.d.ts.map +1 -0
- package/types/standard/messages.js +13 -0
- package/types/standard/messages.js.map +1 -0
- package/types/standard/messages.ts +63 -0
- package/types/standard/types.d.ts +15 -0
- package/types/standard/types.d.ts.map +1 -0
- package/types/standard/types.js +5 -0
- package/types/standard/types.js.map +1 -0
- package/types/standard/types.ts +278 -0
- package/types/test/enums.ts +2 -0
- package/types/test/index.ts +6 -0
- package/types/test/messages.ts +69 -0
- package/types/test/types.ts +11 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAVLinkGenerator = void 0;
|
|
4
|
+
exports.generateTypesFromXML = generateTypesFromXML;
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const xml2js_1 = require("xml2js");
|
|
8
|
+
const xml_parser_1 = require("./xml-parser");
|
|
9
|
+
const type_converter_1 = require("./type-converter");
|
|
10
|
+
const template_engine_1 = require("./template-engine");
|
|
11
|
+
class MAVLinkGenerator {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.xmlParser = new xml_parser_1.XMLParser();
|
|
14
|
+
this.typeConverter = new type_converter_1.TypeConverter();
|
|
15
|
+
this.templateEngine = new template_engine_1.TemplateEngine();
|
|
16
|
+
}
|
|
17
|
+
async generateFromURL(url, outputPath, options) {
|
|
18
|
+
const definition = await this.xmlParser.parseFromURL(url);
|
|
19
|
+
await this.generate(definition, outputPath, options);
|
|
20
|
+
}
|
|
21
|
+
async generateFromFile(filePath, outputPath, options) {
|
|
22
|
+
const definition = await this.xmlParser.parseFromFile(filePath);
|
|
23
|
+
await this.generate(definition, outputPath, options);
|
|
24
|
+
}
|
|
25
|
+
async generate(definition, outputPath, options) {
|
|
26
|
+
// Convert to TypeScript types
|
|
27
|
+
const tsDialect = this.typeConverter.convert(definition, options.dialectName);
|
|
28
|
+
// Ensure output directory exists
|
|
29
|
+
await fs_1.promises.mkdir(outputPath, { recursive: true });
|
|
30
|
+
if (options.outputFormat === 'single') {
|
|
31
|
+
// Generate single file
|
|
32
|
+
const content = this.templateEngine.generateSingle(tsDialect);
|
|
33
|
+
await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'index.ts'), content);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Generate separate files
|
|
37
|
+
const typesContent = this.templateEngine.generateTypes(tsDialect);
|
|
38
|
+
await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'types.ts'), typesContent);
|
|
39
|
+
if (options.includeEnums) {
|
|
40
|
+
const enumsContent = this.templateEngine.generateEnums(tsDialect);
|
|
41
|
+
await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'enums.ts'), enumsContent);
|
|
42
|
+
}
|
|
43
|
+
const messagesContent = this.templateEngine.generateMessages(tsDialect);
|
|
44
|
+
await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'messages.ts'), messagesContent);
|
|
45
|
+
const indexContent = this.templateEngine.generateIndex(tsDialect, options.includeEnums);
|
|
46
|
+
await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'index.ts'), indexContent);
|
|
47
|
+
}
|
|
48
|
+
console.log(`Generated TypeScript types for ${options.dialectName} in ${outputPath}`);
|
|
49
|
+
}
|
|
50
|
+
reset() {
|
|
51
|
+
this.xmlParser.reset();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.MAVLinkGenerator = MAVLinkGenerator;
|
|
55
|
+
// Standalone function for programmatic usage
|
|
56
|
+
async function generateTypesFromXML(xmlContent, options) {
|
|
57
|
+
const converter = new type_converter_1.TypeConverter();
|
|
58
|
+
const templateEngine = new template_engine_1.TemplateEngine();
|
|
59
|
+
// Parse XML directly from string
|
|
60
|
+
const definition = await new Promise((resolve, reject) => {
|
|
61
|
+
(0, xml2js_1.parseString)(xmlContent, { explicitArray: false }, (err, result) => {
|
|
62
|
+
if (err)
|
|
63
|
+
reject(err);
|
|
64
|
+
else
|
|
65
|
+
resolve(result.mavlink);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
// Convert parsed XML to definition format for compatibility
|
|
69
|
+
const definitionForConverter = {
|
|
70
|
+
version: definition.version,
|
|
71
|
+
dialect: definition.dialect ? parseInt(definition.dialect) : undefined,
|
|
72
|
+
includes: [],
|
|
73
|
+
enums: [],
|
|
74
|
+
messages: []
|
|
75
|
+
};
|
|
76
|
+
// Convert to TypeScript
|
|
77
|
+
const tsDialect = converter.convert(definitionForConverter, options.dialectName);
|
|
78
|
+
const files = {};
|
|
79
|
+
if (options.outputFormat === 'single') {
|
|
80
|
+
files['index.ts'] = templateEngine.generateSingle(tsDialect);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
files['types.ts'] = templateEngine.generateTypes(tsDialect);
|
|
84
|
+
if (options.includeEnums) {
|
|
85
|
+
files['enums.ts'] = templateEngine.generateEnums(tsDialect);
|
|
86
|
+
}
|
|
87
|
+
files['messages.ts'] = templateEngine.generateMessages(tsDialect);
|
|
88
|
+
files['index.ts'] = templateEngine.generateIndex(tsDialect, options.includeEnums);
|
|
89
|
+
}
|
|
90
|
+
return files;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":";;;AAkEA,oDAyCC;AA3GD,2BAAoC;AACpC,+BAA4B;AAC5B,mCAAqC;AACrC,6CAAyC;AACzC,qDAAiD;AACjD,uDAAmD;AAGnD,MAAa,gBAAgB;IAK3B;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,EAAE,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,UAAkB,EAAE,OAA0B;QAC/E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,UAAkB,EAAE,OAA0B;QACrF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,UAAoC,EAAE,UAAkB,EAAE,OAA0B;QACzG,8BAA8B;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAE9E,iCAAiC;QACjC,MAAM,aAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhD,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACtC,uBAAuB;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC9D,MAAM,aAAE,CAAC,SAAS,CAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,0BAA0B;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAClE,MAAM,aAAE,CAAC,SAAS,CAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;YAE/D,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAClE,MAAM,aAAE,CAAC,SAAS,CAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACxE,MAAM,aAAE,CAAC,SAAS,CAAC,IAAA,WAAI,EAAC,UAAU,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC;YAErE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YACxF,MAAM,aAAE,CAAC,SAAS,CAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,CAAC,WAAW,OAAO,UAAU,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;AAvDD,4CAuDC;AAED,6CAA6C;AACtC,KAAK,UAAU,oBAAoB,CACxC,UAAkB,EAClB,OAA0B;IAE1B,MAAM,SAAS,GAAG,IAAI,8BAAa,EAAE,CAAC;IACtC,MAAM,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;IAE5C,iCAAiC;IACjC,MAAM,UAAU,GAAG,MAAM,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACvE,IAAA,oBAAW,EAAC,UAAU,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,GAAiB,EAAE,MAAmC,EAAE,EAAE;YAC3G,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;gBAChB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,MAAM,sBAAsB,GAA6B;QACvD,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QACtE,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,wBAAwB;IACxB,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAEjF,MAAM,KAAK,GAAmC,EAAE,CAAC;IAEjD,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACtC,KAAK,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,KAAK,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAClE,KAAK,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { MAVLinkGenerator, generateTypesFromXML } from './generator/generator';
|
|
2
|
+
export { BatchProcessor } from './generator/batch-processor';
|
|
3
|
+
export { XMLParser } from './generator/xml-parser';
|
|
4
|
+
export { TypeConverter } from './generator/type-converter';
|
|
5
|
+
export { TemplateEngine } from './generator/template-engine';
|
|
6
|
+
export * from './parser';
|
|
7
|
+
export * from './types';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Main entry point for programmatic usage
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TemplateEngine = exports.TypeConverter = exports.XMLParser = exports.BatchProcessor = exports.generateTypesFromXML = exports.MAVLinkGenerator = void 0;
|
|
19
|
+
// Generator exports
|
|
20
|
+
var generator_1 = require("./generator/generator");
|
|
21
|
+
Object.defineProperty(exports, "MAVLinkGenerator", { enumerable: true, get: function () { return generator_1.MAVLinkGenerator; } });
|
|
22
|
+
Object.defineProperty(exports, "generateTypesFromXML", { enumerable: true, get: function () { return generator_1.generateTypesFromXML; } });
|
|
23
|
+
var batch_processor_1 = require("./generator/batch-processor");
|
|
24
|
+
Object.defineProperty(exports, "BatchProcessor", { enumerable: true, get: function () { return batch_processor_1.BatchProcessor; } });
|
|
25
|
+
var xml_parser_1 = require("./generator/xml-parser");
|
|
26
|
+
Object.defineProperty(exports, "XMLParser", { enumerable: true, get: function () { return xml_parser_1.XMLParser; } });
|
|
27
|
+
var type_converter_1 = require("./generator/type-converter");
|
|
28
|
+
Object.defineProperty(exports, "TypeConverter", { enumerable: true, get: function () { return type_converter_1.TypeConverter; } });
|
|
29
|
+
var template_engine_1 = require("./generator/template-engine");
|
|
30
|
+
Object.defineProperty(exports, "TemplateEngine", { enumerable: true, get: function () { return template_engine_1.TemplateEngine; } });
|
|
31
|
+
// Parser exports
|
|
32
|
+
__exportStar(require("./parser"), exports);
|
|
33
|
+
// Core types
|
|
34
|
+
__exportStar(require("./types"), exports);
|
|
35
|
+
// Pre-generated MAVLink dialect types are available in the published package
|
|
36
|
+
// Import them after installation: import { CommonTypes } from 'aircast-mavlink/types/common'
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,0CAA0C;;;;;;;;;;;;;;;;;AAE1C,oBAAoB;AACpB,mDAA+E;AAAtE,6GAAA,gBAAgB,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAC/C,+DAA6D;AAApD,iHAAA,cAAc,OAAA;AACvB,qDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,6DAA2D;AAAlD,+GAAA,aAAa,OAAA;AACtB,+DAA6D;AAApD,iHAAA,cAAc,OAAA;AAEvB,iBAAiB;AACjB,2CAAyB;AAEzB,aAAa;AACb,0CAAwB;AAExB,6EAA6E;AAC7E,6FAA6F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crc.d.ts","sourceRoot":"","sources":["../../src/parser/crc.ts"],"names":[],"mappings":"AACA,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAU;WAE5B,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM;IAcpE,OAAO,CAAC,MAAM,CAAC,aAAa;WAOd,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CA8JrD"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CRCCalculator = void 0;
|
|
4
|
+
// CRC calculation for MAVLink messages
|
|
5
|
+
class CRCCalculator {
|
|
6
|
+
static calculate(data, extra = 0) {
|
|
7
|
+
let crc = CRCCalculator.CRC_INIT;
|
|
8
|
+
for (let i = 0; i < data.length; i++) {
|
|
9
|
+
crc = CRCCalculator.crcAccumulate(data[i], crc);
|
|
10
|
+
}
|
|
11
|
+
if (extra !== 0) {
|
|
12
|
+
crc = CRCCalculator.crcAccumulate(extra, crc);
|
|
13
|
+
}
|
|
14
|
+
return crc;
|
|
15
|
+
}
|
|
16
|
+
static crcAccumulate(byte, crc) {
|
|
17
|
+
const tmp = byte ^ (crc & 0xFF);
|
|
18
|
+
const tmp2 = (tmp ^ (tmp << 4)) & 0xFF;
|
|
19
|
+
return ((crc >> 8) ^ (tmp2 << 8) ^ (tmp2 << 3) ^ (tmp2 >> 4)) & 0xFFFF;
|
|
20
|
+
}
|
|
21
|
+
// CRC extra values for message validation (subset of common messages)
|
|
22
|
+
static getCRCExtra(messageId) {
|
|
23
|
+
const crcExtras = {
|
|
24
|
+
0: 50, // HEARTBEAT
|
|
25
|
+
1: 124, // SYS_STATUS
|
|
26
|
+
2: 137, // SYSTEM_TIME
|
|
27
|
+
4: 237, // PING
|
|
28
|
+
5: 217, // CHANGE_OPERATOR_CONTROL
|
|
29
|
+
6: 104, // CHANGE_OPERATOR_CONTROL_ACK
|
|
30
|
+
7: 119, // AUTH_KEY
|
|
31
|
+
11: 89, // SET_MODE
|
|
32
|
+
20: 214, // PARAM_REQUEST_READ
|
|
33
|
+
21: 159, // PARAM_REQUEST_LIST
|
|
34
|
+
22: 220, // PARAM_VALUE
|
|
35
|
+
23: 168, // PARAM_SET
|
|
36
|
+
24: 24, // GPS_RAW_INT
|
|
37
|
+
25: 23, // GPS_STATUS
|
|
38
|
+
26: 170, // SCALED_IMU
|
|
39
|
+
27: 144, // RAW_IMU
|
|
40
|
+
28: 67, // RAW_PRESSURE
|
|
41
|
+
29: 115, // SCALED_PRESSURE
|
|
42
|
+
30: 39, // ATTITUDE
|
|
43
|
+
31: 246, // ATTITUDE_QUATERNION
|
|
44
|
+
32: 185, // LOCAL_POSITION_NED
|
|
45
|
+
33: 104, // GLOBAL_POSITION_INT
|
|
46
|
+
34: 237, // RC_CHANNELS_SCALED
|
|
47
|
+
35: 244, // RC_CHANNELS_RAW
|
|
48
|
+
36: 222, // SERVO_OUTPUT_RAW
|
|
49
|
+
37: 212, // MISSION_REQUEST_PARTIAL_LIST
|
|
50
|
+
38: 9, // MISSION_WRITE_PARTIAL_LIST
|
|
51
|
+
39: 254, // MISSION_ITEM
|
|
52
|
+
40: 230, // MISSION_REQUEST
|
|
53
|
+
41: 28, // MISSION_SET_CURRENT
|
|
54
|
+
42: 28, // MISSION_CURRENT
|
|
55
|
+
43: 132, // MISSION_REQUEST_LIST
|
|
56
|
+
44: 221, // MISSION_COUNT
|
|
57
|
+
45: 232, // MISSION_CLEAR_ALL
|
|
58
|
+
46: 11, // MISSION_ITEM_REACHED
|
|
59
|
+
47: 153, // MISSION_ACK
|
|
60
|
+
48: 41, // SET_GPS_GLOBAL_ORIGIN
|
|
61
|
+
49: 39, // GPS_GLOBAL_ORIGIN
|
|
62
|
+
50: 78, // PARAM_MAP_RC
|
|
63
|
+
51: 196, // MISSION_REQUEST_INT
|
|
64
|
+
54: 15, // SAFETY_SET_ALLOWED_AREA
|
|
65
|
+
55: 3, // SAFETY_ALLOWED_AREA
|
|
66
|
+
61: 167, // ATTITUDE_QUATERNION_COV
|
|
67
|
+
62: 183, // NAV_CONTROLLER_OUTPUT
|
|
68
|
+
63: 51, // GLOBAL_POSITION_INT_COV
|
|
69
|
+
64: 59, // LOCAL_POSITION_NED_COV
|
|
70
|
+
65: 118, // RC_CHANNELS
|
|
71
|
+
66: 148, // REQUEST_DATA_STREAM
|
|
72
|
+
67: 21, // DATA_STREAM
|
|
73
|
+
69: 243, // MANUAL_CONTROL
|
|
74
|
+
70: 124, // RC_CHANNELS_OVERRIDE
|
|
75
|
+
73: 38, // MISSION_ITEM_INT
|
|
76
|
+
74: 20, // VFR_HUD
|
|
77
|
+
75: 158, // COMMAND_INT
|
|
78
|
+
76: 152, // COMMAND_LONG
|
|
79
|
+
77: 143, // COMMAND_ACK
|
|
80
|
+
81: 106, // MANUAL_SETPOINT
|
|
81
|
+
82: 49, // SET_ATTITUDE_TARGET
|
|
82
|
+
83: 22, // ATTITUDE_TARGET
|
|
83
|
+
84: 143, // SET_POSITION_TARGET_LOCAL_NED
|
|
84
|
+
85: 140, // POSITION_TARGET_LOCAL_NED
|
|
85
|
+
86: 5, // SET_POSITION_TARGET_GLOBAL_INT
|
|
86
|
+
87: 150, // POSITION_TARGET_GLOBAL_INT
|
|
87
|
+
89: 231, // LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET
|
|
88
|
+
90: 183, // HIL_STATE
|
|
89
|
+
91: 63, // HIL_CONTROLS
|
|
90
|
+
92: 54, // HIL_RC_INPUTS_RAW
|
|
91
|
+
100: 175, // OPTICAL_FLOW
|
|
92
|
+
101: 102, // GLOBAL_VISION_POSITION_ESTIMATE
|
|
93
|
+
102: 158, // VISION_POSITION_ESTIMATE
|
|
94
|
+
103: 208, // VISION_SPEED_ESTIMATE
|
|
95
|
+
104: 56, // VICON_POSITION_ESTIMATE
|
|
96
|
+
105: 93, // HIGHRES_IMU
|
|
97
|
+
106: 138, // OPTICAL_FLOW_RAD
|
|
98
|
+
107: 108, // HIL_SENSOR
|
|
99
|
+
108: 32, // SIM_STATE
|
|
100
|
+
109: 185, // RADIO_STATUS
|
|
101
|
+
110: 84, // FILE_TRANSFER_PROTOCOL
|
|
102
|
+
111: 34, // TIMESYNC
|
|
103
|
+
112: 174, // CAMERA_TRIGGER
|
|
104
|
+
113: 124, // HIL_GPS
|
|
105
|
+
114: 237, // HIL_OPTICAL_FLOW
|
|
106
|
+
115: 4, // HIL_STATE_QUATERNION
|
|
107
|
+
116: 76, // SCALED_IMU2
|
|
108
|
+
117: 116, // LOG_REQUEST_LIST
|
|
109
|
+
118: 255, // LOG_ENTRY
|
|
110
|
+
119: 116, // LOG_REQUEST_DATA
|
|
111
|
+
120: 134, // LOG_DATA
|
|
112
|
+
121: 237, // LOG_ERASE
|
|
113
|
+
122: 203, // LOG_REQUEST_END
|
|
114
|
+
123: 250, // GPS_INJECT_DATA
|
|
115
|
+
124: 87, // GPS2_RAW
|
|
116
|
+
125: 203, // POWER_STATUS
|
|
117
|
+
126: 79, // SERIAL_CONTROL
|
|
118
|
+
127: 226, // GPS_RTK
|
|
119
|
+
128: 226, // GPS2_RTK
|
|
120
|
+
129: 46, // SCALED_IMU3
|
|
121
|
+
130: 29, // DATA_TRANSMISSION_HANDSHAKE
|
|
122
|
+
131: 223, // ENCAPSULATED_DATA
|
|
123
|
+
132: 85, // DISTANCE_SENSOR
|
|
124
|
+
133: 6, // TERRAIN_REQUEST
|
|
125
|
+
134: 229, // TERRAIN_DATA
|
|
126
|
+
135: 203, // TERRAIN_CHECK
|
|
127
|
+
136: 1, // TERRAIN_REPORT
|
|
128
|
+
137: 195, // SCALED_PRESSURE2
|
|
129
|
+
138: 109, // ATT_POS_MOCAP
|
|
130
|
+
139: 168, // SET_ACTUATOR_CONTROL_TARGET
|
|
131
|
+
140: 181, // ACTUATOR_CONTROL_TARGET
|
|
132
|
+
141: 47, // ALTITUDE
|
|
133
|
+
142: 72, // RESOURCE_REQUEST
|
|
134
|
+
143: 196, // SCALED_PRESSURE3
|
|
135
|
+
144: 127, // FOLLOW_TARGET
|
|
136
|
+
146: 103, // CONTROL_SYSTEM_STATE
|
|
137
|
+
147: 154, // BATTERY_STATUS
|
|
138
|
+
148: 178, // AUTOPILOT_VERSION
|
|
139
|
+
149: 200, // LANDING_TARGET
|
|
140
|
+
230: 163, // ESTIMATOR_STATUS
|
|
141
|
+
231: 105, // WIND_COV
|
|
142
|
+
232: 151, // GPS_INPUT
|
|
143
|
+
233: 35, // GPS_RTCM_DATA
|
|
144
|
+
234: 150, // HIGH_LATENCY
|
|
145
|
+
235: 179, // HIGH_LATENCY2
|
|
146
|
+
241: 90, // VIBRATION
|
|
147
|
+
242: 104, // HOME_POSITION
|
|
148
|
+
243: 85, // SET_HOME_POSITION
|
|
149
|
+
244: 95, // MESSAGE_INTERVAL
|
|
150
|
+
245: 130, // EXTENDED_SYS_STATE
|
|
151
|
+
246: 184, // ADSB_VEHICLE
|
|
152
|
+
247: 81, // COLLISION
|
|
153
|
+
248: 8, // V2_EXTENSION
|
|
154
|
+
249: 204, // MEMORY_VECT
|
|
155
|
+
250: 49, // DEBUG_VECT
|
|
156
|
+
251: 170, // NAMED_VALUE_FLOAT
|
|
157
|
+
252: 44, // NAMED_VALUE_INT
|
|
158
|
+
253: 83, // STATUSTEXT
|
|
159
|
+
254: 46, // DEBUG
|
|
160
|
+
256: 71, // SETUP_SIGNING
|
|
161
|
+
257: 131, // BUTTON_CHANGE
|
|
162
|
+
258: 187, // PLAY_TUNE
|
|
163
|
+
259: 92, // CAMERA_INFORMATION
|
|
164
|
+
260: 146, // CAMERA_SETTINGS
|
|
165
|
+
261: 179, // STORAGE_INFORMATION
|
|
166
|
+
262: 12, // CAMERA_CAPTURE_STATUS
|
|
167
|
+
263: 133, // CAMERA_IMAGE_CAPTURED
|
|
168
|
+
264: 49, // FLIGHT_INFORMATION
|
|
169
|
+
265: 26, // MOUNT_ORIENTATION
|
|
170
|
+
266: 193, // LOGGING_DATA
|
|
171
|
+
267: 35, // LOGGING_DATA_ACKED
|
|
172
|
+
268: 84, // LOGGING_ACK
|
|
173
|
+
269: 109, // VIDEO_STREAM_INFORMATION
|
|
174
|
+
270: 59, // VIDEO_STREAM_STATUS
|
|
175
|
+
299: 19 // WIFI_CONFIG_AP
|
|
176
|
+
};
|
|
177
|
+
return crcExtras[messageId] || 0;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.CRCCalculator = CRCCalculator;
|
|
181
|
+
CRCCalculator.CRC_INIT = 0xFFFF;
|
|
182
|
+
//# sourceMappingURL=crc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crc.js","sourceRoot":"","sources":["../../src/parser/crc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MAVLinkFrame } from './types';
|
|
2
|
+
export declare class MAVLinkFrameParser {
|
|
3
|
+
private static readonly MAVLINK_V1_MAGIC;
|
|
4
|
+
private static readonly MAVLINK_V2_MAGIC;
|
|
5
|
+
private static readonly MAVLINK_V1_HEADER_SIZE;
|
|
6
|
+
private static readonly MAVLINK_V2_HEADER_SIZE;
|
|
7
|
+
private static readonly MAVLINK_CHECKSUM_SIZE;
|
|
8
|
+
private static readonly MAVLINK_V2_SIGNATURE_SIZE;
|
|
9
|
+
parseFrame(data: Uint8Array): MAVLinkFrame & {
|
|
10
|
+
protocol_version: 1 | 2;
|
|
11
|
+
};
|
|
12
|
+
private parseV1Frame;
|
|
13
|
+
private parseV2Frame;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=frame-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame-parser.d.ts","sourceRoot":"","sources":["../../src/parser/frame-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AAEpD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAK;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAM;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAK;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAM;IAEhD,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG;QAAE,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAA;KAAE;IAoC/E,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,YAAY;CA6BrB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAVLinkFrameParser = void 0;
|
|
4
|
+
// MAVLink frame parser for protocol v1 and v2
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
class MAVLinkFrameParser {
|
|
7
|
+
parseFrame(data) {
|
|
8
|
+
if (data.length < 8) {
|
|
9
|
+
throw new types_1.ParserError('Insufficient data for MAVLink frame');
|
|
10
|
+
}
|
|
11
|
+
const magic = data[0];
|
|
12
|
+
const isV2 = magic === MAVLinkFrameParser.MAVLINK_V2_MAGIC;
|
|
13
|
+
const isV1 = magic === MAVLinkFrameParser.MAVLINK_V1_MAGIC;
|
|
14
|
+
if (!isV1 && !isV2) {
|
|
15
|
+
throw new types_1.ParserError(`Invalid magic byte: 0x${magic.toString(16)}`);
|
|
16
|
+
}
|
|
17
|
+
const headerSize = isV2 ? MAVLinkFrameParser.MAVLINK_V2_HEADER_SIZE : MAVLinkFrameParser.MAVLINK_V1_HEADER_SIZE;
|
|
18
|
+
if (data.length < headerSize) {
|
|
19
|
+
throw new types_1.ParserError('Insufficient data for header');
|
|
20
|
+
}
|
|
21
|
+
const payloadLength = data[1];
|
|
22
|
+
let totalSize = headerSize + payloadLength + MAVLinkFrameParser.MAVLINK_CHECKSUM_SIZE;
|
|
23
|
+
if (isV2) {
|
|
24
|
+
const compatibleFlags = data[3];
|
|
25
|
+
if (compatibleFlags & 0x01) {
|
|
26
|
+
totalSize += MAVLinkFrameParser.MAVLINK_V2_SIGNATURE_SIZE;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (data.length < totalSize) {
|
|
30
|
+
throw new types_1.ParserError('Insufficient data for complete frame');
|
|
31
|
+
}
|
|
32
|
+
return isV2 ? this.parseV2Frame(data, payloadLength) : this.parseV1Frame(data, payloadLength);
|
|
33
|
+
}
|
|
34
|
+
parseV1Frame(data, payloadLength) {
|
|
35
|
+
const payloadStart = MAVLinkFrameParser.MAVLINK_V1_HEADER_SIZE;
|
|
36
|
+
const checksumStart = payloadStart + payloadLength;
|
|
37
|
+
return {
|
|
38
|
+
protocol_version: 1,
|
|
39
|
+
magic: data[0],
|
|
40
|
+
length: payloadLength,
|
|
41
|
+
sequence: data[2],
|
|
42
|
+
system_id: data[3],
|
|
43
|
+
component_id: data[4],
|
|
44
|
+
message_id: data[5],
|
|
45
|
+
payload: data.slice(payloadStart, checksumStart),
|
|
46
|
+
checksum: (data[checksumStart + 1] << 8) | data[checksumStart]
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
parseV2Frame(data, payloadLength) {
|
|
50
|
+
const payloadStart = MAVLinkFrameParser.MAVLINK_V2_HEADER_SIZE;
|
|
51
|
+
const checksumStart = payloadStart + payloadLength;
|
|
52
|
+
const messageId = data[7] | (data[8] << 8) | (data[9] << 16);
|
|
53
|
+
const compatibleFlags = data[3];
|
|
54
|
+
const hasSignature = (compatibleFlags & 0x01) !== 0;
|
|
55
|
+
const frame = {
|
|
56
|
+
protocol_version: 2,
|
|
57
|
+
magic: data[0],
|
|
58
|
+
length: payloadLength,
|
|
59
|
+
incompatible_flags: data[2],
|
|
60
|
+
compatible_flags: compatibleFlags,
|
|
61
|
+
sequence: data[4],
|
|
62
|
+
system_id: data[5],
|
|
63
|
+
component_id: data[6],
|
|
64
|
+
message_id: messageId,
|
|
65
|
+
payload: data.slice(payloadStart, checksumStart),
|
|
66
|
+
checksum: (data[checksumStart + 1] << 8) | data[checksumStart]
|
|
67
|
+
};
|
|
68
|
+
if (hasSignature) {
|
|
69
|
+
const signatureStart = checksumStart + MAVLinkFrameParser.MAVLINK_CHECKSUM_SIZE;
|
|
70
|
+
frame.signature = data.slice(signatureStart, signatureStart + MAVLinkFrameParser.MAVLINK_V2_SIGNATURE_SIZE);
|
|
71
|
+
}
|
|
72
|
+
return frame;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.MAVLinkFrameParser = MAVLinkFrameParser;
|
|
76
|
+
MAVLinkFrameParser.MAVLINK_V1_MAGIC = 0xFE;
|
|
77
|
+
MAVLinkFrameParser.MAVLINK_V2_MAGIC = 0xFD;
|
|
78
|
+
MAVLinkFrameParser.MAVLINK_V1_HEADER_SIZE = 6;
|
|
79
|
+
MAVLinkFrameParser.MAVLINK_V2_HEADER_SIZE = 10;
|
|
80
|
+
MAVLinkFrameParser.MAVLINK_CHECKSUM_SIZE = 2;
|
|
81
|
+
MAVLinkFrameParser.MAVLINK_V2_SIGNATURE_SIZE = 13;
|
|
82
|
+
//# sourceMappingURL=frame-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame-parser.js","sourceRoot":"","sources":["../../src/parser/frame-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { MAVLinkParser } from './mavlink-parser';
|
|
2
|
+
export { MAVLinkFrameParser } from './frame-parser';
|
|
3
|
+
export { MAVLinkMessageDecoder } from './message-decoder';
|
|
4
|
+
export { CRCCalculator } from './crc';
|
|
5
|
+
export * from './types';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.CRCCalculator = exports.MAVLinkMessageDecoder = exports.MAVLinkFrameParser = exports.MAVLinkParser = void 0;
|
|
18
|
+
// MAVLink Parser exports
|
|
19
|
+
var mavlink_parser_1 = require("./mavlink-parser");
|
|
20
|
+
Object.defineProperty(exports, "MAVLinkParser", { enumerable: true, get: function () { return mavlink_parser_1.MAVLinkParser; } });
|
|
21
|
+
var frame_parser_1 = require("./frame-parser");
|
|
22
|
+
Object.defineProperty(exports, "MAVLinkFrameParser", { enumerable: true, get: function () { return frame_parser_1.MAVLinkFrameParser; } });
|
|
23
|
+
var message_decoder_1 = require("./message-decoder");
|
|
24
|
+
Object.defineProperty(exports, "MAVLinkMessageDecoder", { enumerable: true, get: function () { return message_decoder_1.MAVLinkMessageDecoder; } });
|
|
25
|
+
var crc_1 = require("./crc");
|
|
26
|
+
Object.defineProperty(exports, "CRCCalculator", { enumerable: true, get: function () { return crc_1.CRCCalculator; } });
|
|
27
|
+
__exportStar(require("./types"), exports);
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yBAAyB;AACzB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAC3B,qDAA0D;AAAjD,wHAAA,qBAAqB,OAAA;AAC9B,6BAAsC;AAA7B,oGAAA,aAAa,OAAA;AACtB,0CAAwB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ParsedMAVLinkMessage, ParserOptions } from './types';
|
|
2
|
+
export declare class MAVLinkParser {
|
|
3
|
+
private frameParser;
|
|
4
|
+
private messageDecoder;
|
|
5
|
+
private buffer;
|
|
6
|
+
private bufferLength;
|
|
7
|
+
private options;
|
|
8
|
+
constructor(options?: ParserOptions);
|
|
9
|
+
/**
|
|
10
|
+
* Parse raw bytes from data channel and return JSON messages
|
|
11
|
+
* @param data Raw bytes from data channel (WebRTC, WebSocket, etc.)
|
|
12
|
+
* @returns Array of parsed MAVLink messages in JSON format
|
|
13
|
+
*/
|
|
14
|
+
parseBytes(data: Uint8Array): ParsedMAVLinkMessage[];
|
|
15
|
+
/**
|
|
16
|
+
* Parse a single raw message (for testing or when you have complete frames)
|
|
17
|
+
*/
|
|
18
|
+
parseMessage(data: Uint8Array): ParsedMAVLinkMessage | null;
|
|
19
|
+
private appendToBuffer;
|
|
20
|
+
private tryParseFrame;
|
|
21
|
+
private getFrameLength;
|
|
22
|
+
private validateFrameCRC;
|
|
23
|
+
/**
|
|
24
|
+
* Reset parser state (useful when connection is reset)
|
|
25
|
+
*/
|
|
26
|
+
reset(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Get parser statistics
|
|
29
|
+
*/
|
|
30
|
+
getStats(): {
|
|
31
|
+
bufferSize: number;
|
|
32
|
+
bufferUsed: number;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=mavlink-parser.d.ts.map
|
|
@@ -0,0 +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"}
|