@foxglove/ulog
Version:
PX4 ULog file reader
105 lines • 3.16 kB
TypeScript
import { MessageType, LogLevel } from "./enums";
export type SyncMagic = [0x2f, 0x73, 0x13, 0x20, 0x25, 0x0c, 0xbb, 0x12];
export type BitFlags = [number, number, number, number, number, number, number, number];
export type FieldPrimitive = boolean | number | bigint | string | FieldPrimitive[];
export interface FieldStruct {
[key: string]: FieldPrimitive | FieldStruct | FieldArray;
}
export type FieldArray = Array<FieldPrimitive | FieldStruct>;
export type FieldValue = FieldPrimitive | FieldStruct | FieldArray;
export type ParsedMessage = FieldStruct & {
timestamp: bigint;
};
export type MessageFlagBits = {
size: number;
type: MessageType.FlagBits;
compatibleFlags: BitFlags;
incompatibleFlags: BitFlags;
appendedOffsets: [bigint, bigint, bigint];
};
export type MessageInformation = {
size: number;
type: MessageType.Information;
key: string;
value: Uint8Array;
};
export type MessageInformationMulti = {
size: number;
type: MessageType.InformationMulti;
isContinued: boolean;
key: string;
value: Uint8Array;
};
export type MessageFormatDefinition = {
size: number;
type: MessageType.FormatDefinition;
format: string;
};
export type MessageParameter = {
size: number;
type: MessageType.Parameter;
key: string;
value: Uint8Array;
};
export type MessageParameterDefault = {
size: number;
type: MessageType.ParameterDefault;
defaultTypes: number;
key: string;
value: Uint8Array;
};
export type MessageAddLogged = {
size: number;
type: MessageType.AddLogged;
multiId: number;
msgId: number;
messageName: string;
};
export type MessageRemoveLogged = {
size: number;
type: MessageType.RemoveLogged;
msgId: number;
};
export type MessageData = {
size: number;
type: MessageType.Data;
msgId: number;
data: Uint8Array;
};
export type MessageLog = {
size: number;
type: MessageType.Log;
logLevel: LogLevel;
timestamp: bigint;
message: string;
};
export type MessageLogTagged = {
size: number;
type: MessageType.LogTagged;
logLevel: LogLevel;
tag: number;
timestamp: bigint;
message: string;
};
export type MessageSynchronization = {
size: number;
type: MessageType.Synchronization;
syncMagic: SyncMagic;
};
export type MessageDropout = {
size: number;
type: MessageType.Dropout;
duration: number;
};
export type MessageUnknown = {
size: number;
type: MessageType.Unknown;
unknownType: number;
data: Uint8Array;
};
export type MessageDataParsed = MessageData & {
value: ParsedMessage;
};
export type Message = MessageFlagBits | MessageInformation | MessageInformationMulti | MessageFormatDefinition | MessageParameter | MessageParameterDefault | MessageAddLogged | MessageRemoveLogged | MessageData | MessageLog | MessageLogTagged | MessageSynchronization | MessageDropout | MessageUnknown;
export type DataSectionMessage = MessageAddLogged | MessageRemoveLogged | MessageDataParsed | MessageLog | MessageLogTagged | MessageSynchronization | MessageDropout | MessageUnknown;
//# sourceMappingURL=messages.d.ts.map