UNPKG

@jbroll/nmea-simple

Version:

NMEA 0183 sentence parser and encoder

50 lines (49 loc) 3 kB
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;