@jbroll/nmea-simple
Version:
NMEA 0183 sentence parser and encoder
50 lines (49 loc) • 3 kB
TypeScript
import { APBPacket } from "./codecs/APB";
import { BWCPacket } from "./codecs/BWC";
import { DBTPacket } from "./codecs/DBT";
import { DTMPacket } from "./codecs/DTM";
import { GGAPacket } from "./codecs/GGA";
import { GLLPacket } from "./codecs/GLL";
import { GNSPacket } from "./codecs/GNS";
import { GSAPacket } from "./codecs/GSA";
import { GSTPacket } from "./codecs/GST";
import { GSVPacket } from "./codecs/GSV";
import { HDGPacket } from "./codecs/HDG";
import { HDMPacket } from "./codecs/HDM";
import { HDTPacket } from "./codecs/HDT";
import { MTKPacket } from "./codecs/MTK";
import { MWVPacket } from "./codecs/MWV";
import { RDIDPacket } from "./codecs/RDID";
import { RMCPacket } from "./codecs/RMC";
import { VHWPacket } from "./codecs/VHW";
import { VTGPacket } from "./codecs/VTG";
import { ZDAPacket } from "./codecs/ZDA";
import { PacketStub } from "./codecs/PacketStub";
import { UnknownPacket } from "./codecs/UnknownPacket";
export declare type Packet = APBPacket | BWCPacket | DBTPacket | DTMPacket | GGAPacket | GLLPacket | GNSPacket | GSAPacket | GSTPacket | GSVPacket | HDGPacket | HDMPacket | HDTPacket | MTKPacket | MWVPacket | RDIDPacket | RMCPacket | VHWPacket | VTGPacket | ZDAPacket;
export { APBPacket, BWCPacket, DBTPacket, DTMPacket, GGAPacket, GLLPacket, GNSPacket, GSAPacket, GSTPacket, GSVPacket, HDGPacket, HDMPacket, HDTPacket, MTKPacket, MWVPacket, RDIDPacket, RMCPacket, VHWPacket, VTGPacket, ZDAPacket };
export declare function assertPacketIs<IdType extends string, PacketType extends PacketStub = Packet>(packetId: IdType, packet: PacketType): asserts packet is (PacketType & {
sentenceId: IdType;
});
declare type Decoder = (stub: PacketStub, parts: string[]) => Packet;
export interface PacketFactory<PacketType> {
assemble: (stub: PacketStub, fields: string[]) => PacketType | null;
ableToParseBadChecksum: boolean;
}
export declare class DefaultPacketFactory<CustomPacketType = null> implements PacketFactory<Packet | CustomPacketType> {
ableToParseBadChecksum: boolean;
constructor(ableToParseBadChecksum?: boolean);
static getParser(stub: PacketStub): Decoder;
assemble(stub: PacketStub, fields: string[]): Packet | CustomPacketType | null;
assembleCustomPacket(stub: PacketStub, fields: string[]): CustomPacketType | null;
}
export declare function parseGenericPacket<PacketType>(sentence: string, factory: PacketFactory<PacketType>): PacketType;
export declare function parseNmeaSentence(sentence: string): Packet;
export declare function encodeNmeaPacket(packet: Packet, talker?: string): string;
export declare type UnsafePacket = Packet | UnknownPacket;
export declare class UnsafePacketFactory extends DefaultPacketFactory<UnknownPacket> {
constructor();
assembleCustomPacket(stub: PacketStub<string>, fields: string[]): UnknownPacket | null;
}
export declare function parseUnsafeNmeaSentence(sentence: string): UnsafePacket;
export declare function getUnsafePacketId(packet: UnsafePacket): string;