@aircast-4g/mavlink 1.1.7 → 1.1.8

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.
@@ -8,6 +8,34 @@ function isTestTypes(msg) {
8
8
 
9
9
  // Auto-generated decoder and parser for test dialect
10
10
  // Generated from MAVLink XML definitions
11
+ // Embedded MAVLink CRC implementation
12
+ const CRC_EXTRA = {
13
+ 17000: 0
14
+ };
15
+ class MAVLinkCRC {
16
+ static calculate(data, crcExtra) {
17
+ let crc = 0xffff;
18
+ // Process all message bytes using MCRF4XX algorithm
19
+ for (let i = 0; i < data.length; i++) {
20
+ let tmp = data[i] ^ (crc & 0xff);
21
+ tmp = (tmp ^ (tmp << 4)) & 0xff;
22
+ crc = ((crc >> 8) ^ (tmp << 8) ^ (tmp << 3) ^ (tmp >> 4)) & 0xffff;
23
+ }
24
+ // Add CRC_EXTRA byte using the same algorithm
25
+ let tmp = crcExtra ^ (crc & 0xff);
26
+ tmp = (tmp ^ (tmp << 4)) & 0xff;
27
+ crc = ((crc >> 8) ^ (tmp << 8) ^ (tmp << 3) ^ (tmp >> 4)) & 0xffff;
28
+ return crc;
29
+ }
30
+ static validate(data, messageId, receivedChecksum) {
31
+ const crcExtra = CRC_EXTRA[messageId];
32
+ if (crcExtra === undefined) {
33
+ return false;
34
+ }
35
+ const calculatedChecksum = this.calculate(data, crcExtra);
36
+ return calculatedChecksum === receivedChecksum;
37
+ }
38
+ }
11
39
  // Base dialect parser class
12
40
  class DialectParser {
13
41
  constructor(dialectName) {
@@ -95,7 +123,9 @@ class DialectParser {
95
123
  frameOffset += 13;
96
124
  }
97
125
  }
98
- frame.crc_ok = true; // Simplified - not doing CRC validation
126
+ // Validate CRC using proper MAVLink algorithm
127
+ const headerAndPayload = data.slice(offset + 1, offset + frameOffset - offset - 2);
128
+ frame.crc_ok = MAVLinkCRC.validate(headerAndPayload, frame.message_id, frame.checksum);
99
129
  frame.protocol_version = isV2 ? 2 : 1;
100
130
  return { frame: frame, bytesConsumed: frameOffset - offset };
101
131
  }
@@ -186,13 +216,30 @@ class DialectParser {
186
216
  const isArray = field.arrayLength !== undefined;
187
217
  const arrayLength = field.arrayLength || 1;
188
218
  if (isArray && arrayLength > 1) {
189
- const values = [];
190
- let totalBytes = 0;
191
219
  // Strip array notation from type to avoid double processing
192
220
  let baseType = field.type;
193
221
  if (baseType.includes('[') && baseType.includes(']')) {
194
222
  baseType = baseType.substring(0, baseType.indexOf('['));
195
223
  }
224
+ // Special handling for char arrays - return as string
225
+ if (baseType === 'char') {
226
+ const chars = [];
227
+ let totalBytes = 0;
228
+ for (let i = 0; i < arrayLength; i++) {
229
+ if (offset + totalBytes >= view.byteLength)
230
+ break;
231
+ const charCode = view.getUint8(offset + totalBytes);
232
+ if (charCode === 0)
233
+ break; // Null terminator
234
+ chars.push(String.fromCharCode(charCode));
235
+ totalBytes += 1;
236
+ }
237
+ // Return string value and total bytes for the array
238
+ return { value: chars.join(''), bytesRead: arrayLength }; // Always consume full array size
239
+ }
240
+ // Handle other array types
241
+ const values = [];
242
+ let totalBytes = 0;
196
243
  for (let i = 0; i < arrayLength; i++) {
197
244
  if (offset + totalBytes >= view.byteLength)
198
245
  break;
@@ -216,7 +263,7 @@ class DialectParser {
216
263
  case 'int8_t':
217
264
  return { value: view.getInt8(offset), bytesRead: 1 };
218
265
  case 'uint16_t':
219
- return { value: view.getUint16(offset, true), bytesRead: 2 };
266
+ return { value: view.getUint16(offset, false), bytesRead: 2 };
220
267
  case 'int16_t':
221
268
  return { value: view.getInt16(offset, true), bytesRead: 2 };
222
269
  case 'uint32_t':
@@ -282,6 +329,347 @@ class DialectParser {
282
329
  supportsMessage(messageId) {
283
330
  return this.messageDefinitions.has(messageId);
284
331
  }
332
+ // Serialization methods for outgoing commands
333
+ serializeMessage(message) {
334
+ const messageDef = Array.from(this.messageDefinitions.values())
335
+ .find(def => def.name === message.message_name);
336
+ if (!messageDef) {
337
+ throw new Error(`Unknown message type: ${message.message_name}`);
338
+ }
339
+ // Extract fields from either flat structure or payload structure
340
+ const messageFields = this.extractMessageFields(message, messageDef.fields);
341
+ // Complete the message with all defined fields (including extension fields with defaults)
342
+ const completeMessage = this.completeMessageWithDefaults(messageFields, messageDef.fields);
343
+ const payload = this.serializePayload(completeMessage, messageDef.fields);
344
+ return this.createMAVLinkFrame(message, messageDef.id, payload);
345
+ }
346
+ // Extract message fields from payload structure (payload format required)
347
+ extractMessageFields(message, fieldDefinitions) {
348
+ // Require payload structure
349
+ if (!message.payload || typeof message.payload !== 'object') {
350
+ throw new Error(`Message must have a 'payload' object containing the message fields. Expected format: { message_name: '...', system_id: 1, component_id: 1, sequence: 0, payload: { ...fields } }`);
351
+ }
352
+ return message.payload;
353
+ }
354
+ // Helper method to complete message with all defined fields
355
+ completeMessageWithDefaults(message, fields) {
356
+ const completeMessage = { ...message };
357
+ for (const field of fields) {
358
+ if (completeMessage[field.name] === undefined) {
359
+ completeMessage[field.name] = this.getDefaultValueForField(field);
360
+ }
361
+ }
362
+ return completeMessage;
363
+ }
364
+ // Get default value for a field based on its definition
365
+ getDefaultValueForField(field) {
366
+ const isArray = field.arrayLength !== undefined && field.arrayLength > 1;
367
+ if (isArray) {
368
+ return [];
369
+ }
370
+ let baseType = field.type;
371
+ if (baseType.includes('[') && baseType.includes(']')) {
372
+ baseType = baseType.substring(0, baseType.indexOf('['));
373
+ }
374
+ switch (baseType) {
375
+ case 'uint8_t':
376
+ case 'int8_t':
377
+ case 'uint16_t':
378
+ case 'int16_t':
379
+ case 'uint32_t':
380
+ case 'int32_t':
381
+ case 'float':
382
+ case 'double':
383
+ return 0;
384
+ case 'uint64_t':
385
+ case 'int64_t':
386
+ return 0n;
387
+ case 'char':
388
+ return field.type.includes('[') ? '' : '\0';
389
+ default:
390
+ return 0;
391
+ }
392
+ }
393
+ serializePayload(message, fields) {
394
+ // Calculate total payload size
395
+ let totalSize = 0;
396
+ for (const field of fields) {
397
+ totalSize += this.getFieldSize(field);
398
+ }
399
+ const buffer = new ArrayBuffer(totalSize);
400
+ const view = new DataView(buffer);
401
+ let offset = 0;
402
+ for (const field of fields) {
403
+ const value = message[field.name];
404
+ const bytesWritten = this.serializeField(view, offset, field, value);
405
+ offset += bytesWritten;
406
+ }
407
+ // Implement MAVLink payload trimming: remove trailing zero bytes from extension fields only
408
+ // This is required for proper handling of extension fields
409
+ const fullPayload = new Uint8Array(buffer);
410
+ // Calculate minimum payload size (core fields only)
411
+ let corePayloadSize = 0;
412
+ let extensionStartOffset = 0;
413
+ let hasExtensions = false;
414
+ message.message_name;
415
+ for (const field of fields) {
416
+ const fieldSize = this.getFieldSize(field);
417
+ // Check if this is an extension field using proper XML-based detection
418
+ const isExtensionField = field.extension === true;
419
+ if (isExtensionField) {
420
+ if (!hasExtensions) {
421
+ extensionStartOffset = corePayloadSize;
422
+ hasExtensions = true;
423
+ }
424
+ // Don't add extension field sizes to core payload size
425
+ }
426
+ else {
427
+ // This is a core field - always add to core payload size
428
+ corePayloadSize += fieldSize;
429
+ }
430
+ }
431
+ // If there are no extension fields, don't trim at all
432
+ if (!hasExtensions) {
433
+ return fullPayload;
434
+ }
435
+ // Find the last non-zero byte in extension fields only
436
+ let trimmedLength = fullPayload.length;
437
+ // If we have extensions, check if they contain any non-zero bytes
438
+ if (hasExtensions && extensionStartOffset < fullPayload.length) {
439
+ // Look for non-zero bytes in the extension section
440
+ let hasNonZeroExtensions = false;
441
+ for (let i = extensionStartOffset; i < fullPayload.length; i++) {
442
+ if (fullPayload[i] !== 0) {
443
+ hasNonZeroExtensions = true;
444
+ break;
445
+ }
446
+ }
447
+ if (!hasNonZeroExtensions) {
448
+ // All extension fields are zero, trim them all
449
+ trimmedLength = corePayloadSize;
450
+ }
451
+ else {
452
+ // Find the last non-zero byte in extension fields
453
+ for (let i = fullPayload.length - 1; i >= extensionStartOffset; i--) {
454
+ if (fullPayload[i] !== 0) {
455
+ trimmedLength = i + 1;
456
+ break;
457
+ }
458
+ }
459
+ }
460
+ }
461
+ // Never trim below the core payload size
462
+ if (trimmedLength < corePayloadSize) {
463
+ trimmedLength = corePayloadSize;
464
+ }
465
+ // Return trimmed payload if it's shorter than the original
466
+ if (trimmedLength < fullPayload.length) {
467
+ return fullPayload.slice(0, trimmedLength);
468
+ }
469
+ return fullPayload;
470
+ }
471
+ serializeField(view, offset, field, value) {
472
+ const isArray = field.arrayLength !== undefined;
473
+ const arrayLength = field.arrayLength || 1;
474
+ if (isArray && arrayLength > 1) {
475
+ let totalBytes = 0;
476
+ let baseType = field.type;
477
+ if (baseType.includes('[') && baseType.includes(']')) {
478
+ baseType = baseType.substring(0, baseType.indexOf('['));
479
+ }
480
+ // Special handling for char arrays - treat string as char array
481
+ if (baseType === 'char' && typeof value === 'string') {
482
+ const str = value;
483
+ for (let i = 0; i < arrayLength; i++) {
484
+ const charCode = i < str.length ? str.charCodeAt(i) : 0;
485
+ view.setUint8(offset + totalBytes, charCode);
486
+ totalBytes += 1;
487
+ }
488
+ return totalBytes;
489
+ }
490
+ // Handle other array types
491
+ const arrayValue = Array.isArray(value) ? value : [value];
492
+ for (let i = 0; i < arrayLength; i++) {
493
+ const itemValue = i < arrayValue.length ? arrayValue[i] : this.getDefaultValueForType(baseType);
494
+ const bytesWritten = this.serializeSingleValue(view, offset + totalBytes, baseType, itemValue);
495
+ totalBytes += bytesWritten;
496
+ }
497
+ return totalBytes;
498
+ }
499
+ else {
500
+ return this.serializeSingleValue(view, offset, field.type, value);
501
+ }
502
+ }
503
+ serializeSingleValue(view, offset, type, value) {
504
+ const actualValue = value ?? this.getDefaultValueForType(type);
505
+ switch (type) {
506
+ case 'uint8_t':
507
+ view.setUint8(offset, Number(actualValue));
508
+ return 1;
509
+ case 'int8_t':
510
+ view.setInt8(offset, Number(actualValue));
511
+ return 1;
512
+ case 'uint16_t':
513
+ view.setUint16(offset, Number(actualValue), false);
514
+ return 2;
515
+ case 'int16_t':
516
+ view.setInt16(offset, Number(actualValue), true);
517
+ return 2;
518
+ case 'uint32_t':
519
+ view.setUint32(offset, Number(actualValue), true);
520
+ return 4;
521
+ case 'int32_t':
522
+ view.setInt32(offset, Number(actualValue), true);
523
+ return 4;
524
+ case 'uint64_t':
525
+ view.setBigUint64(offset, typeof actualValue === 'bigint' ? actualValue : BigInt(Number(actualValue) || 0), true);
526
+ return 8;
527
+ case 'int64_t':
528
+ view.setBigInt64(offset, typeof actualValue === 'bigint' ? actualValue : BigInt(Number(actualValue) || 0), true);
529
+ return 8;
530
+ case 'float':
531
+ view.setFloat32(offset, Number(actualValue), true);
532
+ return 4;
533
+ case 'double':
534
+ view.setFloat64(offset, Number(actualValue), true);
535
+ return 8;
536
+ case 'char':
537
+ view.setUint8(offset, typeof actualValue === 'string' ? actualValue.charCodeAt(0) : Number(actualValue));
538
+ return 1;
539
+ default:
540
+ if (type.startsWith('char[') && type.endsWith(']')) {
541
+ const length = parseInt(type.slice(5, -1));
542
+ const str = String(actualValue);
543
+ for (let i = 0; i < length; i++) {
544
+ const charCode = i < str.length ? str.charCodeAt(i) : 0;
545
+ view.setUint8(offset + i, charCode);
546
+ }
547
+ return length;
548
+ }
549
+ view.setUint8(offset, Number(actualValue));
550
+ return 1;
551
+ }
552
+ }
553
+ getFieldSize(field) {
554
+ if (typeof field === 'string') {
555
+ // Legacy support for type string
556
+ if (field.includes('[') && field.includes(']')) {
557
+ const baseType = field.substring(0, field.indexOf('['));
558
+ const arrayLength = parseInt(field.substring(field.indexOf('[') + 1, field.indexOf(']')));
559
+ return this.getSingleFieldSize(baseType) * arrayLength;
560
+ }
561
+ return this.getSingleFieldSize(field);
562
+ }
563
+ // Handle FieldDefinition object
564
+ const type = field.type;
565
+ const arrayLength = field.arrayLength;
566
+ if (arrayLength && arrayLength > 1) {
567
+ return this.getSingleFieldSize(type) * arrayLength;
568
+ }
569
+ if (type.includes('[') && type.includes(']')) {
570
+ const baseType = type.substring(0, type.indexOf('['));
571
+ const parsedArrayLength = parseInt(type.substring(type.indexOf('[') + 1, type.indexOf(']')));
572
+ return this.getSingleFieldSize(baseType) * parsedArrayLength;
573
+ }
574
+ return this.getSingleFieldSize(type);
575
+ }
576
+ getSingleFieldSize(type) {
577
+ switch (type) {
578
+ case 'uint8_t':
579
+ case 'int8_t':
580
+ case 'char':
581
+ return 1;
582
+ case 'uint16_t':
583
+ case 'int16_t':
584
+ return 2;
585
+ case 'uint32_t':
586
+ case 'int32_t':
587
+ case 'float':
588
+ return 4;
589
+ case 'uint64_t':
590
+ case 'int64_t':
591
+ case 'double':
592
+ return 8;
593
+ default:
594
+ return 1;
595
+ }
596
+ }
597
+ getDefaultValueForType(type) {
598
+ switch (type) {
599
+ case 'uint8_t':
600
+ case 'int8_t':
601
+ case 'uint16_t':
602
+ case 'int16_t':
603
+ case 'uint32_t':
604
+ case 'int32_t':
605
+ case 'float':
606
+ case 'double':
607
+ return 0;
608
+ case 'uint64_t':
609
+ case 'int64_t':
610
+ return 0n;
611
+ case 'char':
612
+ return 0;
613
+ default:
614
+ return 0;
615
+ }
616
+ }
617
+ createMAVLinkFrame(message, messageId, payload) {
618
+ const systemId = typeof message.system_id === 'number' ? message.system_id : 1;
619
+ const componentId = typeof message.component_id === 'number' ? message.component_id : 1;
620
+ const sequence = typeof message.sequence === 'number' ? message.sequence : 0;
621
+ // Automatically determine protocol version based on message requirements
622
+ const needsV2 = messageId > 255; // v1 only supports 8-bit message IDs (0-255)
623
+ const userSpecifiedVersion = typeof message.protocol_version === 'number' ? message.protocol_version : null;
624
+ // Use user-specified version if provided, otherwise auto-detect
625
+ const protocolVersion = userSpecifiedVersion !== null ? userSpecifiedVersion : (needsV2 ? 2 : 1);
626
+ const isV2 = protocolVersion === 2;
627
+ const magic = isV2 ? 0xFD : 0xFE;
628
+ // Calculate frame size based on protocol version
629
+ const headerSize = isV2 ? 10 : 6; // v2 has extra fields
630
+ const frameSize = headerSize + payload.length + 2;
631
+ const buffer = new ArrayBuffer(frameSize);
632
+ const view = new DataView(buffer);
633
+ let offset = 0;
634
+ // Header
635
+ view.setUint8(offset++, magic);
636
+ view.setUint8(offset++, payload.length);
637
+ if (isV2) {
638
+ // MAVLink v2: magic(1) + len(1) + incompat_flags(1) + compat_flags(1) + seq(1) + sysid(1) + compid(1) + msgid(3) + payload + checksum(2)
639
+ view.setUint8(offset++, 0); // incompat_flags
640
+ view.setUint8(offset++, 0); // compat_flags
641
+ view.setUint8(offset++, sequence);
642
+ view.setUint8(offset++, systemId);
643
+ view.setUint8(offset++, componentId);
644
+ // 24-bit message ID in v2
645
+ view.setUint8(offset++, messageId & 0xFF);
646
+ view.setUint8(offset++, (messageId >> 8) & 0xFF);
647
+ view.setUint8(offset++, (messageId >> 16) & 0xFF);
648
+ }
649
+ else {
650
+ // MAVLink v1: magic(1) + len(1) + seq(1) + sysid(1) + compid(1) + msgid(1) + payload + checksum(2)
651
+ view.setUint8(offset++, sequence);
652
+ view.setUint8(offset++, systemId);
653
+ view.setUint8(offset++, componentId);
654
+ view.setUint8(offset++, messageId & 0xFF); // 8-bit message ID in v1
655
+ }
656
+ // Payload
657
+ const payloadView = new Uint8Array(buffer, offset, payload.length);
658
+ payloadView.set(payload);
659
+ offset += payload.length;
660
+ // Calculate proper MAVLink CRC with CRC_EXTRA
661
+ const crcExtra = CRC_EXTRA[messageId];
662
+ if (crcExtra === undefined) {
663
+ throw new Error("No CRC_EXTRA defined for message ID " + messageId);
664
+ }
665
+ // Get message data (exclude start byte and checksum)
666
+ const messageData = new Uint8Array(buffer, 1, offset - 1);
667
+ const checksum = MAVLinkCRC.calculate(messageData, crcExtra);
668
+ // Checksum (little endian)
669
+ view.setUint8(offset++, checksum & 0xFF);
670
+ view.setUint8(offset++, (checksum >> 8) & 0xFF);
671
+ return new Uint8Array(buffer);
672
+ }
285
673
  }
286
674
  const MESSAGE_DEFINITIONS = [
287
675
  {
@@ -338,52 +726,52 @@ const MESSAGE_DEFINITIONS = [
338
726
  type: 'double',
339
727
  },
340
728
  {
341
- name: 'u8Array',
729
+ name: 'u8_array',
342
730
  type: 'uint8_t',
343
731
  arrayLength: 3,
344
732
  },
345
733
  {
346
- name: 'u16Array',
734
+ name: 'u16_array',
347
735
  type: 'uint16_t',
348
736
  arrayLength: 3,
349
737
  },
350
738
  {
351
- name: 'u32Array',
739
+ name: 'u32_array',
352
740
  type: 'uint32_t',
353
741
  arrayLength: 3,
354
742
  },
355
743
  {
356
- name: 'u64Array',
744
+ name: 'u64_array',
357
745
  type: 'uint64_t',
358
746
  arrayLength: 3,
359
747
  },
360
748
  {
361
- name: 's8Array',
749
+ name: 's8_array',
362
750
  type: 'int8_t',
363
751
  arrayLength: 3,
364
752
  },
365
753
  {
366
- name: 's16Array',
754
+ name: 's16_array',
367
755
  type: 'int16_t',
368
756
  arrayLength: 3,
369
757
  },
370
758
  {
371
- name: 's32Array',
759
+ name: 's32_array',
372
760
  type: 'int32_t',
373
761
  arrayLength: 3,
374
762
  },
375
763
  {
376
- name: 's64Array',
764
+ name: 's64_array',
377
765
  type: 'int64_t',
378
766
  arrayLength: 3,
379
767
  },
380
768
  {
381
- name: 'fArray',
769
+ name: 'f_array',
382
770
  type: 'float',
383
771
  arrayLength: 3,
384
772
  },
385
773
  {
386
- name: 'dArray',
774
+ name: 'd_array',
387
775
  type: 'double',
388
776
  arrayLength: 3,
389
777
  },
@@ -408,6 +796,43 @@ class TestParser extends DialectParser {
408
796
  }
409
797
  }
410
798
  }
799
+ // Dialect-specific serializer
800
+ class TestSerializer {
801
+ constructor() {
802
+ this.parser = new TestParser();
803
+ }
804
+ // Serialize a message to MAVLink bytes
805
+ serialize(message) {
806
+ return this.parser.serializeMessage(message);
807
+ }
808
+ // Complete a message with all defined fields (including extension fields with defaults)
809
+ // This is useful to see what the serializer would send without actually serializing
810
+ // Requires payload structure format
811
+ completeMessage(message) {
812
+ const messageDef = Array.from(this.parser['messageDefinitions'].values())
813
+ .find(def => def.name === message.message_name);
814
+ if (!messageDef) {
815
+ throw new Error(`Unknown message type: ${message.message_name}`);
816
+ }
817
+ // Extract fields from payload structure (throws error if not payload format)
818
+ const messageFields = this.parser['extractMessageFields'](message, messageDef.fields);
819
+ // Complete the message with defaults
820
+ const completedFields = this.parser['completeMessageWithDefaults'](messageFields, messageDef.fields);
821
+ // Return in the payload structure format
822
+ return {
823
+ ...message,
824
+ payload: completedFields
825
+ };
826
+ }
827
+ // Get supported message names for this dialect
828
+ getSupportedMessages() {
829
+ return Array.from(this.parser['messageDefinitions'].values()).map(def => def.name);
830
+ }
831
+ // Check if a message is supported by this dialect
832
+ supportsMessage(messageName) {
833
+ return Array.from(this.parser['messageDefinitions'].values()).some(def => def.name === messageName);
834
+ }
835
+ }
411
836
 
412
- export { TestParser, isTestTypes };
837
+ export { TestParser, TestSerializer, isTestTypes };
413
838
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/generated/dialects/test/messages.ts","../../../src/generated/dialects/test/decoder.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/generated/dialects/test/messages.ts","../../../../src/generated/dialects/test/decoder.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}