@jbroll/nmea-simple
Version:
NMEA 0183 sentence parser and encoder
35 lines (24 loc) • 1.13 kB
text/typescript
import "should";
import { assertPacketIs, getUnsafePacketId, parseUnsafeNmeaSentence } from "../index";
describe("UnsafeParsing", (): void => {
it("Built in NMEA sentence", (): void => {
const packet = parseUnsafeNmeaSentence("$GPZDA,160012.71,11,03,2004,-1,00*7D");
assertPacketIs("ZDA", packet);
packet.localZoneHours.should.equal(-1);
});
it("Unknown sentence", (): void => {
const packet = parseUnsafeNmeaSentence("$GPTXT,01,01,02,ANTSTATUS=OPEN*2B");
assertPacketIs("?", packet);
packet.dataFields.length.should.equal(4);
(packet.talkerId === "GP").should.equal(true);
getUnsafePacketId(packet).should.equal("TXT");
});
const BAD_CHECKSUM_SENTENCE = "$IIHDM,201.5,M*21";
const GOOD_CHECKSUM_SENTENCE = "$IIDBT,036.41,f,011.10,M,005.99,F*25";
it("checksum", (): void => {
let packet = parseUnsafeNmeaSentence(BAD_CHECKSUM_SENTENCE);
(packet.chxOk !== true).should.equal(true);
packet = parseUnsafeNmeaSentence(GOOD_CHECKSUM_SENTENCE);
(packet.chxOk === true).should.equal(true);
});
});