gnss-js 1.64.0 → 1.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -81,7 +81,9 @@ __export(src_exports, {
81
81
  OMEGA_E: () => OMEGA_E,
82
82
  REFERENCE_FRAMES: () => REFERENCE_FRAMES,
83
83
  RINEX_CODES: () => RINEX_CODES,
84
+ RTCM2_MESSAGE_NAMES: () => RTCM2_MESSAGE_NAMES,
84
85
  RTCM3_MESSAGE_NAMES: () => RTCM3_MESSAGE_NAMES,
86
+ Rtcm2Decoder: () => Rtcm2Decoder,
85
87
  Rtcm3Decoder: () => Rtcm3Decoder,
86
88
  RtkFloatEngine: () => RtkFloatEngine,
87
89
  SBAS_L5_MT_NAMES: () => SBAS_L5_MT_NAMES,
@@ -149,6 +151,7 @@ __export(src_exports, {
149
151
  decodeMsmFull: () => decodeMsmFull,
150
152
  decodeSbfNavigation: () => decodeSbfNavigation,
151
153
  decodeSsr: () => decodeSsr,
154
+ decodeSystemParams: () => decodeSystemParams,
152
155
  deg2dms: () => deg2dms,
153
156
  deg2rad: () => deg2rad,
154
157
  detrendIonoArcs: () => detrendIonoArcs,
@@ -246,6 +249,7 @@ __export(src_exports, {
246
249
  klobucharDelay: () => klobucharDelay,
247
250
  lambdaReduction: () => lambdaReduction,
248
251
  lambdaSearch: () => lambdaSearch,
252
+ looksLikeRtcm2: () => looksLikeRtcm2,
249
253
  maskRadForAzimuth: () => maskRadForAzimuth,
250
254
  moonEcef: () => moonEcef,
251
255
  msmEpochToDate: () => msmEpochToDate,
@@ -305,6 +309,11 @@ __export(src_exports, {
305
309
  resetGloFreqCache: () => resetGloFreqCache,
306
310
  resolvePppAmbiguities: () => resolvePppAmbiguities,
307
311
  rhumbLine: () => rhumbLine,
312
+ rtcm2Dgps: () => rtcm2Dgps,
313
+ rtcm2Observation: () => rtcm2Observation,
314
+ rtcm2Station: () => rtcm2Station,
315
+ rtcm2Text: () => rtcm2Text,
316
+ rtcm2Time: () => rtcm2Time,
308
317
  rtcm3Constellation: () => rtcm3Constellation,
309
318
  satClockCorrection: () => satClockCorrection,
310
319
  sbasIonoDeg: () => sbasIonoDeg,
@@ -4475,6 +4484,265 @@ function writeRinex4ObsBlob(header, epochs, obsTypes) {
4475
4484
  });
4476
4485
  }
4477
4486
 
4487
+ // src/rtcm2/index.ts
4488
+ var RTCM2_PREAMBLE = 102;
4489
+ var HAMMING = [
4490
+ 3139384448,
4491
+ 1569692224,
4492
+ 2932329728,
4493
+ 1466164864,
4494
+ 1806824256,
4495
+ 2340063680
4496
+ ];
4497
+ function getbitu(buff, pos, len) {
4498
+ let v = 0;
4499
+ for (let i = pos; i < pos + len; i++)
4500
+ v = v * 2 + (buff[i >> 3] >> 7 - (i & 7) & 1);
4501
+ return v >>> 0;
4502
+ }
4503
+ function getbits(buff, pos, len) {
4504
+ const v = getbitu(buff, pos, len);
4505
+ return v & 1 << len - 1 ? v - 2 ** len : v;
4506
+ }
4507
+ function decodeWord(w) {
4508
+ let word = w >>> 0;
4509
+ if (word & 1073741824) word = (word ^ 1073741760) >>> 0;
4510
+ let parity = 0;
4511
+ for (let i = 0; i < 6; i++) {
4512
+ parity <<= 1;
4513
+ let x = (word & HAMMING[i]) >>> 6;
4514
+ while (x) {
4515
+ parity ^= x & 1;
4516
+ x >>>= 1;
4517
+ }
4518
+ }
4519
+ if (parity >>> 0 !== (word & 63)) return null;
4520
+ return [word >>> 22 & 255, word >>> 14 & 255, word >>> 6 & 255];
4521
+ }
4522
+ var Rtcm2Decoder = class {
4523
+ word = 0;
4524
+ nbyte = 0;
4525
+ nbit = 0;
4526
+ len = 0;
4527
+ buff = new Uint8Array(256);
4528
+ /** Reset the framer (e.g. after a stream reconnect). */
4529
+ reset() {
4530
+ this.word = 0;
4531
+ this.nbyte = 0;
4532
+ this.nbit = 0;
4533
+ this.len = 0;
4534
+ }
4535
+ decode(bytes) {
4536
+ const frames = [];
4537
+ for (const raw of bytes) {
4538
+ if ((raw & 192) !== 64) continue;
4539
+ let data = raw;
4540
+ for (let i = 0; i < 6; i++, data >>= 1) {
4541
+ this.word = (this.word << 1 | data & 1) >>> 0;
4542
+ if (this.nbyte === 0) {
4543
+ let preamb = this.word >>> 22 & 255;
4544
+ if (this.word & 1073741824) preamb ^= 255;
4545
+ if (preamb !== RTCM2_PREAMBLE) continue;
4546
+ const d2 = decodeWord(this.word);
4547
+ if (!d2) continue;
4548
+ this.buff[0] = d2[0];
4549
+ this.buff[1] = d2[1];
4550
+ this.buff[2] = d2[2];
4551
+ this.nbyte = 3;
4552
+ this.nbit = 0;
4553
+ continue;
4554
+ }
4555
+ if (++this.nbit < 30) continue;
4556
+ this.nbit = 0;
4557
+ const d = decodeWord(this.word);
4558
+ if (!d) {
4559
+ this.nbyte = 0;
4560
+ this.word &= 3;
4561
+ continue;
4562
+ }
4563
+ this.buff[this.nbyte] = d[0];
4564
+ this.buff[this.nbyte + 1] = d[1];
4565
+ this.buff[this.nbyte + 2] = d[2];
4566
+ this.nbyte += 3;
4567
+ if (this.nbyte === 6) this.len = (this.buff[5] >> 3) * 3 + 6;
4568
+ if (this.nbyte < this.len) continue;
4569
+ frames.push(this.readHeader(this.buff.slice(0, this.len)));
4570
+ this.nbyte = 0;
4571
+ this.word &= 3;
4572
+ }
4573
+ }
4574
+ return frames;
4575
+ }
4576
+ readHeader(payload) {
4577
+ return {
4578
+ messageType: getbitu(payload, 8, 6),
4579
+ stationId: getbitu(payload, 14, 10),
4580
+ zcountSec: getbitu(payload, 24, 13) * 0.6,
4581
+ sequenceNo: getbitu(payload, 37, 3),
4582
+ lengthWords: payload[5] >> 3,
4583
+ health: getbitu(payload, 45, 3),
4584
+ payload
4585
+ };
4586
+ }
4587
+ };
4588
+ function rtcm2Station(frame) {
4589
+ const p = frame.payload;
4590
+ const nbit = frame.lengthWords * 24;
4591
+ if (frame.messageType === 3) {
4592
+ if (nbit < 96) return null;
4593
+ return {
4594
+ position: [
4595
+ getbits(p, 48, 32) * 0.01,
4596
+ getbits(p, 80, 32) * 0.01,
4597
+ getbits(p, 112, 32) * 0.01
4598
+ ]
4599
+ };
4600
+ }
4601
+ if (frame.messageType === 22) {
4602
+ if (nbit < 24) return null;
4603
+ const l1 = [
4604
+ getbits(p, 48, 8) / 25600,
4605
+ getbits(p, 56, 8) / 25600,
4606
+ getbits(p, 64, 8) / 25600
4607
+ ];
4608
+ let height;
4609
+ if (nbit >= 48) {
4610
+ const noh = getbits(p, 48 + 24 + 5, 1);
4611
+ height = noh ? 0 : getbitu(p, 48 + 24 + 6, 18) / 25600;
4612
+ }
4613
+ return { l1Offset: l1, height };
4614
+ }
4615
+ return null;
4616
+ }
4617
+ function rtcm2Observation(frame) {
4618
+ const t = frame.messageType;
4619
+ if (t !== 18 && t !== 19) return null;
4620
+ const p = frame.payload;
4621
+ const nbit = frame.lengthWords * 24 + 48;
4622
+ let i = 48;
4623
+ if (i + 24 > nbit) return null;
4624
+ const fRaw = getbitu(p, i, 2);
4625
+ i += 4;
4626
+ const microSec = getbitu(p, i, 20);
4627
+ i += 20;
4628
+ if (fRaw & 1) return null;
4629
+ const freq = fRaw >> 1;
4630
+ let sync = false;
4631
+ const records = [];
4632
+ while (i + 48 <= nbit) {
4633
+ sync = getbitu(p, i, 1) === 1;
4634
+ i += 1;
4635
+ const code = getbitu(p, i, 1);
4636
+ i += 1;
4637
+ const sys = getbitu(p, i, 1);
4638
+ i += 1;
4639
+ let prn = getbitu(p, i, 5);
4640
+ i += 5;
4641
+ let loss;
4642
+ if (t === 18) {
4643
+ i += 3;
4644
+ loss = getbitu(p, i, 5);
4645
+ i += 5;
4646
+ } else {
4647
+ i += 8;
4648
+ }
4649
+ const val = t === 18 ? getbits(p, i, 32) : getbitu(p, i, 32);
4650
+ i += 32;
4651
+ if (prn === 0) prn = 32;
4652
+ const system = sys ? "R" : "G";
4653
+ const rec = {
4654
+ prn: `${system}${String(prn).padStart(2, "0")}`,
4655
+ system,
4656
+ freq,
4657
+ code: code ? "P" : "C/A",
4658
+ lossOfLock: loss
4659
+ };
4660
+ if (t === 18)
4661
+ rec.phaseCycles = -val / 256;
4662
+ else rec.pseudorangeM = val * 0.02;
4663
+ records.push(rec);
4664
+ }
4665
+ return { freq, sync, microSec, records };
4666
+ }
4667
+ function rtcm2Dgps(frame) {
4668
+ const t = frame.messageType;
4669
+ if (t !== 1 && t !== 9 && t !== 31) return null;
4670
+ const system = t === 31 ? "R" : "G";
4671
+ const p = frame.payload;
4672
+ const nbit = frame.lengthWords * 24 + 48;
4673
+ let i = 48;
4674
+ const corrections = [];
4675
+ while (i + 40 <= nbit) {
4676
+ const fact = getbitu(p, i, 1);
4677
+ i += 1;
4678
+ const udre = getbitu(p, i, 2);
4679
+ i += 2;
4680
+ let prn = getbitu(p, i, 5);
4681
+ i += 5;
4682
+ const prc = getbits(p, i, 16);
4683
+ i += 16;
4684
+ const rrc = getbits(p, i, 8);
4685
+ i += 8;
4686
+ const iod = getbits(p, i, 8);
4687
+ i += 8;
4688
+ if (prn === 0) prn = 32;
4689
+ corrections.push({
4690
+ prn: `${system}${String(prn).padStart(2, "0")}`,
4691
+ prc: prc * (fact ? 0.32 : 0.02),
4692
+ rrc: rrc * (fact ? 0.032 : 2e-3),
4693
+ iod,
4694
+ udre
4695
+ });
4696
+ }
4697
+ return { system, corrections };
4698
+ }
4699
+ function rtcm2Time(frame) {
4700
+ if (frame.messageType !== 14) return null;
4701
+ const p = frame.payload;
4702
+ if (frame.lengthWords * 24 < 24) return null;
4703
+ return {
4704
+ zcountSec: getbitu(p, 24, 13) * 0.6,
4705
+ week: getbitu(p, 48, 10),
4706
+ hour: getbitu(p, 58, 8),
4707
+ leapSeconds: getbitu(p, 66, 6)
4708
+ };
4709
+ }
4710
+ function rtcm2Text(frame) {
4711
+ if (frame.messageType !== 16) return null;
4712
+ const p = frame.payload;
4713
+ const nbit = frame.lengthWords * 24 + 48;
4714
+ let s = "";
4715
+ for (let i = 48; i + 8 <= nbit; i += 8) {
4716
+ const c = getbitu(p, i, 8);
4717
+ if (c === 0) break;
4718
+ s += String.fromCharCode(c);
4719
+ }
4720
+ return s;
4721
+ }
4722
+ var RTCM2_MESSAGE_NAMES = {
4723
+ 1: "GPS differential corrections",
4724
+ 3: "Reference station parameters (ARP)",
4725
+ 9: "GPS partial correction set",
4726
+ 14: "GPS time of week",
4727
+ 16: "GPS special message (text)",
4728
+ 17: "GPS ephemerides",
4729
+ 18: "RTK uncorrected carrier phase",
4730
+ 19: "RTK uncorrected pseudorange",
4731
+ 22: "Extended reference station parameters",
4732
+ 23: "Antenna type definition",
4733
+ 24: "Antenna reference point (ARP)",
4734
+ 31: "GLONASS differential corrections",
4735
+ 32: "GLONASS reference station parameters",
4736
+ 34: "GLONASS partial correction set",
4737
+ 36: "GLONASS special message"
4738
+ };
4739
+ function looksLikeRtcm2(bytes) {
4740
+ const n = Math.min(bytes.length, 4096);
4741
+ if (n < 12) return false;
4742
+ for (let i = 0; i < n; i++) if ((bytes[i] & 192) !== 64) return false;
4743
+ return new Rtcm2Decoder().decode(bytes.subarray(0, n)).length >= 2;
4744
+ }
4745
+
4478
4746
  // src/rtcm3/decoder.ts
4479
4747
  var debugHandler = null;
4480
4748
  function setRtcm3DebugHandler(fn) {
@@ -5991,6 +6259,30 @@ function isSsrMessage(messageType) {
5991
6259
  return messageType in SSR_KIND;
5992
6260
  }
5993
6261
 
6262
+ // src/rtcm3/system-params.ts
6263
+ function decodeSystemParams(frame) {
6264
+ if (frame.messageType !== 1013) return null;
6265
+ const r = new BitReader(frame.payload);
6266
+ r.readU(12);
6267
+ const referenceStationId = r.readU(12);
6268
+ const mjd = r.readU(16);
6269
+ const secondsOfDay = r.readU(17);
6270
+ const nm = r.readU(5);
6271
+ const leapSeconds = r.readU(8);
6272
+ const messages = [];
6273
+ for (let i = 0; i < nm; i++) {
6274
+ messages.push({
6275
+ messageId: r.readU(12),
6276
+ // DF055
6277
+ sync: r.readU(1) === 1,
6278
+ // DF056
6279
+ intervalS: r.readU(16) * 0.1
6280
+ // DF057 (0.1 s)
6281
+ });
6282
+ }
6283
+ return { referenceStationId, mjd, secondsOfDay, leapSeconds, messages };
6284
+ }
6285
+
5994
6286
  // src/rtcm3/station.ts
5995
6287
  function createStationMeta() {
5996
6288
  return {
@@ -6004,7 +6296,8 @@ function createStationMeta() {
6004
6296
  receiverType: null,
6005
6297
  receiverFirmware: null,
6006
6298
  receiverSerial: null,
6007
- description: null
6299
+ description: null,
6300
+ physicalRefStationId: null
6008
6301
  };
6009
6302
  }
6010
6303
  function decodeStationARP(payload, msgType, meta) {
@@ -6027,6 +6320,18 @@ function decodeStationARP(payload, msgType, meta) {
6027
6320
  meta.antennaHeight = r.readU(16) * 1e-4;
6028
6321
  }
6029
6322
  }
6323
+ function decodeStation1032(payload, meta) {
6324
+ if (payload.length < 19) return;
6325
+ const r = new BitReader(payload);
6326
+ r.skip(12);
6327
+ meta.stationId = r.readU(12);
6328
+ meta.physicalRefStationId = r.readU(12);
6329
+ meta.itrf = r.readU(6);
6330
+ const x = r.readS(38) * 1e-4;
6331
+ const y = r.readS(38) * 1e-4;
6332
+ const z = r.readS(38) * 1e-4;
6333
+ if (x !== 0 || y !== 0 || z !== 0) meta.position = [x, y, z];
6334
+ }
6030
6335
  function decodeAntennaDescriptor(payload, msgType, meta) {
6031
6336
  if (payload.length < 5) return;
6032
6337
  const r = new BitReader(payload);
@@ -6107,6 +6412,9 @@ function updateStationMeta(meta, frame) {
6107
6412
  case 1006:
6108
6413
  decodeStationARP(frame.payload, frame.messageType, meta);
6109
6414
  return true;
6415
+ case 1032:
6416
+ decodeStation1032(frame.payload, meta);
6417
+ return true;
6110
6418
  case 1007:
6111
6419
  case 1008:
6112
6420
  decodeAntennaDescriptor(frame.payload, frame.messageType, meta);
@@ -18537,7 +18845,9 @@ function computePsdDb(centerMHz, halfSpanChips, numPoints, psdFn, f0 = 1023e3, f
18537
18845
  OMEGA_E,
18538
18846
  REFERENCE_FRAMES,
18539
18847
  RINEX_CODES,
18848
+ RTCM2_MESSAGE_NAMES,
18540
18849
  RTCM3_MESSAGE_NAMES,
18850
+ Rtcm2Decoder,
18541
18851
  Rtcm3Decoder,
18542
18852
  RtkFloatEngine,
18543
18853
  SBAS_L5_MT_NAMES,
@@ -18605,6 +18915,7 @@ function computePsdDb(centerMHz, halfSpanChips, numPoints, psdFn, f0 = 1023e3, f
18605
18915
  decodeMsmFull,
18606
18916
  decodeSbfNavigation,
18607
18917
  decodeSsr,
18918
+ decodeSystemParams,
18608
18919
  deg2dms,
18609
18920
  deg2rad,
18610
18921
  detrendIonoArcs,
@@ -18702,6 +19013,7 @@ function computePsdDb(centerMHz, halfSpanChips, numPoints, psdFn, f0 = 1023e3, f
18702
19013
  klobucharDelay,
18703
19014
  lambdaReduction,
18704
19015
  lambdaSearch,
19016
+ looksLikeRtcm2,
18705
19017
  maskRadForAzimuth,
18706
19018
  moonEcef,
18707
19019
  msmEpochToDate,
@@ -18761,6 +19073,11 @@ function computePsdDb(centerMHz, halfSpanChips, numPoints, psdFn, f0 = 1023e3, f
18761
19073
  resetGloFreqCache,
18762
19074
  resolvePppAmbiguities,
18763
19075
  rhumbLine,
19076
+ rtcm2Dgps,
19077
+ rtcm2Observation,
19078
+ rtcm2Station,
19079
+ rtcm2Text,
19080
+ rtcm2Time,
18764
19081
  rtcm3Constellation,
18765
19082
  satClockCorrection,
18766
19083
  sbasIonoDeg,
package/dist/index.d.cts CHANGED
@@ -9,8 +9,9 @@ export { BiasRecord, BiasSinex, CompactEpoch, CrxField, DiffState, EMPTY_WARNING
9
9
  export { E as EpochSummary, P as ParseOptions, R as RinexHeader, a as RinexResult, b as RinexStats, S as SYSTEM_ORDER, c as SatObsCallback, p as parseRinexStream, s as systemCmp, d as systemName } from './parser-JPjjFgeP.cjs';
10
10
  export { C as CnavEphemeris, E as Ephemeris, G as GlonassEphemeris, K as KeplerEphemeris, N as NavHeader, a as NavResult, R as RinexCnavEphemeris, p as parseNavFile } from './nav-DImXUdbp.cjs';
11
11
  export { C as ClkFile, I as IonexGrid, S as Sp3File, a as Sp3Sample, c as clkBias, p as parseClk, b as parseIonex, d as parseSp3, s as sp3Position } from './clk-DGVBGRzA.cjs';
12
+ export { RTCM2_MESSAGE_NAMES, Rtcm2Correction, Rtcm2Decoder, Rtcm2Frame, Rtcm2ObsRecord, Rtcm2Station, looksLikeRtcm2, rtcm2Dgps, rtcm2Observation, rtcm2Station, rtcm2Text, rtcm2Time } from './rtcm2.cjs';
12
13
  export { B as BitReader, E as EphemerisInfo, R as Rtcm3DebugHandler, a as Rtcm3Decoder, b as Rtcm3Frame, d as decodeEphemeris, r as readString, c as reportDecodeError, s as setRtcm3DebugHandler } from './ephemeris-Ohl6NAfw.cjs';
13
- export { IgsSsrIonoLayer, IgsSsrMessage, MessageTypeStats, MsmEpoch, MsmSatObs, MsmSignal, RTCM3_MESSAGE_NAMES, SatCn0, SignalCn0, SsrCodeBias, SsrKind, SsrMessage, SsrPhaseBias, SsrSatCorrection, StationMeta, StreamStats, createStationMeta, createStreamStats, decodeIgsSsr, decodeLegacyObs, decodeMsmFull, decodeSsr, isSsrMessage, msmEpochToDate, resetGloFreqCache, rtcm3Constellation, setGloFreqNumber, updateStationMeta, updateStreamStats } from './rtcm3.cjs';
14
+ export { IgsSsrIonoLayer, IgsSsrMessage, MessageTypeStats, MsmEpoch, MsmSatObs, MsmSignal, RTCM3_MESSAGE_NAMES, SatCn0, SignalCn0, SsrCodeBias, SsrKind, SsrMessage, SsrPhaseBias, SsrSatCorrection, StationMeta, StreamStats, SystemParams, SystemParamsMessage, createStationMeta, createStreamStats, decodeIgsSsr, decodeLegacyObs, decodeMsmFull, decodeSsr, decodeSystemParams, isSsrMessage, msmEpochToDate, resetGloFreqCache, rtcm3Constellation, setGloFreqNumber, updateStationMeta, updateStreamStats } from './rtcm3.cjs';
14
15
  export { UbxCnavResult, UbxFrame, UbxIonoUtcResult, UbxMeasurement, UbxNavOptions, UbxNavResult, UbxParseResult, UbxPvtResult, UbxRawNavOptions, UbxRawNavResult, UbxRawxEpoch, parseUbxCnav, parseUbxIonoUtc, parseUbxNav, parseUbxPvt, parseUbxRawNav, parseUbxRawx, ubxFrames } from './ubx.cjs';
15
16
  export { DfmcCensus, DfmcMessageCb, GeoL5Result, HasMessage, SBAS_L5_MT_NAMES, SBAS_L5_PREAMBLE_UW, SbasMessageCb, SbfBdsNavResult, SbfCnavEphemeris, SbfCnavResult, SbfGalEphemeris, SbfGalNavResult, SbfGeoL5Result, SbfGeoNavResult, SbfGloNavResult, SbfGpsNavResult, SbfHasMessage, SbfHasResult, SbfIonoUtcResult, SbfMeasEpoch, SbfMeasurement, SbfNavCounts, SbfNavigation, SbfParseResult, SbfPvt, SbfPvtResult, SbfReceiverSetup, decodeSbfNavigation, feedGeoBlock, feedGeoL5Block, isSbasL1Preamble, isSbasL5Correction, parseSbfBdsNav, parseSbfCnav, parseSbfGalNav, parseSbfGeoL5, parseSbfGeoNav, parseSbfGloNav, parseSbfGpsNav, parseSbfHas, parseSbfIonoUtc, parseSbfMeas, parseSbfPvt, parseSbfReceiverSetup, sbasL5MessageName, sbasL5MessageType, sbfCrc16, scanSbfFrames } from './sbf.cjs';
16
17
  export { NovatelEpoch, NovatelMeasurement, NovatelNavResult, NovatelParseResult, NovatelPvtResult, OEM4_HLEN, Oem4Frame, crc32, oem4Frames, parseNovatelNav, parseNovatelPvt, parseNovatelRange } from './novatel.cjs';
package/dist/index.d.ts CHANGED
@@ -9,8 +9,9 @@ export { BiasRecord, BiasSinex, CompactEpoch, CrxField, DiffState, EMPTY_WARNING
9
9
  export { E as EpochSummary, P as ParseOptions, R as RinexHeader, a as RinexResult, b as RinexStats, S as SYSTEM_ORDER, c as SatObsCallback, p as parseRinexStream, s as systemCmp, d as systemName } from './parser-JPjjFgeP.js';
10
10
  export { C as CnavEphemeris, E as Ephemeris, G as GlonassEphemeris, K as KeplerEphemeris, N as NavHeader, a as NavResult, R as RinexCnavEphemeris, p as parseNavFile } from './nav-DImXUdbp.js';
11
11
  export { C as ClkFile, I as IonexGrid, S as Sp3File, a as Sp3Sample, c as clkBias, p as parseClk, b as parseIonex, d as parseSp3, s as sp3Position } from './clk-DGVBGRzA.js';
12
+ export { RTCM2_MESSAGE_NAMES, Rtcm2Correction, Rtcm2Decoder, Rtcm2Frame, Rtcm2ObsRecord, Rtcm2Station, looksLikeRtcm2, rtcm2Dgps, rtcm2Observation, rtcm2Station, rtcm2Text, rtcm2Time } from './rtcm2.js';
12
13
  export { B as BitReader, E as EphemerisInfo, R as Rtcm3DebugHandler, a as Rtcm3Decoder, b as Rtcm3Frame, d as decodeEphemeris, r as readString, c as reportDecodeError, s as setRtcm3DebugHandler } from './ephemeris-Ohl6NAfw.js';
13
- export { IgsSsrIonoLayer, IgsSsrMessage, MessageTypeStats, MsmEpoch, MsmSatObs, MsmSignal, RTCM3_MESSAGE_NAMES, SatCn0, SignalCn0, SsrCodeBias, SsrKind, SsrMessage, SsrPhaseBias, SsrSatCorrection, StationMeta, StreamStats, createStationMeta, createStreamStats, decodeIgsSsr, decodeLegacyObs, decodeMsmFull, decodeSsr, isSsrMessage, msmEpochToDate, resetGloFreqCache, rtcm3Constellation, setGloFreqNumber, updateStationMeta, updateStreamStats } from './rtcm3.js';
14
+ export { IgsSsrIonoLayer, IgsSsrMessage, MessageTypeStats, MsmEpoch, MsmSatObs, MsmSignal, RTCM3_MESSAGE_NAMES, SatCn0, SignalCn0, SsrCodeBias, SsrKind, SsrMessage, SsrPhaseBias, SsrSatCorrection, StationMeta, StreamStats, SystemParams, SystemParamsMessage, createStationMeta, createStreamStats, decodeIgsSsr, decodeLegacyObs, decodeMsmFull, decodeSsr, decodeSystemParams, isSsrMessage, msmEpochToDate, resetGloFreqCache, rtcm3Constellation, setGloFreqNumber, updateStationMeta, updateStreamStats } from './rtcm3.js';
14
15
  export { UbxCnavResult, UbxFrame, UbxIonoUtcResult, UbxMeasurement, UbxNavOptions, UbxNavResult, UbxParseResult, UbxPvtResult, UbxRawNavOptions, UbxRawNavResult, UbxRawxEpoch, parseUbxCnav, parseUbxIonoUtc, parseUbxNav, parseUbxPvt, parseUbxRawNav, parseUbxRawx, ubxFrames } from './ubx.js';
15
16
  export { DfmcCensus, DfmcMessageCb, GeoL5Result, HasMessage, SBAS_L5_MT_NAMES, SBAS_L5_PREAMBLE_UW, SbasMessageCb, SbfBdsNavResult, SbfCnavEphemeris, SbfCnavResult, SbfGalEphemeris, SbfGalNavResult, SbfGeoL5Result, SbfGeoNavResult, SbfGloNavResult, SbfGpsNavResult, SbfHasMessage, SbfHasResult, SbfIonoUtcResult, SbfMeasEpoch, SbfMeasurement, SbfNavCounts, SbfNavigation, SbfParseResult, SbfPvt, SbfPvtResult, SbfReceiverSetup, decodeSbfNavigation, feedGeoBlock, feedGeoL5Block, isSbasL1Preamble, isSbasL5Correction, parseSbfBdsNav, parseSbfCnav, parseSbfGalNav, parseSbfGeoL5, parseSbfGeoNav, parseSbfGloNav, parseSbfGpsNav, parseSbfHas, parseSbfIonoUtc, parseSbfMeas, parseSbfPvt, parseSbfReceiverSetup, sbasL5MessageName, sbasL5MessageType, sbfCrc16, scanSbfFrames } from './sbf.js';
16
17
  export { NovatelEpoch, NovatelMeasurement, NovatelNavResult, NovatelParseResult, NovatelPvtResult, OEM4_HLEN, Oem4Frame, crc32, oem4Frames, parseNovatelNav, parseNovatelPvt, parseNovatelRange } from './novatel.js';