@foxglove/ulog
Version:
PX4 ULog file reader
44 lines • 1.77 kB
TypeScript
import { MessageDefinition } from "./definition";
import { Filelike } from "./file";
import { MessageFlagBits, MessageAddLogged, DataSectionMessage, FieldPrimitive } from "./messages";
export type ParameterEntry = {
value: number;
defaultTypes: number;
};
export type ULogHeader = {
version: number;
timestamp: bigint;
flagBits?: MessageFlagBits;
information: Map<string, FieldPrimitive | FieldPrimitive[]>;
parameters: Map<string, ParameterEntry>;
definitions: Map<string, MessageDefinition>;
};
export type Subscription = MessageDefinition & Pick<MessageAddLogged, "multiId">;
export declare class ULog {
#private;
constructor(filelike: Filelike, opts?: {
chunkSize?: number;
});
get header(): ULogHeader | undefined;
/**
* Return a map of message ids to their corresponding subscription
*/
get subscriptions(): Map<number, Subscription>;
open(): Promise<void>;
readMessages(opts?: {
startTime?: bigint;
endTime?: bigint;
/** If true (default) logs messages are yielded from the time range. */
includeLogs?: boolean;
/** If specified, only messages with the given message ids are yielded. */
msgIds?: Set<number>;
/** If true, the messages are yielded in reverse order (default false). */
reverse?: boolean;
}): AsyncIterableIterator<DataSectionMessage>;
messageCount(): number | undefined;
dataMessageCounts(): ReadonlyMap<number, number> | undefined;
logCount(): number | undefined;
timeRange(): Readonly<[bigint, bigint]> | undefined;
}
export declare function computeTimetampOffset(definition: MessageDefinition, definitions: Map<string, MessageDefinition>): number;
//# sourceMappingURL=ULog.d.ts.map