RTCM 3.3 decoder/encoder
npm install @gnss/rtcm```
npm install -S @gnss/rtcm
typescript
let buffer: Buffer = ...; // Raw bytes of message to be decoded
let message: RtcmMessage; // Decoded message
let length: number; // Length of decoded message in bytes
[message, length] = RtcmTransport.decode(buffer);
// ...
buffer = buffer.slice(length); // Move to next message
`#### Encoding
`typescript
let message = ...; // Message to be encoded
let buffer: Buffer = Buffer.allocUnsafe(RtcmTransport.MAX_PACKET_SIZE);
RtcmTransport.encode(message, buffer);
`$3
Messages can be manually constructed using RtcmMessage???.construct({}), which requires all message properties to be provided.
`typescript
RtcmMessagePhysicalReferenceStationPosition.construct({
nonPhysicalReferenceStationId: 1,
physicalReferenceStationId: 0,
itrfEpochYear: 0,
arpEcefX: 37927650000,
arpEcefY: -4160650000,
arpEcefZ: 50938770000
})
`$3
Transform streams to convert from RtcmMessages to raw bytes and vice-versa.
`typescript
let input: stream.Readable = ...;
let output: stream.Writable = ...;
input // Stream of raw data
.pipe(new RtcmDecodeTransformStream()) // Stream of RtcmMessage objects
.pipe(new RtcmEncodeTransformStream()) // Stream of (identical) raw data
.pipe(output);
`RtcmDecodeTransformStream can optionally synchronize with the raw data stream e.g. if it starts receiving data from the middle of a message.Messages Supported
- MT1001 (_RtcmMessageGpsL1Observables_)
- MT1002 (_RtcmMessageGpsL1ObservablesExtended_)
- MT1003 (_RtcmMessageGpsL1L2Observables_)
- MT1004 (_RtcmMessageGpsL1L2ObservablesExtended_)
- MT1005 (_RtcmMessageStationaryArp_)
- MT1006 (_RtcmMessageStationaryArpHeight_)
- MT1007 (_RtcmMessageAntennaDescriptor_)
- MT1008 (_RtcmMessageAntennaDescriptorSerial_)
- MT1009 (_RtcmMessageGlonassL1Observables_)
- MT1010 (_RtcmMessageGlonassL1ObservablesExtended_)
- MT1011 (_RtcmMessageGlonassL1L2Observables_)
- MT1012 (_RtcmMessageGlonassL1L2ObservablesExtended_)
- MT1013 (_RtcmMessageAuxiliaryOperationInformation_)
- MT1014 (_RtcmMessageNetworkAuxiliaryStationData_)
- MT1015 (_RtcmMessageGpsIonosphericCorrectionDifferences_)
- MT1016 (_RtcmMessageGpsGeometricCorrectionDifferences_)
- MT1017 (_RtcmMessageGpsCombinedCorrectionDifferences_)
- MT1019 (_RtcmMessageGpsSatelliteEphemeris_)
- MT1020 (_RtcmMessageGlonassSatelliteEphemerisData_)
- MT1021 (_RtcmMessageHelmertAbridgedMolodenskiTransformationParameters_)
- MT1022 (_RtcmMessageMolodenskiBadekasTransformationParameters_)
- MT1023 (_RtcmMessageResidualsEllipsoidalGridRepresentation_)
- MT1024 (_RtcmMessageResidualsPlaneGridRepresentation_)
- MT1025 (_RtcmMessageProjectionParametersExceptLcc2spOm_)
- MT1026 (_RtcmMessageProjectionParametersLcc2sp_)
- MT1027 (_RtcmMessageProjectionParametersOm_)
- MT1029 (_RtcmMessageUnicodeTextString_)
- MT1030 (_RtcmMessageGpsNetworkRtkResidual_)
- MT1031 (_RtcmMessageGlonassNetworkRtkResidual_)
- MT1032 (_RtcmMessagePhysicalReferenceStationPosition_)
- MT1033 (_RtcmMessageReceiverAntennaDescriptor_)
- MT1034 (_RtcmMessageGpsNetworkFkpGradient_)
- MT1035 (_RtcmMessageGlonassNetworkFkpGradient_)
- MT1037 (_RtcmMessageGlonassIonosphericCorrectionDifferences_)
- MT1038 (_RtcmMessageGlonassGeometricCorrectionDifferences_)
- MT1039 (_RtcmMessageGlonassCombinedCorrectionDifferences_)
- MT1041 (_RtcmMessageIrnssSatelliteEphemerisData_)
- MT1042 (_RtcmMessageBdsSatelliteEphemerisData_)
- MT1044 (_RtcmMessageQzssSatelliteEphemerisData_)
- MT1045 (_RtcmMessageGalileoFNavSatelliteEphemerisData_)
- MT1046 (_RtcmMessageGalileoINavSatelliteEphemerisData_)
- MT1057 (_RtcmMessageSsrGpsOrbitCorrection_)
- MT1058 (_RtcmMessageSsrGpsClockCorrection_)
- MT1059 (_RtcmMessageSsrGpsCodeBias_)
- MT1060 (_RtcmMessageSsrGpsCombinedCorrection_)
- MT1061 (_RtcmMessageSsrGpsUra_)
- MT1062 (_RtcmMessageSsrGpsHighRateClockCorrection_)
- MT1063 (_RtcmMessageSsrGlonassOrbitCorrection_)
- MT1064 (_RtcmMessageSsrGlonassClockCorrection_)
- MT1065 (_RtcmMessageSsrGlonassCodeBias_)
- MT1066 (_RtcmMessageSsrGlonassCombinedCorrection_)
- MT1067 (_RtcmMessageSsrGlonassUra_)
- MT1068 (_RtcmMessageSsrGlonassHighRateClockCorrection_)
- MT1071 (_RtcmMessageMsm1Gps_)
- MT1072 (_RtcmMessageMsm2Gps_)
- MT1073 (_RtcmMessageMsm3Gps_)
- MT1074 (_RtcmMessageMsm4Gps_)
- MT1075 (_RtcmMessageMsm5Gps_)
- MT1076 (_RtcmMessageMsm6Gps_)
- MT1077 (_RtcmMessageMsm7Gps_)
- MT1081 (_RtcmMessageMsm1Glonass_)
- MT1082 (_RtcmMessageMsm2Glonass_)
- MT1083 (_RtcmMessageMsm3Glonass_)
- MT1084 (_RtcmMessageMsm4Glonass_)
- MT1085 (_RtcmMessageMsm5Glonass_)
- MT1086 (_RtcmMessageMsm6Glonass_)
- MT1087 (_RtcmMessageMsm7Glonass_)
- MT1091 (_RtcmMessageMsm1Galileo_)
- MT1092 (_RtcmMessageMsm2Galileo_)
- MT1093 (_RtcmMessageMsm3Galileo_)
- MT1094 (_RtcmMessageMsm4Galileo_)
- MT1095 (_RtcmMessageMsm5Galileo_)
- MT1096 (_RtcmMessageMsm6Galileo_)
- MT1097 (_RtcmMessageMsm7Galileo_)
- MT1101 (_RtcmMessageMsm1Sbas_)
- MT1102 (_RtcmMessageMsm2Sbas_)
- MT1103 (_RtcmMessageMsm3Sbas_)
- MT1104 (_RtcmMessageMsm4Sbas_)
- MT1105 (_RtcmMessageMsm5Sbas_)
- MT1106 (_RtcmMessageMsm6Sbas_)
- MT1107 (_RtcmMessageMsm7Sbas_)
- MT1111 (_RtcmMessageMsm1Qzss_)
- MT1112 (_RtcmMessageMsm2Qzss_)
- MT1113 (_RtcmMessageMsm3Qzss_)
- MT1114 (_RtcmMessageMsm4Qzss_)
- MT1115 (_RtcmMessageMsm5Qzss_)
- MT1116 (_RtcmMessageMsm6Qzss_)
- MT1117 (_RtcmMessageMsm7Qzss_)
- MT1121 (_RtcmMessageMsm1Bds_)
- MT1122 (_RtcmMessageMsm2Bds_)
- MT1123 (_RtcmMessageMsm3Bds_)
- MT1124 (_RtcmMessageMsm4Bds_)
- MT1125 (_RtcmMessageMsm5Bds_)
- MT1126 (_RtcmMessageMsm6Bds_)
- MT1127 (_RtcmMessageMsm7Bds_)
- MT1131 (_RtcmMessageMsm1Irnss_)
- MT1132 (_RtcmMessageMsm2Irnss_)
- MT1133 (_RtcmMessageMsm3Irnss_)
- MT1134 (_RtcmMessageMsm4Irnss_)
- MT1135 (_RtcmMessageMsm5Irnss_)
- MT1136 (_RtcmMessageMsm6Irnss_)
- MT1137 (_RtcmMessageMsm7Irnss_)
- MT1230 (_RtcmMessageGlonassL1L2CodePhaseBiases_)Testing
npm test`