@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,204 @@
|
|
|
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
|
+
if (this.options.validateCRC && !this.validateFrameCRC(frame)) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// Decode message
|
|
53
|
+
try {
|
|
54
|
+
const message = this.messageDecoder.decode(frame);
|
|
55
|
+
messages.push(message);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
// Message decode error, continue with next frame
|
|
59
|
+
console.warn(`Failed to decode message ${frame.message_id}:`, error);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Remove processed bytes from buffer
|
|
63
|
+
if (processedBytes > 0) {
|
|
64
|
+
this.buffer.copyWithin(0, processedBytes, this.bufferLength);
|
|
65
|
+
this.bufferLength -= processedBytes;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
throw new types_1.ParserError(`Parser error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
70
|
+
}
|
|
71
|
+
return messages;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Parse a single raw message (for testing or when you have complete frames)
|
|
75
|
+
*/
|
|
76
|
+
parseMessage(data) {
|
|
77
|
+
try {
|
|
78
|
+
const frame = this.frameParser.parseFrame(data);
|
|
79
|
+
if (this.options.validateCRC && !this.validateFrameCRC(frame)) {
|
|
80
|
+
throw new types_1.ParserError('CRC validation failed');
|
|
81
|
+
}
|
|
82
|
+
return this.messageDecoder.decode(frame);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
throw new types_1.ParserError(`Failed to parse message: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
appendToBuffer(data) {
|
|
89
|
+
// Check if we need to expand the buffer
|
|
90
|
+
if (this.buffer.length - this.bufferLength < data.length) {
|
|
91
|
+
// Check max buffer size
|
|
92
|
+
if (this.bufferLength + data.length > this.options.maxBufferSize) {
|
|
93
|
+
// Reset buffer to prevent memory issues
|
|
94
|
+
this.buffer = new Uint8Array(this.options.maxBufferSize);
|
|
95
|
+
this.bufferLength = 0;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
// Expand buffer
|
|
99
|
+
const newBuffer = new Uint8Array(this.buffer.length * 2);
|
|
100
|
+
newBuffer.set(this.buffer.subarray(0, this.bufferLength));
|
|
101
|
+
this.buffer = newBuffer;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Append new data
|
|
105
|
+
this.buffer.set(data, this.bufferLength);
|
|
106
|
+
this.bufferLength += data.length;
|
|
107
|
+
}
|
|
108
|
+
tryParseFrame(offset) {
|
|
109
|
+
if (offset >= this.bufferLength) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
// Find next frame start
|
|
113
|
+
let startIndex = -1;
|
|
114
|
+
for (let i = offset; i < this.bufferLength; i++) {
|
|
115
|
+
const byte = this.buffer[i];
|
|
116
|
+
if (byte === 0xFE || byte === 0xFD) { // MAVLink v1 or v2 magic
|
|
117
|
+
startIndex = i;
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (startIndex === -1) {
|
|
122
|
+
// No frame start found
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
try {
|
|
126
|
+
// Try to parse frame from start position
|
|
127
|
+
const frameData = this.buffer.subarray(startIndex, this.bufferLength);
|
|
128
|
+
const frame = this.frameParser.parseFrame(frameData);
|
|
129
|
+
// Frame parsed successfully
|
|
130
|
+
const frameLength = this.getFrameLength(frame);
|
|
131
|
+
const bytesConsumed = startIndex - offset + frameLength;
|
|
132
|
+
return { frame, bytesConsumed };
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
// Not enough data or parse error
|
|
136
|
+
if (error instanceof Error && error.message.includes('Insufficient data')) {
|
|
137
|
+
return null; // Wait for more data
|
|
138
|
+
}
|
|
139
|
+
return error; // Parse error, will skip this byte
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
getFrameLength(frame) {
|
|
143
|
+
// Calculate total frame length including header, payload, checksum, and signature
|
|
144
|
+
const headerSize = frame.protocol_version === 2 ? 10 : 6;
|
|
145
|
+
const payloadSize = frame.payload.length;
|
|
146
|
+
const checksumSize = 2;
|
|
147
|
+
const signatureSize = frame.signature ? 13 : 0;
|
|
148
|
+
return headerSize + payloadSize + checksumSize + signatureSize;
|
|
149
|
+
}
|
|
150
|
+
validateFrameCRC(frame) {
|
|
151
|
+
try {
|
|
152
|
+
// Reconstruct the data for CRC calculation
|
|
153
|
+
const headerSize = frame.protocol_version === 2 ? 9 : 5; // Exclude magic byte
|
|
154
|
+
const data = new Uint8Array(headerSize + frame.payload.length);
|
|
155
|
+
let offset = 0;
|
|
156
|
+
if (frame.protocol_version === 2) {
|
|
157
|
+
data[offset++] = frame.payload.length;
|
|
158
|
+
data[offset++] = frame.incompatible_flags || 0;
|
|
159
|
+
data[offset++] = frame.compatible_flags || 0;
|
|
160
|
+
data[offset++] = frame.sequence;
|
|
161
|
+
data[offset++] = frame.system_id;
|
|
162
|
+
data[offset++] = frame.component_id;
|
|
163
|
+
data[offset++] = frame.message_id & 0xFF;
|
|
164
|
+
data[offset++] = (frame.message_id >> 8) & 0xFF;
|
|
165
|
+
data[offset++] = (frame.message_id >> 16) & 0xFF;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
data[offset++] = frame.payload.length;
|
|
169
|
+
data[offset++] = frame.sequence;
|
|
170
|
+
data[offset++] = frame.system_id;
|
|
171
|
+
data[offset++] = frame.component_id;
|
|
172
|
+
data[offset++] = frame.message_id & 0xFF;
|
|
173
|
+
}
|
|
174
|
+
// Add payload
|
|
175
|
+
data.set(frame.payload, offset);
|
|
176
|
+
// Calculate CRC with extra byte
|
|
177
|
+
const crcExtra = crc_1.CRCCalculator.getCRCExtra(frame.message_id);
|
|
178
|
+
const calculatedCRC = crc_1.CRCCalculator.calculate(data, crcExtra);
|
|
179
|
+
return calculatedCRC === frame.checksum;
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
console.warn('CRC validation error:', error);
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Reset parser state (useful when connection is reset)
|
|
188
|
+
*/
|
|
189
|
+
reset() {
|
|
190
|
+
this.buffer.fill(0);
|
|
191
|
+
this.bufferLength = 0;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get parser statistics
|
|
195
|
+
*/
|
|
196
|
+
getStats() {
|
|
197
|
+
return {
|
|
198
|
+
bufferSize: this.buffer.length,
|
|
199
|
+
bufferUsed: this.bufferLength
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
exports.MAVLinkParser = MAVLinkParser;
|
|
204
|
+
//# sourceMappingURL=mavlink-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mavlink-parser.js","sourceRoot":"","sources":["../../src/parser/mavlink-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MAVLinkFrame, ParsedMAVLinkMessage } from './types';
|
|
2
|
+
export declare class MAVLinkMessageDecoder {
|
|
3
|
+
private messageMap;
|
|
4
|
+
constructor();
|
|
5
|
+
decode(frame: MAVLinkFrame & {
|
|
6
|
+
protocol_version: 1 | 2;
|
|
7
|
+
}): ParsedMAVLinkMessage;
|
|
8
|
+
private decodePayload;
|
|
9
|
+
private getMessageName;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=message-decoder.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAVLinkMessageDecoder = void 0;
|
|
4
|
+
// Message decoder for MAVLink messages
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
class MAVLinkMessageDecoder {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.messageMap = new Map();
|
|
9
|
+
// Message map initialization - would be enhanced with actual message definitions
|
|
10
|
+
}
|
|
11
|
+
decode(frame) {
|
|
12
|
+
const timestamp = Date.now();
|
|
13
|
+
try {
|
|
14
|
+
// Decode payload based on message ID
|
|
15
|
+
const payload = this.decodePayload(frame.message_id, frame.payload);
|
|
16
|
+
const messageName = this.getMessageName(frame.message_id);
|
|
17
|
+
return {
|
|
18
|
+
timestamp,
|
|
19
|
+
system_id: frame.system_id,
|
|
20
|
+
component_id: frame.component_id,
|
|
21
|
+
message_id: frame.message_id,
|
|
22
|
+
message_name: messageName,
|
|
23
|
+
sequence: frame.sequence,
|
|
24
|
+
payload,
|
|
25
|
+
protocol_version: frame.protocol_version,
|
|
26
|
+
checksum: frame.checksum,
|
|
27
|
+
signature: frame.signature
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
throw new types_1.ParserError(`Failed to decode message: ${error instanceof Error ? error.message : 'Unknown error'}`, frame);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
decodePayload(messageId, payload) {
|
|
35
|
+
// Basic payload decoder - this would be enhanced with proper type definitions
|
|
36
|
+
const decoded = {};
|
|
37
|
+
switch (messageId) {
|
|
38
|
+
case 0: // HEARTBEAT
|
|
39
|
+
decoded.type = payload[0];
|
|
40
|
+
decoded.autopilot = payload[1];
|
|
41
|
+
decoded.base_mode = payload[2];
|
|
42
|
+
decoded.custom_mode = new DataView(payload.buffer, payload.byteOffset).getUint32(3, true);
|
|
43
|
+
decoded.system_status = payload[7];
|
|
44
|
+
decoded.mavlink_version = payload[8];
|
|
45
|
+
break;
|
|
46
|
+
case 1: // SYS_STATUS
|
|
47
|
+
decoded.onboard_control_sensors_present = new DataView(payload.buffer, payload.byteOffset).getUint32(0, true);
|
|
48
|
+
decoded.onboard_control_sensors_enabled = new DataView(payload.buffer, payload.byteOffset).getUint32(4, true);
|
|
49
|
+
decoded.onboard_control_sensors_health = new DataView(payload.buffer, payload.byteOffset).getUint32(8, true);
|
|
50
|
+
decoded.load = new DataView(payload.buffer, payload.byteOffset).getUint16(12, true);
|
|
51
|
+
decoded.voltage_battery = new DataView(payload.buffer, payload.byteOffset).getUint16(14, true);
|
|
52
|
+
decoded.current_battery = new DataView(payload.buffer, payload.byteOffset).getInt16(16, true);
|
|
53
|
+
decoded.battery_remaining = payload[18];
|
|
54
|
+
break;
|
|
55
|
+
case 4: // PING
|
|
56
|
+
decoded.time_usec = new DataView(payload.buffer, payload.byteOffset).getBigUint64(0, true);
|
|
57
|
+
decoded.seq = new DataView(payload.buffer, payload.byteOffset).getUint32(8, true);
|
|
58
|
+
decoded.target_system = payload[12];
|
|
59
|
+
decoded.target_component = payload[13];
|
|
60
|
+
break;
|
|
61
|
+
case 30: // ATTITUDE
|
|
62
|
+
decoded.time_boot_ms = new DataView(payload.buffer, payload.byteOffset).getUint32(0, true);
|
|
63
|
+
decoded.roll = new DataView(payload.buffer, payload.byteOffset).getFloat32(4, true);
|
|
64
|
+
decoded.pitch = new DataView(payload.buffer, payload.byteOffset).getFloat32(8, true);
|
|
65
|
+
decoded.yaw = new DataView(payload.buffer, payload.byteOffset).getFloat32(12, true);
|
|
66
|
+
decoded.rollspeed = new DataView(payload.buffer, payload.byteOffset).getFloat32(16, true);
|
|
67
|
+
decoded.pitchspeed = new DataView(payload.buffer, payload.byteOffset).getFloat32(20, true);
|
|
68
|
+
decoded.yawspeed = new DataView(payload.buffer, payload.byteOffset).getFloat32(24, true);
|
|
69
|
+
break;
|
|
70
|
+
case 33: // GLOBAL_POSITION_INT
|
|
71
|
+
decoded.time_boot_ms = new DataView(payload.buffer, payload.byteOffset).getUint32(0, true);
|
|
72
|
+
decoded.lat = new DataView(payload.buffer, payload.byteOffset).getInt32(4, true);
|
|
73
|
+
decoded.lon = new DataView(payload.buffer, payload.byteOffset).getInt32(8, true);
|
|
74
|
+
decoded.alt = new DataView(payload.buffer, payload.byteOffset).getInt32(12, true);
|
|
75
|
+
decoded.relative_alt = new DataView(payload.buffer, payload.byteOffset).getInt32(16, true);
|
|
76
|
+
decoded.vx = new DataView(payload.buffer, payload.byteOffset).getInt16(20, true);
|
|
77
|
+
decoded.vy = new DataView(payload.buffer, payload.byteOffset).getInt16(22, true);
|
|
78
|
+
decoded.vz = new DataView(payload.buffer, payload.byteOffset).getInt16(24, true);
|
|
79
|
+
decoded.hdg = new DataView(payload.buffer, payload.byteOffset).getUint16(26, true);
|
|
80
|
+
break;
|
|
81
|
+
default:
|
|
82
|
+
// For unknown messages, return raw bytes as hex
|
|
83
|
+
decoded.raw_data = Array.from(payload).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
return decoded;
|
|
87
|
+
}
|
|
88
|
+
getMessageName(messageId) {
|
|
89
|
+
const messageNames = {
|
|
90
|
+
0: 'HEARTBEAT',
|
|
91
|
+
1: 'SYS_STATUS',
|
|
92
|
+
2: 'SYSTEM_TIME',
|
|
93
|
+
4: 'PING',
|
|
94
|
+
5: 'CHANGE_OPERATOR_CONTROL',
|
|
95
|
+
6: 'CHANGE_OPERATOR_CONTROL_ACK',
|
|
96
|
+
7: 'AUTH_KEY',
|
|
97
|
+
11: 'SET_MODE',
|
|
98
|
+
20: 'PARAM_REQUEST_READ',
|
|
99
|
+
21: 'PARAM_REQUEST_LIST',
|
|
100
|
+
22: 'PARAM_VALUE',
|
|
101
|
+
23: 'PARAM_SET',
|
|
102
|
+
24: 'GPS_RAW_INT',
|
|
103
|
+
25: 'GPS_STATUS',
|
|
104
|
+
26: 'SCALED_IMU',
|
|
105
|
+
27: 'RAW_IMU',
|
|
106
|
+
28: 'RAW_PRESSURE',
|
|
107
|
+
29: 'SCALED_PRESSURE',
|
|
108
|
+
30: 'ATTITUDE',
|
|
109
|
+
31: 'ATTITUDE_QUATERNION',
|
|
110
|
+
32: 'LOCAL_POSITION_NED',
|
|
111
|
+
33: 'GLOBAL_POSITION_INT',
|
|
112
|
+
34: 'RC_CHANNELS_SCALED',
|
|
113
|
+
35: 'RC_CHANNELS_RAW',
|
|
114
|
+
36: 'SERVO_OUTPUT_RAW',
|
|
115
|
+
37: 'MISSION_REQUEST_PARTIAL_LIST',
|
|
116
|
+
38: 'MISSION_WRITE_PARTIAL_LIST',
|
|
117
|
+
39: 'MISSION_ITEM',
|
|
118
|
+
40: 'MISSION_REQUEST',
|
|
119
|
+
41: 'MISSION_SET_CURRENT',
|
|
120
|
+
42: 'MISSION_CURRENT',
|
|
121
|
+
43: 'MISSION_REQUEST_LIST',
|
|
122
|
+
44: 'MISSION_COUNT',
|
|
123
|
+
45: 'MISSION_CLEAR_ALL',
|
|
124
|
+
46: 'MISSION_ITEM_REACHED',
|
|
125
|
+
47: 'MISSION_ACK',
|
|
126
|
+
48: 'SET_GPS_GLOBAL_ORIGIN',
|
|
127
|
+
49: 'GPS_GLOBAL_ORIGIN',
|
|
128
|
+
50: 'PARAM_MAP_RC',
|
|
129
|
+
51: 'MISSION_REQUEST_INT',
|
|
130
|
+
54: 'SAFETY_SET_ALLOWED_AREA',
|
|
131
|
+
55: 'SAFETY_ALLOWED_AREA',
|
|
132
|
+
61: 'ATTITUDE_QUATERNION_COV',
|
|
133
|
+
62: 'NAV_CONTROLLER_OUTPUT',
|
|
134
|
+
63: 'GLOBAL_POSITION_INT_COV',
|
|
135
|
+
64: 'LOCAL_POSITION_NED_COV',
|
|
136
|
+
65: 'RC_CHANNELS',
|
|
137
|
+
66: 'REQUEST_DATA_STREAM',
|
|
138
|
+
67: 'DATA_STREAM',
|
|
139
|
+
69: 'MANUAL_CONTROL',
|
|
140
|
+
70: 'RC_CHANNELS_OVERRIDE',
|
|
141
|
+
73: 'MISSION_ITEM_INT',
|
|
142
|
+
74: 'VFR_HUD',
|
|
143
|
+
75: 'COMMAND_INT',
|
|
144
|
+
76: 'COMMAND_LONG',
|
|
145
|
+
77: 'COMMAND_ACK',
|
|
146
|
+
81: 'MANUAL_SETPOINT',
|
|
147
|
+
82: 'SET_ATTITUDE_TARGET',
|
|
148
|
+
83: 'ATTITUDE_TARGET',
|
|
149
|
+
84: 'SET_POSITION_TARGET_LOCAL_NED',
|
|
150
|
+
85: 'POSITION_TARGET_LOCAL_NED',
|
|
151
|
+
86: 'SET_POSITION_TARGET_GLOBAL_INT',
|
|
152
|
+
87: 'POSITION_TARGET_GLOBAL_INT',
|
|
153
|
+
89: 'LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET',
|
|
154
|
+
90: 'HIL_STATE',
|
|
155
|
+
91: 'HIL_CONTROLS',
|
|
156
|
+
92: 'HIL_RC_INPUTS_RAW',
|
|
157
|
+
100: 'OPTICAL_FLOW',
|
|
158
|
+
101: 'GLOBAL_VISION_POSITION_ESTIMATE',
|
|
159
|
+
102: 'VISION_POSITION_ESTIMATE',
|
|
160
|
+
103: 'VISION_SPEED_ESTIMATE',
|
|
161
|
+
104: 'VICON_POSITION_ESTIMATE',
|
|
162
|
+
105: 'HIGHRES_IMU',
|
|
163
|
+
106: 'OPTICAL_FLOW_RAD',
|
|
164
|
+
107: 'HIL_SENSOR',
|
|
165
|
+
108: 'SIM_STATE',
|
|
166
|
+
109: 'RADIO_STATUS',
|
|
167
|
+
110: 'FILE_TRANSFER_PROTOCOL',
|
|
168
|
+
111: 'TIMESYNC',
|
|
169
|
+
112: 'CAMERA_TRIGGER',
|
|
170
|
+
113: 'HIL_GPS',
|
|
171
|
+
114: 'HIL_OPTICAL_FLOW',
|
|
172
|
+
115: 'HIL_STATE_QUATERNION',
|
|
173
|
+
116: 'SCALED_IMU2',
|
|
174
|
+
117: 'LOG_REQUEST_LIST',
|
|
175
|
+
118: 'LOG_ENTRY',
|
|
176
|
+
119: 'LOG_REQUEST_DATA',
|
|
177
|
+
120: 'LOG_DATA',
|
|
178
|
+
121: 'LOG_ERASE',
|
|
179
|
+
122: 'LOG_REQUEST_END',
|
|
180
|
+
123: 'GPS_INJECT_DATA',
|
|
181
|
+
124: 'GPS2_RAW',
|
|
182
|
+
125: 'POWER_STATUS',
|
|
183
|
+
126: 'SERIAL_CONTROL',
|
|
184
|
+
127: 'GPS_RTK',
|
|
185
|
+
128: 'GPS2_RTK',
|
|
186
|
+
129: 'SCALED_IMU3',
|
|
187
|
+
130: 'DATA_TRANSMISSION_HANDSHAKE',
|
|
188
|
+
131: 'ENCAPSULATED_DATA',
|
|
189
|
+
132: 'DISTANCE_SENSOR',
|
|
190
|
+
133: 'TERRAIN_REQUEST',
|
|
191
|
+
134: 'TERRAIN_DATA',
|
|
192
|
+
135: 'TERRAIN_CHECK',
|
|
193
|
+
136: 'TERRAIN_REPORT',
|
|
194
|
+
137: 'SCALED_PRESSURE2',
|
|
195
|
+
138: 'ATT_POS_MOCAP',
|
|
196
|
+
139: 'SET_ACTUATOR_CONTROL_TARGET',
|
|
197
|
+
140: 'ACTUATOR_CONTROL_TARGET',
|
|
198
|
+
141: 'ALTITUDE',
|
|
199
|
+
142: 'RESOURCE_REQUEST',
|
|
200
|
+
143: 'SCALED_PRESSURE3',
|
|
201
|
+
144: 'FOLLOW_TARGET',
|
|
202
|
+
146: 'CONTROL_SYSTEM_STATE',
|
|
203
|
+
147: 'BATTERY_STATUS',
|
|
204
|
+
148: 'AUTOPILOT_VERSION',
|
|
205
|
+
149: 'LANDING_TARGET',
|
|
206
|
+
230: 'ESTIMATOR_STATUS',
|
|
207
|
+
231: 'WIND_COV',
|
|
208
|
+
232: 'GPS_INPUT',
|
|
209
|
+
233: 'GPS_RTCM_DATA',
|
|
210
|
+
234: 'HIGH_LATENCY',
|
|
211
|
+
235: 'HIGH_LATENCY2',
|
|
212
|
+
241: 'VIBRATION',
|
|
213
|
+
242: 'HOME_POSITION',
|
|
214
|
+
243: 'SET_HOME_POSITION',
|
|
215
|
+
244: 'MESSAGE_INTERVAL',
|
|
216
|
+
245: 'EXTENDED_SYS_STATE',
|
|
217
|
+
246: 'ADSB_VEHICLE',
|
|
218
|
+
247: 'COLLISION',
|
|
219
|
+
248: 'V2_EXTENSION',
|
|
220
|
+
249: 'MEMORY_VECT',
|
|
221
|
+
250: 'DEBUG_VECT',
|
|
222
|
+
251: 'NAMED_VALUE_FLOAT',
|
|
223
|
+
252: 'NAMED_VALUE_INT',
|
|
224
|
+
253: 'STATUSTEXT',
|
|
225
|
+
254: 'DEBUG',
|
|
226
|
+
256: 'SETUP_SIGNING',
|
|
227
|
+
257: 'BUTTON_CHANGE',
|
|
228
|
+
258: 'PLAY_TUNE',
|
|
229
|
+
259: 'CAMERA_INFORMATION',
|
|
230
|
+
260: 'CAMERA_SETTINGS',
|
|
231
|
+
261: 'STORAGE_INFORMATION',
|
|
232
|
+
262: 'CAMERA_CAPTURE_STATUS',
|
|
233
|
+
263: 'CAMERA_IMAGE_CAPTURED',
|
|
234
|
+
264: 'FLIGHT_INFORMATION',
|
|
235
|
+
265: 'MOUNT_ORIENTATION',
|
|
236
|
+
266: 'LOGGING_DATA',
|
|
237
|
+
267: 'LOGGING_DATA_ACKED',
|
|
238
|
+
268: 'LOGGING_ACK',
|
|
239
|
+
269: 'VIDEO_STREAM_INFORMATION',
|
|
240
|
+
270: 'VIDEO_STREAM_STATUS',
|
|
241
|
+
299: 'WIFI_CONFIG_AP'
|
|
242
|
+
};
|
|
243
|
+
return messageNames[messageId] || `UNKNOWN_${messageId}`;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
exports.MAVLinkMessageDecoder = MAVLinkMessageDecoder;
|
|
247
|
+
//# sourceMappingURL=message-decoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-decoder.js","sourceRoot":"","sources":["../../src/parser/message-decoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
signature?: Uint8Array;
|
|
12
|
+
}
|
|
13
|
+
export interface MAVLinkFrame {
|
|
14
|
+
magic: number;
|
|
15
|
+
length: number;
|
|
16
|
+
incompatible_flags?: number;
|
|
17
|
+
compatible_flags?: number;
|
|
18
|
+
sequence: number;
|
|
19
|
+
system_id: number;
|
|
20
|
+
component_id: number;
|
|
21
|
+
message_id: number;
|
|
22
|
+
payload: Uint8Array;
|
|
23
|
+
checksum: number;
|
|
24
|
+
signature?: Uint8Array;
|
|
25
|
+
}
|
|
26
|
+
export interface ParserOptions {
|
|
27
|
+
validateCRC?: boolean;
|
|
28
|
+
allowProtocolV1?: boolean;
|
|
29
|
+
allowProtocolV2?: boolean;
|
|
30
|
+
maxBufferSize?: number;
|
|
31
|
+
}
|
|
32
|
+
export declare class ParserError extends Error {
|
|
33
|
+
frame?: any;
|
|
34
|
+
constructor(message: string, frame?: any);
|
|
35
|
+
}
|
|
36
|
+
export interface ParserResult {
|
|
37
|
+
messages: ParsedMAVLinkMessage[];
|
|
38
|
+
errors: ParserError[];
|
|
39
|
+
bytesProcessed: number;
|
|
40
|
+
remainingBytes: Uint8Array;
|
|
41
|
+
}
|
|
42
|
+
export interface FieldDescriptor {
|
|
43
|
+
name: string;
|
|
44
|
+
type: string;
|
|
45
|
+
enum?: string;
|
|
46
|
+
arrayLength?: number;
|
|
47
|
+
}
|
|
48
|
+
export interface MessageDescriptor {
|
|
49
|
+
id: number;
|
|
50
|
+
name: string;
|
|
51
|
+
fields: FieldDescriptor[];
|
|
52
|
+
crc_extra: number;
|
|
53
|
+
}
|
|
54
|
+
export interface DialectRegistry {
|
|
55
|
+
[dialectName: string]: {
|
|
56
|
+
[messageId: number]: MessageDescriptor;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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,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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/parser/types.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;AAoC5C,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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TypeScriptDialect } from './types';
|
|
2
|
+
export declare class TemplateEngine {
|
|
3
|
+
private templates;
|
|
4
|
+
constructor();
|
|
5
|
+
private initializeTemplates;
|
|
6
|
+
private registerHelpers;
|
|
7
|
+
generateTypes(dialect: TypeScriptDialect): string;
|
|
8
|
+
generateEnums(dialect: TypeScriptDialect): string;
|
|
9
|
+
generateMessages(dialect: TypeScriptDialect): string;
|
|
10
|
+
generateIndex(dialect: TypeScriptDialect, includeEnums?: boolean): string;
|
|
11
|
+
generateSingle(dialect: TypeScriptDialect): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=template-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../src/template-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,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"}
|