UNPKG

@aircast-4g/mavlink

Version:

TypeScript type generator for MAVLink dialects

140 lines (136 loc) 3.79 kB
interface ParsedMAVLinkMessage$1 { timestamp: number; system_id: number; component_id: number; message_id: number; message_name: string; sequence: number; payload: Record<string, unknown>; protocol_version: 1 | 2; checksum: number; crc_ok: boolean; signature?: Uint8Array; dialect?: string; } interface MessageTestTypes { u64_array: number[]; s64_array: number[]; d_array: number[]; u32_array: number[]; s32_array: number[]; f_array: number[]; s: string; u64: number; s64: number; d: number; u16_array: number[]; s16_array: number[]; u32: number; s32: number; f: number; u8_array: number[]; s8_array: number[]; u16: number; s16: number; c: string; u8: number; s8: number; } interface MessageTypeMap { TEST_TYPES: MessageTestTypes; } type AnyMessage = ParsedMAVLinkMessage$1; declare function isTestTypes(msg: ParsedMAVLinkMessage$1): msg is ParsedMAVLinkMessage$1 & { payload: MessageTestTypes; }; interface ParsedMAVLinkMessage { timestamp: number; system_id: number; component_id: number; message_id: number; message_name: string; sequence: number; payload: Record<string, unknown>; protocol_version: 1 | 2; checksum: number; crc_ok: boolean; signature?: Uint8Array; dialect?: string; } interface MAVLinkFrame { magic: number; length: number; incompatible_flags?: number; compatible_flags?: number; sequence: number; system_id: number; component_id: number; message_id: number; payload: Uint8Array; checksum: number; signature?: Uint8Array; crc_ok?: boolean; protocol_version?: 1 | 2; } interface MessageDefinition { id: number; name: string; fields: FieldDefinition[]; } interface FieldDefinition { name: string; type: string; arrayLength?: number; extension?: boolean; } declare abstract class DialectParser { protected messageDefinitions: Map<number, MessageDefinition>; protected dialectName: string; private buffer; constructor(dialectName: string); abstract loadDefinitions(): Promise<void>; parseBytes(data: Uint8Array): ParsedMAVLinkMessage[]; private tryParseFrame; resetBuffer(): void; decode(frame: MAVLinkFrame): ParsedMAVLinkMessage; private decodePayload; private getDefaultValue; private decodeField; private decodeSingleValue; getMessageDefinition(id: number): MessageDefinition | undefined; getSupportedMessageIds(): number[]; getDialectName(): string; supportsMessage(messageId: number): boolean; serializeMessage(message: Record<string, unknown> & { message_name: string; }): Uint8Array; private extractMessageFields; private completeMessageWithDefaults; private getDefaultValueForField; private serializePayload; private serializeField; private serializeSingleValue; private getFieldSize; private getSingleFieldSize; private getDefaultValueForType; private createMAVLinkFrame; } declare class TestParser extends DialectParser { constructor(); loadDefinitions(): Promise<void>; private loadDefinitionsSync; } declare class TestSerializer { private parser; constructor(); serialize(message: Record<string, unknown> & { message_name: string; }): Uint8Array; completeMessage(message: Record<string, unknown> & { message_name: string; }): Record<string, unknown>; getSupportedMessages(): string[]; supportsMessage(messageName: string): boolean; } export { TestParser, TestSerializer, isTestTypes }; export type { AnyMessage, MessageTestTypes, MessageTypeMap, ParsedMAVLinkMessage$1 as ParsedMAVLinkMessage };