rtcm3

package
v0.15.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2024 License: Apache-2.0, Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SPEED_OF_LIGHT = 299792458.0
)

Variables

View Source
var FramePreamble byte = 0xD3
View Source
var GlonassFcnMap = GlonassFreqChanMap{
	0:  {-7, 1598.0625, 1242.9375},
	1:  {-6, 1598.6250, 1243.3750},
	2:  {-5, 1599.1875, 1243.8125},
	3:  {-4, 1599.7500, 1244.2500},
	4:  {-3, 1600.3125, 1244.6875},
	5:  {-2, 1600.8750, 1245.1250},
	6:  {-1, 1601.4375, 1245.5625},
	7:  {0, 1602.0, 1246.0},
	8:  {1, 1602.5625, 1246.4375},
	9:  {2, 1603.125, 1246.875},
	10: {3, 1603.6875, 1247.3125},
	11: {4, 1604.25, 1247.75},
	12: {5, 1604.8125, 1248.1875},
	13: {6, 1605.375, 1248.625},
}

Functions

func CalculateDF408

func CalculateDF408(snr float64) uint16

calculateDF408 encodes the SNR in dB-Hz to the DF408 format using uint10.

func Crc24q

func Crc24q(data []byte) uint32

func DF004

func DF004(e uint32) time.Time

GPS Epoch Time (TOW)

func DF004Time

func DF004Time(e uint32, start time.Time) time.Time

func DF034

func DF034(e uint32, now time.Time) time.Time

GLONASS Epoch Time (tk)

func DF385

func DF385(e uint32) time.Time

GPS Epoch Time 1s

func DF386

func DF386(e uint32, now time.Time) time.Time

GLONASS Epoch Time 1s

func DF427

func DF427(e uint32, start time.Time) time.Time

BeiDou Epoch Time (TOW)

func FineDoppler

func FineDoppler(roughDoppler, dopplerHz, frequencyMHz float64) float64

FineDoppler calculates the fine Doppler in 0.0001 m/s

func FineRangeMSM7

func FineRangeMSM7(numberOfMillis, roughRange, rangeMeters float64) float64

calculateFineRangeMSM7 calculates the fine range in 2^-29 meters calculated for each signal

func FromDF077 added in v0.9.0

func FromDF077(df077 uint8) float64

FromDF077 returns the accuracy in meters for a given DF077 value

func GetBitUint32

func GetBitUint32(num uint32, pos uint) bool

GetBitUint32 gets a single bit in a uint32 at position `pos` (MSB is bit 0)

func GetBitUint64

func GetBitUint64(num uint64, pos uint) bool

GetBitUint64 gets a single bit in a uint64 at position `pos` (MSB is bit 0)

func GetExtendedLockTimeIndex

func GetExtendedLockTimeIndex(t uint32) uint32

GetExtendedLockTimeIndex calculates the lock time index from the lock time in milliseconds DF407 - extended phase range lock time indicator

func GetLockTimeIndex

func GetLockTimeIndex(t uint32) uint32

GetLockTimeIndicator calculates the lock time indicator from the lock time in milliseconds DF402 - phaserange lock time indicator

func GlonassTimeMSM

func GlonassTimeMSM(e uint32, now time.Time) time.Time

DF416 + DF034

func GlonassTimeMSMNow

func GlonassTimeMSMNow(e uint32) time.Time

func MaskBitsOutsideRange

func MaskBitsOutsideRange(x uint64, m int, n int) uint64

MaskBitsOutsideRange masks bits outside the range [m, n] in a uint64 number.

func Msm5ToEpoch

func Msm5ToEpoch(msg MessageMsm5, system gnss.System) (epoch observation.Epoch, err error)

func NumberOfMillis

func NumberOfMillis(rangeMeters float64) float64

NumberOfMillis calculates the number of milliseconds in the range calculated once per satellite

func RoughDoppler

func RoughDoppler(dopplerHz float64, frequencyMHz float64) float64

RoughDoppler calculates the rough Doppler in 1 m/s

func RoughRangeMSM

func RoughRangeMSM(rangeMeters float64) float64

RoughRangeMSM calculates the rough range in 2^-10 milliseconds calculated once per satellite

func SerializeMsmHeader

func SerializeMsmHeader(w *iobit.Writer, header MsmHeader)

func SerializeSatelliteDataMsm4

func SerializeSatelliteDataMsm4(w *iobit.Writer, satelliteData SatelliteDataMsm4)

func SerializeSatelliteDataMsm5

func SerializeSatelliteDataMsm5(w *iobit.Writer, satelliteData SatelliteDataMsm5)

func SerializeSatelliteDataMsm6

func SerializeSatelliteDataMsm6(w *iobit.Writer, satelliteData SatelliteDataMsm6)

func SerializeSatelliteDataMsm7

func SerializeSatelliteDataMsm7(w *iobit.Writer, satelliteData SatelliteDataMsm7)

func SetBitUint32

func SetBitUint32(num uint32, pos uint) uint32

SetBit sets a single bit in a uint32 at position `pos` (MSB is bit 0)

func SetBitUint64

func SetBitUint64(num uint64, pos uint) uint64

SetBit sets a single bit in a uint64 at position `pos` (MSB is bit 0)

func SystemToMSM7MessageNumber

func SystemToMSM7MessageNumber(sys gnss.System) (uint16, error)

func TimeToBeidouEpoch

func TimeToBeidouEpoch(t time.Time) uint32

func TimeToGLONASSEpoch

func TimeToGLONASSEpoch(t time.Time) uint32

TimeToGLONASSEpoch converts a time to a GLONASS epoch - The GLONASS epoch is a 32-bit value with the upper 3 bits representing the day of the week (DF416) and the lower 29 bits representing the time of day in milliseconds (DF034) The GLONASS epoch is based on the GLONASS system time The GLONASS system time is 3 hours ahead of UTC The GLONASS epoch is based on the start of the week (sow) which is the last Sunday at midnight

func ToDF077 added in v0.9.0

func ToDF077(accuracy float64) uint8

ToDF077 returns the DF077 value for a given accuracy in meters

Types

type AbstractMessage

type AbstractMessage struct {
	MessageNumber uint16 `struct:"uint16:12"`
}

AbstractMessage is used to factor out the MessageNumber attribute which all Message's have

func (AbstractMessage) Number

func (msg AbstractMessage) Number() int

type AntennaReferencePoint

type AntennaReferencePoint struct {
	ReferenceStationId        uint16 `struct:"uint16:12"`
	ItrfRealizationYear       uint8  `struct:"uint8:6"`
	GpsIndicator              bool   `struct:"uint8:1,variantbool"`
	GlonassIndicator          bool   `struct:"uint8:1,variantbool"`
	GalileoIndicator          bool   `struct:"uint8:1,variantbool"`
	ReferenceStationIndicator bool   `struct:"uint8:1,variantbool"`
	ReferencePointX           int64  `struct:"int64:38"`
	SingleReceiverOscilator   bool   `struct:"uint8:1,variantbool"`
	Reserved                  bool   `struct:"uint8:1,variantbool"`
	ReferencePointY           int64  `struct:"int64:38"`
	QuarterCycleIndicator     uint8  `struct:"uint8:2"`
	ReferencePointZ           int64  `struct:"int64:38"`
}

type Frame

type Frame struct {
	Preamble uint8
	Reserved uint8
	Length   uint16
	Payload  []byte
	Crc      uint32
}

Frame wraps an RTCM3 message to provide a boundary for parsing binary data

func DeserializeFrame

func DeserializeFrame(reader *bufio.Reader) (frame Frame, err error)

DeserializeFrame attempts to read RTCM Frame's from a bufio.Reader and only reads first byte from reader if Preamble or CRC are incorrect TODO: Consider returning the discarded byte, or using Peek for the first byte as well

func EncapsulateByteArray

func EncapsulateByteArray(data []byte) (frame Frame)

EncapsulateByteArray lazily wraps any byte array in an RTCM3 Frame

func EncapsulateMessage

func EncapsulateMessage(msg Message) (frame Frame)

EncapsulateMessage wraps any Message in an RTCM3 Frame

func (Frame) MessageNumber

func (frame Frame) MessageNumber() uint16

func (Frame) Serialize

func (frame Frame) Serialize() []byte

type FreqChanNumInfo

type FreqChanNumInfo struct {
	Fcn    int
	FreqL1 float64
	FreqL2 float64
}

type GlonassFreqChanMap

type GlonassFreqChanMap map[int]FreqChanNumInfo

func (GlonassFreqChanMap) FcnInfo

func (fcnMap GlonassFreqChanMap) FcnInfo(id int) (fcnInfo FreqChanNumInfo, err error)

type Message

type Message interface {
	// Serialize the message to binary
	Serialize() []byte
	// This is the RTCM Message number
	Number() int
}

Message interface represents any RTCM3 message

func DeserializeMessage

func DeserializeMessage(payload []byte) (msg Message)

DeserializeMessage extracts Message Number from payload and deserializes to the appropriate Message type TODO: Check length of payload before attempting to parse TODO: Each Deserialize method should return errors

type Message1001

type Message1001 struct {
	AbstractMessage
	ReferenceStationID uint16 `struct:"uint16:12"`
	Epoch              uint32 `struct:"uint32:30"`
	SynchronousGNSS    bool   `struct:"uint8:1,variantbool"`
	SignalsProcessed   uint8  `struct:"uint8:5,sizeof=SatelliteData"`
	SmoothingIndicator bool   `struct:"uint8:1,variantbool"`
	SmoothingInterval  uint8  `struct:"uint8:3"`
	SatelliteData      []struct {
		SatelliteID         uint8  `struct:"uint8:6"`
		L1CodeIndicator     bool   `struct:"uint8:1,variantbool"`
		L1Pseudorange       uint32 `struct:"uint32:24"`
		L1PhaseRange        int32  `struct:"int32:20"`
		L1LockTimeIndicator uint8  `struct:"uint8:7"`
	}
}

L1-Only GPS RTK Observables

func DeserializeMessage1001

func DeserializeMessage1001(data []byte) (msg Message1001)

func (Message1001) SatelliteCount

func (msg Message1001) SatelliteCount() int

func (Message1001) Serialize

func (msg Message1001) Serialize() []byte

func (Message1001) Time

func (msg Message1001) Time() time.Time

type Message1002

type Message1002 struct {
	AbstractMessage
	ReferenceStationID uint16 `struct:"uint16:12"`
	Epoch              uint32 `struct:"uint32:30"`
	SynchronousGNSS    bool   `struct:"uint8:1,variantbool"`
	SignalsProcessed   uint8  `struct:"uint8:5,sizeof=SatelliteData"`
	SmoothingIndicator bool   `struct:"uint8:1,variantbool"`
	SmoothingInterval  uint8  `struct:"uint8:3"`
	SatelliteData      []struct {
		SatelliteID            uint8  `struct:"uint8:6"`
		L1CodeIndicator        bool   `struct:"uint8:1,variantbool"`
		L1Pseudorange          uint32 `struct:"uint32:24"`
		L1PhaseRange           int32  `struct:"int32:20"`
		L1LockTimeIndicator    uint8  `struct:"uint8:7"`
		L1PseudorangeAmbiguity uint8  `struct:"uint8"`
		L1CNR                  uint8  `struct:"uint8"`
	}
}

Extended L1-Only GPS RTK Observables

func DeserializeMessage1002

func DeserializeMessage1002(data []byte) (msg Message1002)

func (Message1002) SatelliteCount

func (msg Message1002) SatelliteCount() int

func (Message1002) Serialize

func (msg Message1002) Serialize() []byte

func (Message1002) Time

func (msg Message1002) Time() time.Time

type Message1003

type Message1003 struct {
	AbstractMessage
	ReferenceStationID uint16 `struct:"uint16:12"`
	Epoch              uint32 `struct:"uint32:30"`
	SynchronousGNSS    bool   `struct:"uint8:1,variantbool"`
	SignalsProcessed   uint8  `struct:"uint8:5,sizeof=SatelliteData"`
	SmoothingIndicator bool   `struct:"uint8:1,variantbool"`
	SmoothingInterval  uint8  `struct:"uint8:3"`
	SatelliteData      []struct {
		SatelliteID             uint8  `struct:"uint8:6"`
		L1CodeIndicator         bool   `struct:"uint8:1,variantbool"`
		L1Pseudorange           uint32 `struct:"uint32:24"`
		L1PhaseRange            int32  `struct:"int32:20"`
		L1LockTimeIndicator     uint8  `struct:"uint8:7"`
		L2CodeIndicator         uint8  `struct:"uint8:2"`
		L2PseudorangeDifference int16  `struct:"int16:14"`
		L2PhaseRange            int32  `struct:"int32:20"`
		L2LockTimeIndicator     uint8  `struct:"uint8:7"`
	}
}

L1&L2 GPS RTK Observables

func DeserializeMessage1003

func DeserializeMessage1003(data []byte) (msg Message1003)

func (Message1003) SatelliteCount

func (msg Message1003) SatelliteCount() int

func (Message1003) Serialize

func (msg Message1003) Serialize() []byte

func (Message1003) Time

func (msg Message1003) Time() time.Time

type Message1004

type Message1004 struct {
	AbstractMessage
	ReferenceStationID uint16 `struct:"uint16:12"`
	Epoch              uint32 `struct:"uint32:30"`
	SynchronousGNSS    bool   `struct:"uint8:1,variantbool"`
	SignalsProcessed   uint8  `struct:"uint8:5,sizeof=SatelliteData"`
	SmoothingIndicator bool   `struct:"uint8:1,variantbool"`
	SmoothingInterval  uint8  `struct:"uint8:3"`
	SatelliteData      []struct {
		SatelliteID             uint8  `struct:"uint8:6"`
		L1CodeIndicator         bool   `struct:"uint8:1,variantbool"`
		L1Pseudorange           uint32 `struct:"uint32:24"`
		L1PhaseRange            int32  `struct:"int32:20"`
		L1LockTimeIndicator     uint8  `struct:"uint8:7"`
		L1PseudorangeAmbiguity  uint8  `struct:"uint8"`
		L1CNR                   uint8  `struct:"uint8"`
		L2CodeIndicator         uint8  `struct:"uint8:2"`
		L2PseudorangeDifference int16  `struct:"int16:14"`
		L2PhaseRange            int32  `struct:"int32:20"`
		L2LockTimeIndicator     uint8  `struct:"uint8:7"`
		L2CNR                   uint8  `struct:"uint8"`
	}
}

Extended L1&L2 GPS RTK Observables

func DeserializeMessage1004

func DeserializeMessage1004(data []byte) (msg Message1004)

func (Message1004) SatelliteCount

func (msg Message1004) SatelliteCount() int

func (Message1004) Serialize

func (msg Message1004) Serialize() []byte

func (Message1004) Time

func (msg Message1004) Time() time.Time

type Message1005

type Message1005 struct {
	AbstractMessage
	AntennaReferencePoint
}

Stationary RTK Reference Station ARP

func DeserializeMessage1005

func DeserializeMessage1005(data []byte) (msg Message1005)

func (Message1005) Serialize

func (msg Message1005) Serialize() []byte

type Message1006

type Message1006 struct {
	AbstractMessage
	AntennaReferencePoint
	AntennaHeight uint16 `struct:"uint16"`
}

Stationary RTK Reference Station ARP with Antenna Height

func DeserializeMessage1006

func DeserializeMessage1006(data []byte) (msg Message1006)

func (Message1006) Serialize

func (msg Message1006) Serialize() []byte

type Message1007

type Message1007 struct {
	AbstractMessage
	MessageAntennaDescriptor
}

Antenna Descriptor

func DeserializeMessage1007

func DeserializeMessage1007(data []byte) (msg Message1007)

func (Message1007) Serialize

func (msg Message1007) Serialize() []byte

type Message1008

type Message1008 struct {
	AbstractMessage
	MessageAntennaDescriptor
	SerialNumberLength uint8  `struct:"uint8"`
	SerialNumber       string `struct:"[]byte,sizefrom=SerialNumberLength"`
}

Antenna Descriptor & Serial Number

func DeserializeMessage1008

func DeserializeMessage1008(data []byte) (msg Message1008)

func (Message1008) Serialize

func (msg Message1008) Serialize() []byte

type Message1009

type Message1009 struct {
	AbstractMessage
	ReferenceStationId uint16 `struct:"uint16:12"`
	Epoch              uint32 `struct:"uint32:27"`
	SynchronousGnss    bool   `struct:"uint8:1,variantbool"`
	SignalCount        uint8  `struct:"uint8:5,sizeof=SignalData"`
	SmoothingIndicator bool   `struct:"uint8:1,variantbool"`
	SmoothingInterval  uint8  `struct:"uint8:3"`
	SignalData         []struct {
		SatelliteId         uint8  `struct:"uint8:6"`
		L1CodeIndicator     bool   `struct:"uint8:1,variantbool"`
		FrequencyChannel    uint8  `struct:"uint8:5"`
		L1Pseudorange       uint32 `struct:"uint32:25"`
		L1PhaseRange        int32  `struct:"int32:20"`
		L1LockTimeIndicator uint8  `struct:"uint8:7"`
	}
}

L1-Only GLONASS RTK Observables

func DeserializeMessage1009

func DeserializeMessage1009(data []byte) (msg Message1009)

func (Message1009) SatelliteCount

func (msg Message1009) SatelliteCount() int

func (Message1009) Serialize

func (msg Message1009) Serialize() []byte

func (Message1009) Time

func (msg Message1009) Time() time.Time

type Message1010

type Message1010 struct {
	AbstractMessage
	ReferenceStationId uint16 `struct:"uint16:12"`
	Epoch              uint32 `struct:"uint32:27"`
	SynchronousGnss    bool   `struct:"uint8:1,variantbool"`
	SignalCount        uint8  `struct:"uint8:5,sizeof=SignalData"`
	SmoothingIndicator bool   `struct:"uint8:1,variantbool"`
	SmoothingInterval  uint8  `struct:"uint8:3"`
	SignalData         []struct {
		SatelliteId            uint8  `struct:"uint8:6"`
		L1CodeIndicator        bool   `struct:"uint8:1,variantbool"`
		FrequencyChannel       uint8  `struct:"uint8:5"`
		L1Pseudorange          uint32 `struct:"uint32:25"`
		L1PhaseRange           int32  `struct:"int32:20"`
		L1LockTimeIndicator    uint8  `struct:"uint8:7"`
		L1PseudorangeAmbiguity uint8  `struct:"uint8:7"`
		L1Cnr                  uint8  `struct:"uint8"`
	}
}

Extended L1-Only GLONASS RTK Observables

func DeserializeMessage1010

func DeserializeMessage1010(data []byte) (msg Message1010)

func (Message1010) SatelliteCount

func (msg Message1010) SatelliteCount() int

func (Message1010) Serialize

func (msg Message1010) Serialize() []byte

func (Message1010) Time

func (msg Message1010) Time() time.Time

type Message1011

type Message1011 struct {
	AbstractMessage
	ReferenceStationId uint16 `struct:"uint16:12"`
	Epoch              uint32 `struct:"uint32:27"`
	SynchronousGnss    bool   `struct:"uint8:1,variantbool"`
	SignalCount        uint8  `struct:"uint8:5,sizeof=SignalData"`
	SmoothingIndicator bool   `struct:"uint8:1,variantbool"`
	SmoothingInterval  uint8  `struct:"uint8:3"`
	SignalData         []struct {
		SatelliteId         uint8  `struct:"uint8:6"`
		L1CodeIndicator     bool   `struct:"uint8:1,variantbool"`
		FrequencyChannel    uint8  `struct:"uint8:5"`
		L1Pseudorange       uint32 `struct:"uint32:25"`
		L1PhaseRange        int32  `struct:"int32:20"`
		L1LockTimeIndicator uint8  `struct:"uint8:7"`
		L2CodeIndicator     uint8  `struct:"uint8:2"`
		L2Pseudorange       uint16 `struct:"uint16:14"`
		L2PhaseRange        int32  `struct:"int32:20"`
		L2LockTimeIndicator uint8  `struct:"uint8:7"`
	}
}

L1&L2 GLONASS RTK Observables

func DeserializeMessage1011

func DeserializeMessage1011(data []byte) (msg Message1011)

func (Message1011) SatelliteCount

func (msg Message1011) SatelliteCount() int

func (Message1011) Serialize

func (msg Message1011) Serialize() []byte

func (Message1011) Time

func (msg Message1011) Time() time.Time

type Message1012

type Message1012 struct {
	AbstractMessage
	ReferenceStationId uint16 `struct:"uint16:12"`
	Epoch              uint32 `struct:"uint32:27"`
	SynchronousGnss    bool   `struct:"uint8:1,variantbool"`
	SignalCount        uint8  `struct:"uint8:5,sizeof=SignalData"`
	SmoothingIndicator bool   `struct:"uint8:1,variantbool"`
	SmoothingInterval  uint8  `struct:"uint8:3"`
	SignalData         []struct {
		SatelliteId            uint8  `struct:"uint8:6"`
		L1CodeIndicator        bool   `struct:"uint8:1,variantbool"`
		FrequencyChannel       uint8  `struct:"uint8:5"`
		L1Pseudorange          uint32 `struct:"uint32:25"`
		L1PhaseRange           int32  `struct:"int32:20"`
		L1LockTimeIndicator    uint8  `struct:"uint8:7"`
		L1PseudorangeAmbiguity uint8  `struct:"uint8:7"`
		L1Cnr                  uint8  `struct:"uint8"`
		L2CodeIndicator        uint8  `struct:"uint8:2"`
		L2Pseudorange          uint16 `struct:"uint16:14"`
		L2PhaseRange           int32  `struct:"int32:20"`
		L2LockTimeIndicator    uint8  `struct:"uint8:7"`
		L2Cnr                  uint8  `struct:"uint8"`
	}
}

Extended L1&L2 GLONASS RTK Observables

func DeserializeMessage1012

func DeserializeMessage1012(data []byte) (msg Message1012)

func (Message1012) SatelliteCount

func (msg Message1012) SatelliteCount() int

func (Message1012) Serialize

func (msg Message1012) Serialize() []byte

func (Message1012) Time

func (msg Message1012) Time() time.Time

type Message1013

type Message1013 struct {
	AbstractMessage
	ReferenceStationId uint16 `struct:"uint16:12"`
	Mjd                uint16 `struct:"uint16"`
	SecondsOfDay       uint32 `struct:"uint32:17"`
	MessageCount       uint8  `struct:"uint8:5,sizeof=Messages"`
	LeapSeconds        uint8  `struct:"uint8"`
	Messages           []struct {
		Id                   uint16 `struct:"uint16:12"`
		SyncFlag             bool   `struct:"uint8:1,variantbool"`
		TransmissionInterval uint16 `struct:"uint16"`
	}
}

System Parameters

func DeserializeMessage1013

func DeserializeMessage1013(data []byte) (msg Message1013)

func (Message1013) Serialize

func (msg Message1013) Serialize() []byte

type Message1014

type Message1014 struct {
	AbstractMessage
	NetworkID                    uint8  `struct:"uint8:8"`
	SubnetworkID                 uint8  `struct:"uint8:4"`
	AuxiliaryStationsTransmitted uint8  `struct:"uint8:5"`
	MasterReferenceStationID     uint16 `struct:"uint16:12"`
	AuxiliaryReferenceStationID  uint16 `struct:"uint16:12"`
	AuxMasterDeltaLatitude       int32  `struct:"int32:20"`
	AuxMasterDeltaLongitude      int32  `struct:"int32:21"`
	AuxMasterDeltaHeight         int32  `struct:"int32:23"`
}

Network Auxiliary Station Data Message

func DeserializeMessage1014

func DeserializeMessage1014(data []byte) (msg Message1014)

func (Message1014) Serialize

func (msg Message1014) Serialize() []byte

type Message1015

type Message1015 struct {
	AbstractMessage
	NetworkID                   uint8  `struct:"uint8"`
	SubnetworkID                uint8  `struct:"uint8:4"`
	Epoch                       uint32 `struct:"uint32:23"`
	MultipleMessageIndicator    bool   `struct:"uint8:1,variantbool"`
	MasterReferenceStationID    uint16 `struct:"uint16:12"`
	AuxiliaryReferenceStationID uint16 `struct:"uint16:12"`
	SatelliteCount              uint8  `struct:"uint8:4,sizeof=SatelliteData"`
	SatelliteData               []struct {
		SatelliteID                                 uint8 `struct:"uint8:6"`
		AmbiguityStatusFlag                         uint8 `struct:"uint8:2"`
		NonSyncCount                                uint8 `struct:"uint8:3"`
		IonosphericCarrierPhaseCorrectionDifference int32 `struct:"int32:17"`
	}
}

GPS Ionospheric Correction Differences

func DeserializeMessage1015

func DeserializeMessage1015(data []byte) (msg Message1015)

func (Message1015) Serialize

func (msg Message1015) Serialize() []byte

type Message1016

type Message1016 struct {
	AbstractMessage
	NetworkID                   uint8  `struct:"uint8"`
	SubnetworkID                uint8  `struct:"uint8:4"`
	Epoch                       uint32 `struct:"uint32:23"`
	MultipleMessageIndicator    bool   `struct:"uint8:1,variantbool"`
	MasterReferenceStationID    uint16 `struct:"uint16:12"`
	AuxiliaryReferenceStationID uint16 `struct:"uint16:12"`
	SatelliteCount              uint8  `struct:"uint8:4,sizeof=SatelliteData"`
	SatelliteData               []struct {
		SatelliteID                               uint8 `struct:"uint8:6"`
		AmbiguityStatusFlag                       uint8 `struct:"uint8:2"`
		NonSyncCount                              uint8 `struct:"uint8:3"`
		GeometricCarrierPhaseCorrectionDifference int32 `struct:"int32:17"`
		IODE                                      uint8 `struct:"uint8"`
	}
}

GPS Geometric Correction Differences

func DeserializeMessage1016

func DeserializeMessage1016(data []byte) (msg Message1016)

func (Message1016) Serialize

func (msg Message1016) Serialize() []byte

type Message1017

type Message1017 struct {
	AbstractMessage
	NetworkID                   uint8  `struct:"uint8"`
	SubnetworkID                uint8  `struct:"uint8:4"`
	Epoch                       uint32 `struct:"uint32:23"`
	MultipleMessageIndicator    bool   `struct:"uint8:1,variantbool"`
	MasterReferenceStationID    uint16 `struct:"uint16:12"`
	AuxiliaryReferenceStationID uint16 `struct:"uint16:12"`
	SatelliteCount              uint8  `struct:"uint8:4,sizeof=SatelliteData"`
	SatelliteData               []struct {
		SatelliteID                                 uint8 `struct:"uint8:6"`
		AmbiguityStatusFlag                         uint8 `struct:"uint8:2"`
		NonSyncCount                                uint8 `struct:"uint8:3"`
		GeometricCarrierPhaseCorrectionDifference   int32 `struct:"int32:17"`
		IODE                                        uint8 `struct:"uint8"`
		IonosphericCarrierPhaseCorrectionDifference int32 `struct:"uint32:17"`
	}
}

GPS Combined Geometric and Ionospheric Correction Differences

func DeserializeMessage1017

func DeserializeMessage1017(data []byte) (msg Message1017)

func (Message1017) Serialize

func (msg Message1017) Serialize() []byte

type Message1019

type Message1019 struct {
	AbstractMessage
	// Satellite ID DF009 (1-63)
	SatelliteID uint8 `struct:"uint8:6"`
	// Week Number DF076 (0-1023)
	WeekNumber uint16 `struct:"uint16:10"`
	// SV accuracy DF077
	SVAccuracy   uint8  `struct:"uint8:4"`
	CodeOnL2     uint8  `struct:"uint8:2"`
	IDOT         int16  `struct:"int16:14"`
	IODE         uint8  `struct:"uint8"`
	Toc          uint16 `struct:"uint16"`
	Af2          int8   `struct:"int8"`
	Af1          int16  `struct:"int16"`
	Af0          int32  `struct:"int32:22"`
	IODC         uint16 `struct:"uint16:10"`
	Crs          int16  `struct:"int16"`
	DeltaN       int16  `struct:"int16"`
	M0           int32  `struct:"int32"`
	Cuc          int16  `struct:"int16"`
	Eccentricity uint32 `struct:"uint32"`
	Cus          int16  `struct:"int16"`
	SrA          uint32 `struct:"uint32"`
	Toe          uint16 `struct:"uint16"`
	Cic          int16  `struct:"int16"`
	Omega0       int32  `struct:"int32"`
	Cis          int16  `struct:"int16"`
	I0           int32  `struct:"int32"`
	Crc          int16  `struct:"int16"`
	Perigee      int32  `struct:"int32"`
	OmegaDot     int32  `struct:"int32:24"`
	Tgd          int8   `struct:"int8"`
	SVHealth     uint8  `struct:"uint8:6"`
	L2PDataFlag  bool   `struct:"uint8:1,variantbool"`
	FitInterval  bool   `struct:"uint8:1,variantbool"`
}

GPS Ephemerides

func DeserializeMessage1019

func DeserializeMessage1019(data []byte) (msg Message1019)

func FromGPSLNAVMessage added in v0.9.0

func FromGPSLNAVMessage(eph ephemeris.GPSLNAVMessage) Message1019

func (Message1019) GetGPSWeek added in v0.9.0

func (msg Message1019) GetGPSWeek() int

GetGPSWeek returns the GPS week number for the ephemeris

func (Message1019) Serialize

func (msg Message1019) Serialize() []byte

func (Message1019) ToGPSLNAVMessage added in v0.9.0

func (msg Message1019) ToGPSLNAVMessage() ephemeris.GPSLNAVMessage

ToGPSLNAVMessage converts the RTCM3 Message 1019 to a ephemeris.Ephemeris struct

type Message1020

type Message1020 struct {
	AbstractMessage
	SatelliteId               uint8  `struct:"uint8:6"`
	FrequencyChannel          uint8  `struct:"uint8:5"`
	AlmanacHealth             bool   `struct:"uint8:1,variantbool"`
	AlmanacHealthAvailability bool   `struct:"uint8:1,variantbool"`
	P1                        uint8  `struct:"uint8:2"`
	Tk                        uint16 `struct:"uint16:12"`
	Msb                       bool   `struct:"uint8:1,variantbool"`
	P2                        bool   `struct:"uint8:1,variantbool"`
	Tb                        uint8  `struct:"uint8:7"`
	XnTb1                     Sint   `struct:"uint32:24"`
	XnTb                      Sint   `struct:"uint32:27"`
	XnTb2                     Sint   `struct:"uint8:5"`
	YnTb1                     Sint   `struct:"uint32:24"`
	YnTb                      Sint   `struct:"uint32:27"`
	YnTb2                     Sint   `struct:"uint8:5"`
	ZnTb1                     Sint   `struct:"uint32:24"`
	ZnTb                      Sint   `struct:"uint32:27"`
	ZnTb2                     Sint   `struct:"uint8:5"`
	P3                        bool   `struct:"uint8:1,variantbool"`
	GammaN                    Sint   `struct:"uint16:11"`
	Mp                        uint8  `struct:"uint8:2"`
	M1n3                      bool   `struct:"uint8:1,variantbool"`
	TauN                      Sint   `struct:"uint32:22"`
	MDeltaTauN                Sint   `struct:"uint8:5"`
	En                        uint8  `struct:"uint8:5"`
	MP4                       bool   `struct:"uint8:1,variantbool"`
	MFt                       uint8  `struct:"uint8:4"`
	MNt                       uint16 `struct:"uint16:11"`
	MM                        uint8  `struct:"uint8:2"`
	AdditionalData            bool   `struct:"uint8:1,variantbool"`
	Na                        uint16 `struct:"uint16:11"`
	TauC                      Sint   `struct:"uint32"`
	MN4                       uint8  `struct:"uint8:5"`
	MTauGps                   Sint   `struct:"uint32:22"`
	M1n5                      bool   `struct:"uint8:1,variantbool"`
	Reserved                  uint8  `struct:"uint8:7"`
}

GLONASS Ephemerides

func DeserializeMessage1020

func DeserializeMessage1020(data []byte) (msg Message1020)

func (Message1020) Serialize

func (msg Message1020) Serialize() []byte

type Message1021

type Message1021 struct {
	AbstractMessage
	SourceNameCounter                      uint8  `struct:"uint8:5"`
	SourceName                             string `struct:"[]byte,sizefrom=SourceNameCounter"`
	TargetNameCounter                      uint8  `struct:"uint8:5"`
	TargetName                             string `struct:"[]byte,sizefrom=TargetNameCounter"`
	SystemIdentificationNumber             uint8  `struct:"uint8"`
	UtilizedTransformationMessageIndicator uint16 `struct:"uint16:10"`
	PlateNumber                            uint8  `struct:"uint5"`
	ComputationIndicator                   uint8  `struct:"uint8"`
	HeightIndicator                        uint8  `struct:"uint8:2"`
	PhiV                                   int32  `struct:"int32:19"`
	LambdaV                                int32  `struct:"int32:20"`
	DeltaPhiV                              uint16 `struct:"uint16:14"`
	DeltaLambdaV                           uint16 `struct:"uint16:14"`
	DX                                     int32  `struct:"int32:23"`
	DY                                     int32  `struct:"int32:23"`
	DZ                                     int32  `struct:"int32:23"`
	R1                                     int32  `struct:"int32"`
	R2                                     int32  `struct:"int32"`
	R3                                     int32  `struct:"int32"`
	DS                                     int32  `struct:"int32:25"`
	AddAS                                  int32  `struct:"int32:24"`
	AddBS                                  int32  `struct:"int32:25"`
	AddATau                                int32  `struct:"int32:24"`
	AddBTau                                int32  `struct:"int32:25"`
	HorizontalHMQualityIndicator           uint8  `struct:"uint8:3"`
	VerticalHMQualityIndicator             uint8  `struct:"uint8:3"`
}

func DeserializeMessage1021

func DeserializeMessage1021(data []byte) (msg Message1021)

func (Message1021) Serialize

func (msg Message1021) Serialize() []byte

type Message1022

type Message1022 struct {
	AbstractMessage
	SourceNameCounter                      uint8  `struct:"uint8:5"`
	SourceName                             string `struct:"[]byte,sizefrom=SourceNameCounter"`
	TargetNameCounter                      uint8  `struct:"uint8:5"`
	TargetName                             string `struct:"[]byte,sizefrom=TargetNameCounter"`
	SystemIdentificationNumber             uint8  `struct:"uint8"`
	UtilizedTransformationMessageIndicator uint16 `struct:"uint16:10"`
	PlateNumber                            uint8  `struct:"uint5"`
	ComputationIndicator                   uint8  `struct:"uint8"`
	HeightIndicator                        uint8  `struct:"uint8:2"`
	PhiV                                   int32  `struct:"int32:19"`
	LambdaV                                int32  `struct:"int32:20"`
	DeltaPhiV                              uint16 `struct:"uint16:14"`
	DeltaLambdaV                           uint16 `struct:"uint16:14"`
	DX                                     int32  `struct:"int32:23"`
	DY                                     int32  `struct:"int32:23"`
	DZ                                     int32  `struct:"int32:23"`
	R1                                     int32  `struct:"int32"`
	R2                                     int32  `struct:"int32"`
	R3                                     int32  `struct:"int32"`
	DS                                     int32  `struct:"int32:25"`
	XP                                     int64  `struct:"int64:35"`
	YP                                     int64  `struct:"int64:35"`
	ZP                                     int64  `struct:"int64:35"`
	AddAS                                  int32  `struct:"int32:24"`
	AddBS                                  int32  `struct:"int32:25"`
	AddATau                                int32  `struct:"int32:24"`
	AddBTau                                int32  `struct:"int32:25"`
	HorizontalHMQualityIndicator           uint8  `struct:"uint8:3"`
	VerticalHMQualityIndicator             uint8  `struct:"uint8:3"`
}

func DeserializeMessage1022

func DeserializeMessage1022(data []byte) (msg Message1022)

func (Message1022) Serialize

func (msg Message1022) Serialize() []byte

type Message1023

type Message1023 struct {
	AbstractMessage
	SystemIdentificationNumber             uint8  `struct:"uint8"`
	HorizontalShiftIndicator               bool   `struct:"uint8:1,variantbool"`
	VerticalShiftIndicator                 bool   `struct:"uint8:1,variantbool"`
	Phi0                                   int32  `struct:"int32:21"`
	Lambda0                                int32  `struct:"int32:22"`
	DeltaPhi                               uint16 `struct:"uint16:12"`
	DeltaLambda                            uint16 `struct:"uint16:12"`
	MeanDeltaPhi                           int8   `struct:"int8"`
	MeanDeltaLambda                        int8   `struct:"int8"`
	MeanDeltaH                             int16  `struct:"int16:15"`
	DeltaPhiI                              int16  `struct:"int16:9"`
	DeltaLambdaI                           int16  `struct:"int16:9"`
	DeltaHI                                int16  `struct:"int16:9"`
	HorizontalInterpolationMethodIndicator uint8  `struct:"uint8:2"`
	VerticalInterpolationMethodIndicator   uint8  `struct:"uint8:2"`
	HorizontalGridQualityIndicator         uint8  `struct:"uint8:3"`
	VerticalGridQualityIndicator           uint8  `struct:"uint8:3"`
	ModifiedJulianDayNumber                uint16 `struct:"uint16"`
}

func DeserializeMessage1023

func DeserializeMessage1023(data []byte) (msg Message1023)

func (Message1023) Serialize

func (msg Message1023) Serialize() []byte

type Message1024

type Message1024 struct {
	AbstractMessage
	SystemIdentificationNumber             uint8  `struct:"uint8"`
	HorizontalShiftIndicator               bool   `struct:"uint8:1,variantbool"`
	VerticalShiftIndicator                 bool   `struct:"uint8:1,variantbool"`
	N0                                     int32  `struct:"int32:25"`
	E0                                     int32  `struct:"int32:26"`
	MeanDeltaN                             int16  `struct:"int16:10"`
	MeanDeltaE                             int16  `struct:"int16:10"`
	MeanDeltaH                             int16  `struct:"int16:15"`
	DeltaNI                                int16  `struct:"int16:9"`
	DeltaEI                                int16  `struct:"int16:9"`
	DeltaHI                                int16  `struct:"int16:9"`
	HorizontalInterpolationMethodIndicator uint8  `struct:"uint8:2"`
	VerticalInterpolationMethodIndicator   uint8  `struct:"uint8:2"`
	HorizontalGridQualityIndicator         uint8  `struct:"uint8:3"`
	VerticalGridQualityIndicator           uint8  `struct:"uint8:3"`
	ModifiedJulianDayNumber                uint16 `struct:"uint16"`
}

func DeserializeMessage1024

func DeserializeMessage1024(data []byte) (msg Message1024)

func (Message1024) Serialize

func (msg Message1024) Serialize() []byte

type Message1025

type Message1025 struct {
	AbstractMessage
	SystemIdentificationNumber uint8 `struct:"uint8"`
	LaNO                       int64 `struct:"int64:34"`
	LoNO                       int64 `struct:"int64:35"`
	AddSN0                     int32 `struct:"int32:30"`
	FE                         int64 `struct:"int64:36"`
	FN                         int64 `struct:"int64:35"`
}

func DeserializeMessage1025

func DeserializeMessage1025(data []byte) (msg Message1025)

func (Message1025) Serialize

func (msg Message1025) Serialize() []byte

type Message1026

type Message1026 struct {
	AbstractMessage
	SystemIdentificationNumber uint8 `struct:"uint8"`
	ProjectionType             uint8 `struct:"uint8:6"`
	LaNO                       int64 `struct:"int64:34"`
	LoNO                       int64 `struct:"int64:35"`
	LaSP1                      int64 `struct:"int64:34"`
	LaSP2                      int64 `struct:"int64:34"`
	EFO                        int64 `struct:"int64:36"`
	NFO                        int64 `struct:"int64:35"`
}

func DeserializeMessage1026

func DeserializeMessage1026(data []byte) (msg Message1026)

func (Message1026) Serialize

func (msg Message1026) Serialize() []byte

type Message1027

type Message1027 struct {
	AbstractMessage
	SystemIdentificationNumber uint8  `struct:"uint8"`
	ProjectionType             uint8  `struct:"uint8:6"`
	RectificationFlag          bool   `struct:"uint8:1,variantbool"`
	LaPC                       int64  `struct:"int64:34"`
	LoPC                       int64  `struct:"int64:35"`
	AzIL                       uint64 `struct:"uint64:35"`
	DiffARSG                   int32  `struct:"int32:26"`
	AddSIL                     uint32 `struct:"uint32:30"`
	EPC                        uint64 `struct:"uint64:36"`
	NPC                        int64  `struct:"int64:35"`
}

func DeserializeMessage1027

func DeserializeMessage1027(data []byte) (msg Message1027)

func (Message1027) Serialize

func (msg Message1027) Serialize() []byte

type Message1029

type Message1029 struct {
	AbstractMessage
	ReferenceStationId uint16 `struct:"uint16:12"`
	Mjd                uint16 `struct:"uint16"`
	SecondsOfDay       uint32 `struct:"uint32:17"`
	Characters         uint8  `struct:"uint8:7"`
	CodeUnitsLength    uint8  `struct:"uint8"`
	CodeUnits          string `struct:"[]byte,sizefrom=CodeUnitsLength"`
}

Unicode Text String

func DeserializeMessage1029

func DeserializeMessage1029(data []byte) (msg Message1029)

func (Message1029) Serialize

func (msg Message1029) Serialize() []byte

type Message1030

type Message1030 struct {
	AbstractMessage
	Epoch              uint32 `struct:"uint32:20"`
	ReferenceStationId uint16 `struct:"uint16:12"`
	NRefs              uint8  `struct:"uint8:7"`
	Satellites         uint8  `struct:"uint8:5,sizeof=SatelliteData"`
	SatelliteData      []struct {
		SatelliteId uint8  `struct:"uint8:6"`
		Soc         uint8  `struct:"uint8"`
		Sod         uint16 `struct:"uint16:9"`
		Soh         uint8  `struct:"uint8:6"`
		SIc         uint16 `struct:"uint16:10"`
		SId         uint16 `struct:"uint16:10"`
	}
}

GPS Network RTK Residual Message

func DeserializeMessage1030

func DeserializeMessage1030(data []byte) (msg Message1030)

func (Message1030) Serialize

func (msg Message1030) Serialize() []byte

type Message1031

type Message1031 struct {
	AbstractMessage
	Epoch              uint32 `struct:"uint32:17"`
	ReferenceStationId uint16 `struct:"uint16:12"`
	NRefs              uint8  `struct:"uint8:7"`
	Satellites         uint8  `struct:"uint8:5,sizeof=SatelliteData"`
	SatelliteData      []struct {
		SatelliteId uint8  `struct:"uint8:6"`
		Soc         uint8  `struct:"uint8"`
		Sod         uint16 `struct:"uint16:9"`
		Soh         uint8  `struct:"uint8:6"`
		SIc         uint16 `struct:"uint16:10"`
		SId         uint16 `struct:"uint16:10"`
	}
}

TODO: Implement a Time method for GLONASS Residuals Epoch Time - DF225 GLONASS Network RTK Residual Message

func DeserializeMessage1031

func DeserializeMessage1031(data []byte) (msg Message1031)

func (Message1031) Serialize

func (msg Message1031) Serialize() []byte

type Message1032

type Message1032 struct {
	AbstractMessage
	NonPhysicalReferenceStationId uint16 `struct:"uint16:12"`
	PhysicalReferenceStationId    uint16 `struct:"uint16:12"`
	EpochYear                     uint8  `struct:"uint8:6"`
	ArpEcefX                      int64  `struct:"int64:38"`
	ArpEcefY                      int64  `struct:"int64:38"`
	ArpEcefZ                      int64  `struct:"int64:38"`
}

Physical Reference Station Position Message

func DeserializeMessage1032

func DeserializeMessage1032(data []byte) (msg Message1032)

func (Message1032) Serialize

func (msg Message1032) Serialize() []byte

type Message1033

type Message1033 struct {
	AbstractMessage
	MessageAntennaDescriptor
	AntennaSerialNumberLength     uint8  `struct:"uint8"`
	AntennaSerialNumber           string `struct:"[]byte,sizefrom=AntennaSerialNumberLength"`
	ReceiverTypeDescriptorLength  uint8  `struct:"uint8"`
	ReceiverTypeDescriptor        string `struct:"[]byte,sizefrom=ReceiverTypeDescriptorLength"`
	ReceiverFirmwareVersionLength uint8  `struct:"uint8"`
	ReceiverFirmwareVersion       string `struct:"[]byte,sizefrom=ReceiverFirmwareVersionLength"`
	ReceiverSerialNumberLength    uint8  `struct:"uint8"`
	ReceiverSerialNumber          string `struct:"[]byte,sizefrom=ReceiverSerialNumberLength"`
}

Receiver and Antenna Descriptors

func DeserializeMessage1033

func DeserializeMessage1033(data []byte) (msg Message1033)

func (Message1033) Serialize

func (msg Message1033) Serialize() []byte

type Message1034

type Message1034 struct {
	AbstractMessage
	ReferenceStationID        uint16 `struct:"uint16:12"`
	FKPEpoch                  uint32 `struct:"uint32:20"`
	SatelliteSignalsProcessed uint8  `struct:"uint8:5,sizeof=SatelliteData"`
	SatelliteData             []struct {
		SatelliteID uint8 `struct:"uint8:6"`
		IODE        uint8 `struct:"uint8"`
		N0          int16 `struct:"int16:12"`
		E0          int16 `struct:"int16:12"`
		NI          int16 `struct:"int16:14"`
		EI          int16 `struct:"int16:14"`
	}
}

GPS Network FKP Gradient

func DeserializeMessage1034

func DeserializeMessage1034(data []byte) (msg Message1034)

func (Message1034) Serialize

func (msg Message1034) Serialize() []byte

type Message1035

type Message1035 struct {
	AbstractMessage
	ReferenceStationID        uint16 `struct:"uint16:12"`
	FKPEpoch                  uint32 `struct:"uint32:17"`
	SatelliteSignalsProcessed uint8  `struct:"uint8:5,sizeof=SatelliteData"`
	SatelliteData             []struct {
		SatelliteID uint8 `struct:"uint8:6"`
		IOD         uint8 `struct:"uint8"`
		N0          int16 `struct:"int16:12"`
		E0          int16 `struct:"int16:12"`
		NI          int16 `struct:"int16:14"`
		EI          int16 `struct:"int16:14"`
	}
}

GLONASS Network FKP Gradient

func DeserializeMessage1035

func DeserializeMessage1035(data []byte) (msg Message1035)

func (Message1035) Serialize

func (msg Message1035) Serialize() []byte

type Message1037

type Message1037 struct {
	AbstractMessage
	NetworkID                       uint8  `struct:"uint8"`
	SubnetworkID                    uint8  `struct:"uint8:4"`
	Epoch                           uint32 `struct:"uint32:20"`
	MultipleMessageIndicator        bool   `struct:"uint8:1,variantbool"`
	MasterReferenceStationID        uint16 `struct:"uint16:12"`
	AuxiliaryReferenceStationID     uint16 `struct:"uint16:12"`
	DataEntriesCount                uint8  `struct:"uint8:4,sizeof=IonosphericCorrectionDifference"`
	IonosphericCorrectionDifference []struct {
		SatelliteID                                 uint8 `struct:"uint8:6"`
		AmbiguityStatusFlag                         uint8 `struct:"uint8:2"`
		NonSyncCount                                uint8 `struct:"uint8:3"`
		IonosphericCarrierPhaseCorrectionDifference int32 `struct:"int32:17"`
	}
}

GLONASS Ionospheric Correction Differences

func DeserializeMessage1037

func DeserializeMessage1037(data []byte) (msg Message1037)

func (Message1037) Serialize

func (msg Message1037) Serialize() []byte

type Message1038

type Message1038 struct {
	AbstractMessage
	NetworkID                       uint8  `struct:"uint8"`
	SubnetworkID                    uint8  `struct:"uint8:4"`
	Epoch                           uint32 `struct:"uint32:20"`
	MultipleMessageIndicator        bool   `struct:"uint8:1,variantbool"`
	MasterReferenceStationID        uint16 `struct:"uint16:12"`
	AuxiliaryReferenceStationID     uint16 `struct:"uint16:12"`
	DataEntriesCount                uint8  `struct:"uint8:4,sizeof=IonosphericCorrectionDifference"`
	IonosphericCorrectionDifference []struct {
		SatelliteID                               uint8 `struct:"uint8:6"`
		AmbiguityStatusFlag                       uint8 `struct:"uint8:2"`
		NonSyncCount                              uint8 `struct:"uint8:3"`
		GeometricCarrierPhaseCorrectionDifference int32 `struct:"int32:17"`
		IOD                                       uint8 `struct:"uint8"`
	}
}

GLONASS Geometric Correction Differences

func DeserializeMessage1038

func DeserializeMessage1038(data []byte) (msg Message1038)

func (Message1038) Serialize

func (msg Message1038) Serialize() []byte

type Message1039

type Message1039 struct {
	AbstractMessage
	NetworkID                       uint8  `struct:"uint8"`
	SubnetworkID                    uint8  `struct:"uint8:4"`
	Epoch                           uint32 `struct:"uint32:20"`
	MultipleMessageIndicator        bool   `struct:"uint8:1,variantbool"`
	MasterReferenceStationID        uint16 `struct:"uint16:12"`
	AuxiliaryReferenceStationID     uint16 `struct:"uint16:12"`
	DataEntriesCount                uint8  `struct:"uint8:4,sizeof=IonosphericCorrectionDifference"`
	IonosphericCorrectionDifference []struct {
		SatelliteID                                 uint8 `struct:"uint8:6"`
		AmbiguityStatusFlag                         uint8 `struct:"uint8:2"`
		NonSyncCount                                uint8 `struct:"uint8:3"`
		GeometricCarrierPhaseCorrectionDifference   int32 `struct:"int32:17"`
		IOD                                         uint8 `struct:"uint8"`
		IonosphericCarrierPhaseCorrectionDifference int32 `struct:"int32:17"`
	}
}

GLONASS Combined Geometric and Ionospheric Correction Differences

func DeserializeMessage1039

func DeserializeMessage1039(data []byte) (msg Message1039)

func (Message1039) Serialize

func (msg Message1039) Serialize() []byte

type Message1042

type Message1042 struct {
	AbstractMessage
	SatelliteId uint8  `struct:"uint8:6"`
	WeekNumber  uint16 `struct:"uint16:13"`
	SVURAI      uint8  `struct:"uint8:4"`
	IDOT        int16  `struct:"int16:14"`
	AODE        uint8  `struct:"uint8:5"`
	Toc         uint32 `struct:"uint32:17"`
	A2          int16  `struct:"int16:11"`
	A1          int32  `struct:"int32:22"`
	A0          int32  `struct:"int32:24"`
	AODC        uint8  `struct:"uint8:5"`
	Crs         int32  `struct:"int32:18"`
	DeltaN      int16  `struct:"int16"`
	M0          int32  `struct:"int32"`
	Cuc         int32  `struct:"int32:18"`
	E           uint32 `struct:"uint32"`
	Cus         int32  `struct:"int32:18"`
	ASquared    uint32 `struct:"uint32"`
	Toe         uint32 `struct:"uint32:17"`
	Cic         int32  `struct:"int32:18"`
	Omega0      int32  `struct:"int32"`
	Cis         int32  `struct:"int32:18"`
	I0          int32  `struct:"int32"`
	Crc         int32  `struct:"int32:18"`
	Omega       int32  `struct:"int32"`
	OmegaDot    int32  `struct:"int32:24"`
	TGD1        int16  `struct:"int16:10"`
	TGD2        int16  `struct:"int16:10"`
	SVHealth    bool   `struct:"uint8:1,variantbool"`
}

BDS Satellite Ephemeris Data

func DeserializeMessage1042

func DeserializeMessage1042(data []byte) (msg Message1042)

func (Message1042) Serialize

func (msg Message1042) Serialize() []byte

type Message1044

type Message1044 struct {
	AbstractMessage
	SatelliteId uint8  `struct:"uint8:4"`
	Toc         uint16 `struct:"uint16"`
	Af2         int8   `struct:"int8"`
	Af1         int16  `struct:"int16"`
	Af0         int32  `struct:"int32:22"`
	IODE        uint8  `struct:"uint8"`
	Crs         int16  `struct:"int16"`
	DeltaN0     int16  `struct:"int16"`
	M0          int32  `struct:"int32"`
	Cuc         int16  `struct:"int16"`
	E           uint32 `struct:"uint32"`
	Cus         int16  `struct:"int16"`
	ASquared    uint32 `struct:"uint32"`
	Toe         uint16 `struct:"uint16"`
	Cic         int16  `struct:"int16"`
	Omega0      int32  `struct:"int32"`
	Cis         int16  `struct:"int16"`
	I0          int32  `struct:"int32"`
	Crc         int16  `struct:"int16"`
	OmegaN      int32  `struct:"int32"`
	OmegaDot    int32  `struct:"int32:24"`
	I0Dot       int16  `struct:"int16:14"`
	CodesL2     uint8  `struct:"uint8:2"`
	WeekNumber  uint16 `struct:"uint16:10"`
	URA         uint8  `struct:"uint8:4"`
	SVHealth    uint8  `struct:"uint8:6"`
	TGD         int8   `struct:"int8"`
	IODC        uint16 `struct:"uint16:10"`
	FitInterval bool   `struct:"uint8:1,variantbool"`
}

QZSS Ephemerides

func DeserializeMessage1044

func DeserializeMessage1044(data []byte) (msg Message1044)

func (Message1044) Serialize

func (msg Message1044) Serialize() []byte

type Message1045

type Message1045 struct {
	AbstractMessage
	SatelliteId uint8  `struct:"uint8:6"`
	WeekNumber  uint16 `struct:"uint16:12"`
	IODNav      uint16 `struct:"uint16:10"`
	SVSISA      uint8  `struct:"uint8"`
	IDot        int16  `struct:"int16:14"`
	Toc         uint16 `struct:"uint16:14"`
	Af2         int8   `struct:"int8:6"`
	Af1         int32  `struct:"int32:21"`
	Af0         int32  `struct:"int32:31"`
	Crs         int16  `struct:"int16"`
	DeltaN0     int16  `struct:"int16"`
	M0          int32  `struct:"int32"`
	Cuc         int16  `struct:"int16"`
	E           uint32 `struct:"uint32"`
	Cus         int16  `struct:"int16"`
	ASquared    uint32 `struct:"uint32"`
	Toe         uint16 `struct:"uint16:14"`
	Cic         int16  `struct:"int16"`
	Omega0      int32  `struct:"int32"`
	Cis         int16  `struct:"int16"`
	I0          int32  `struct:"int32"`
	Crc         int16  `struct:"int16"`
	Omega       int32  `struct:"int32"`
	OmegaDot    int32  `struct:"int32:24"`
	BGDE5aE1    int16  `struct:"int16:10"`
	OSHS        uint8  `struct:"uint8:2"`
	OSDVS       bool   `struct:"uint8:1,variantbool"`
	Reserved    uint8  `struct:"uint8:7"`
}

Galileo F/NAV Satellite Ephemeris Data

func DeserializeMessage1045

func DeserializeMessage1045(data []byte) (msg Message1045)

func (Message1045) Serialize

func (msg Message1045) Serialize() []byte

type Message1046

type Message1046 struct {
	AbstractMessage
	SatelliteId           uint8  `struct:"uint8:6"`
	WeekNumber            uint16 `struct:"uint16:12"`
	IODNav                uint16 `struct:"uint16:10"`
	SISAIndex             uint8  `struct:"uint8"`
	IDot                  int16  `struct:"int16:14"`
	Toc                   uint16 `struct:"uint16:14"`
	Af2                   int8   `struct:"int8:6"`
	Af1                   int32  `struct:"int32:21"`
	Af0                   int32  `struct:"int32:31"`
	Crs                   int16  `struct:"int16"`
	DeltaN0               int16  `struct:"int16"`
	M0                    int32  `struct:"int32"`
	Cuc                   int16  `struct:"int16"`
	E                     uint32 `struct:"uint32"`
	Cus                   int16  `struct:"int16"`
	ASquared              uint32 `struct:"uint32"`
	Toe                   uint16 `struct:"uint16:14"`
	Cic                   int16  `struct:"int16"`
	Omega0                int32  `struct:"int32"`
	Cis                   int16  `struct:"int16"`
	I0                    int32  `struct:"int32"`
	Crc                   int16  `struct:"int16"`
	Omega                 int32  `struct:"int32"`
	OmegaDot              int32  `struct:"int32:24"`
	BGDE5aE1              int16  `struct:"int16:10"`
	BGDE5bE1              int16  `struct:"int16:10"`
	E5bSignalHealthStatus uint8  `struct:"uint8:2"`
	E5bDataValidityStatus bool   `struct:"uint8:1,variantbool"`
	E1BSignalHealthStatus uint8  `struct:"uint8:2"`
	E2BDataValidityStatus bool   `struct:"uint8:1,variantbool"`
	Reserved              uint8  `struct:"uint8:2"`
}

Galileo I/NAV Satellite Ephemeris Data

func DeserializeMessage1046

func DeserializeMessage1046(data []byte) (msg Message1046)

func (Message1046) Serialize

func (msg Message1046) Serialize() []byte

type Message1057

type Message1057 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:20"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	SatelliteReferenceDatum  bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID        uint8 `struct:"uint8:6"`
		IODE               uint8 `struct:"uint8"`
		DeltaRadial        int32 `struct:"int32:22"`
		DeltaAlongTrack    int32 `struct:"int32:20"`
		DeltaCrossTrack    int32 `struct:"int32:20"`
		DotDeltaRadial     int32 `struct:"int32:21"`
		DotDeltaAlongTrack int32 `struct:"int32:19"`
		DotDeltaCrossTrack int32 `struct:"int32:19"`
	}
}

SSR GPS Orbit Correction

func DeserializeMessage1057

func DeserializeMessage1057(data []byte) (msg Message1057)

func (Message1057) Serialize

func (msg Message1057) Serialize() []byte

func (Message1057) Time

func (msg Message1057) Time() time.Time

type Message1058

type Message1058 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:20"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID  uint8 `struct:"uint8:6"`
		DeltaClockC0 int32 `struct:"int32:22"`
		DeltaClockC1 int32 `struct:"int32:21"`
		DeltaClockC2 int32 `struct:"int32:27"`
	}
}

SSR GPS Clock Correction

func DeserializeMessage1058

func DeserializeMessage1058(data []byte) (msg Message1058)

func (Message1058) Serialize

func (msg Message1058) Serialize() []byte

func (Message1058) Time

func (msg Message1058) Time() time.Time

type Message1059

type Message1059 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:20"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID         uint8 `struct:"uint8:6"`
		CodeBiasesProcessed uint8 `struct:"uint8:5,sizeof=CodeBiases"`
		CodeBiases          []struct {
			SignalTrackingModeIndicator uint8 `struct:"uint8:5"`
			CodeBias                    int16 `struct:"int16:14"`
		}
	}
}

SSR GPS Code Bias

func DeserializeMessage1059

func DeserializeMessage1059(data []byte) (msg Message1059)

func (Message1059) Serialize

func (msg Message1059) Serialize() []byte

func (Message1059) Time

func (msg Message1059) Time() time.Time

type Message1060

type Message1060 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:20"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	SatelliteReferenceDatum  bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID        uint8 `struct:"uint8:6"`
		IOD                uint8 `struct:"uint8"`
		DeltaRadial        int32 `struct:"int32:22"`
		DeltaAlongTrack    int32 `struct:"int32:20"`
		DeltaCrossTrack    int32 `struct:"int32:20"`
		DotDeltaRadial     int32 `struct:"int32:21"`
		DotDeltaAlongTrack int32 `struct:"int32:19"`
		DotDeltaCrossTrack int32 `struct:"int32:19"`
		DeltaClockC0       int32 `struct:"int32:22"`
		DeltaClockC1       int32 `struct:"int32:21"`
		DeltaClockC2       int32 `struct:"int32:27"`
	}
}

SSR GPS Combined Orbit and Clock Corrections

func DeserializeMessage1060

func DeserializeMessage1060(data []byte) (msg Message1060)

func (Message1060) Serialize

func (msg Message1060) Serialize() []byte

func (Message1060) Time

func (msg Message1060) Time() time.Time

type Message1061

type Message1061 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:20"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID uint8 `struct:"uint8:5"`
		SSRURA      uint8 `struct:"uint8:6"`
	}
}

SSR GPS URA

func DeserializeMessage1061

func DeserializeMessage1061(data []byte) (msg Message1061)

func (Message1061) Serialize

func (msg Message1061) Serialize() []byte

func (Message1061) Time

func (msg Message1061) Time() time.Time

type Message1062

type Message1062 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:20"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID     uint8 `struct:"uint8:5"`
		ClockCorrection int32 `struct:"uint32:22"`
	}
}

SSR GPS High Rate Clock Correction

func DeserializeMessage1062

func DeserializeMessage1062(data []byte) (msg Message1062)

func (Message1062) Serialize

func (msg Message1062) Serialize() []byte

func (Message1062) Time

func (msg Message1062) Time() time.Time

type Message1063

type Message1063 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:17"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	SatelliteReferenceDatum  bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID        uint8 `struct:"uint8:5"`
		IOD                uint8 `struct:"uint8"`
		DeltaRadial        int32 `struct:"int32:22"`
		DeltaAlongTrack    int32 `struct:"int32:20"`
		DeltaCrossTrack    int32 `struct:"int32:20"`
		DotDeltaRadial     int32 `struct:"int32:21"`
		DotDeltaAlongTrack int32 `struct:"int32:19"`
		DotDeltaCrossTrack int32 `struct:"int32:19"`
	}
}

SSR GLONASS Orbit Correction

func DeserializeMessage1063

func DeserializeMessage1063(data []byte) (msg Message1063)

func (Message1063) Serialize

func (msg Message1063) Serialize() []byte

func (Message1063) Time

func (msg Message1063) Time() time.Time

type Message1064

type Message1064 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:17"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID  uint8 `struct:"uint8:5"`
		DeltaClockC0 int32 `struct:"int32:22"`
		DeltaClockC1 int32 `struct:"int32:21"`
		DeltaClockC2 int32 `struct:"int32:27"`
	}
}

SSR GLONASS Clock Correction

func DeserializeMessage1064

func DeserializeMessage1064(data []byte) (msg Message1064)

func (Message1064) Serialize

func (msg Message1064) Serialize() []byte

func (Message1064) Time

func (msg Message1064) Time() time.Time

type Message1065

type Message1065 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:17"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID         uint8 `struct:"uint8:5"`
		CodeBiasesProcessed uint8 `struct:"uint8:5,sizeof=CodeBiases"`
		CodeBiases          []struct {
			SignalTrackingModeIndicator uint8 `struct:"uint8:5"`
			CodeBias                    int16 `struct:"int16:14"`
		}
	}
}

SSR GLONASS Code Bias

func DeserializeMessage1065

func DeserializeMessage1065(data []byte) (msg Message1065)

func (Message1065) Serialize

func (msg Message1065) Serialize() []byte

func (Message1065) Time

func (msg Message1065) Time() time.Time

type Message1066

type Message1066 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:17"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	SatelliteReferenceDatum  bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID        uint8 `struct:"uint8:5"`
		IOD                uint8 `struct:"uint8"`
		DeltaRadial        int32 `struct:"int32:22"`
		DeltaAlongTrack    int32 `struct:"int32:20"`
		DeltaCrossTrack    int32 `struct:"int32:20"`
		DotDeltaRadial     int32 `struct:"int32:21"`
		DotDeltaAlongTrack int32 `struct:"int32:19"`
		DotDeltaCrossTrack int32 `struct:"int32:19"`
		DeltaClockC0       int32 `struct:"int32:22"`
		DeltaClockC1       int32 `struct:"int32:21"`
		DeltaClockC2       int32 `struct:"int32:27"`
	}
}

SSR GLONASS Combined Orbit and Clock Corrections

func DeserializeMessage1066

func DeserializeMessage1066(data []byte) (msg Message1066)

func (Message1066) Serialize

func (msg Message1066) Serialize() []byte

func (Message1066) Time

func (msg Message1066) Time() time.Time

type Message1067

type Message1067 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:17"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID uint8 `struct:"uint8:5"`
		SSRURA      uint8 `struct:"uint8:6"`
	}
}

SSR GLONASS URA

func DeserializeMessage1067

func DeserializeMessage1067(data []byte) (msg Message1067)

func (Message1067) Serialize

func (msg Message1067) Serialize() []byte

func (Message1067) Time

func (msg Message1067) Time() time.Time

type Message1068

type Message1068 struct {
	AbstractMessage
	Epoch                    uint32 `struct:"uint32:17"`
	SSRUpdateInterval        uint8  `struct:"uint8:4"`
	MultipleMessageIndicator bool   `struct:"uint8:1,variantbool"`
	IODSSR                   uint8  `struct:"uint8:4"`
	SSRProviderID            uint16 `struct:"uint16"`
	SSRSolutionID            uint8  `struct:"uint8:4"`
	Satellites               uint8  `struct:"uint8:6,sizeof=SatelliteData"`
	SatelliteData            []struct {
		SatelliteID     uint8 `struct:"uint8:5"`
		ClockCorrection int32 `struct:"uint32:22"`
	}
}

SSR GLONASS High Rate Clock Correction

func DeserializeMessage1068

func DeserializeMessage1068(data []byte) (msg Message1068)

func (Message1068) Serialize

func (msg Message1068) Serialize() []byte

func (Message1068) Time

func (msg Message1068) Time() time.Time

type Message1071

type Message1071 struct {
	MessageMsm1
}

GPS MSM1

func DeserializeMessage1071

func DeserializeMessage1071(data []byte) Message1071

func (Message1071) Time

func (msg Message1071) Time() time.Time

type Message1072

type Message1072 struct {
	MessageMsm2
}

GPS MSM2

func DeserializeMessage1072

func DeserializeMessage1072(data []byte) Message1072

func (Message1072) Time

func (msg Message1072) Time() time.Time

type Message1073

type Message1073 struct {
	MessageMsm3
}

GPS MSM3

func DeserializeMessage1073

func DeserializeMessage1073(data []byte) Message1073

func (Message1073) Time

func (msg Message1073) Time() time.Time

type Message1074

type Message1074 struct {
	MessageMsm4
}

GPS MSM4

func DeserializeMessage1074

func DeserializeMessage1074(data []byte) Message1074

func (Message1074) Time

func (msg Message1074) Time() time.Time

type Message1075

type Message1075 struct {
	MessageMsm5
}

GPS MSM5

func DeserializeMessage1075

func DeserializeMessage1075(data []byte) Message1075

func (Message1075) MsmToEpoch

func (msg Message1075) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 GPS MSM 5 message to observation.Epoch

func (Message1075) Time

func (msg Message1075) Time() time.Time

type Message1076

type Message1076 struct {
	MessageMsm6
}

GPS MSM6

func DeserializeMessage1076

func DeserializeMessage1076(data []byte) Message1076

func (Message1076) Time

func (msg Message1076) Time() time.Time

type Message1077

type Message1077 struct {
	MessageMsm7
}

GPS MSM7

func DeserializeMessage1077

func DeserializeMessage1077(data []byte) Message1077

func (Message1077) MsmToEpoch

func (msg Message1077) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 GPS MSM 7 message to observation.Epoch

func (Message1077) Time

func (msg Message1077) Time() time.Time

func (Message1077) ToJSON

func (msg Message1077) ToJSON(w io.Writer) error

type Message1081

type Message1081 struct {
	MessageMsm1
}

GLONASS MSM1

func DeserializeMessage1081

func DeserializeMessage1081(data []byte) Message1081

func (Message1081) Time

func (msg Message1081) Time() time.Time

type Message1082

type Message1082 struct {
	MessageMsm2
}

GLONASS MSM2

func DeserializeMessage1082

func DeserializeMessage1082(data []byte) Message1082

func (Message1082) Time

func (msg Message1082) Time() time.Time

type Message1083

type Message1083 struct {
	MessageMsm3
}

GLONASS MSM3

func DeserializeMessage1083

func DeserializeMessage1083(data []byte) Message1083

func (Message1083) Time

func (msg Message1083) Time() time.Time

type Message1084

type Message1084 struct {
	MessageMsm4
}

GLONASS MSM4

func DeserializeMessage1084

func DeserializeMessage1084(data []byte) Message1084

func (Message1084) Time

func (msg Message1084) Time() time.Time

type Message1085

type Message1085 struct {
	MessageMsm5
}

GLONASS MSM5

func DeserializeMessage1085

func DeserializeMessage1085(data []byte) Message1085

func (Message1085) MsmToEpoch

func (msg Message1085) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 GLONASS MSM 5 message to observation.Epoch

func (Message1085) Time

func (msg Message1085) Time() time.Time

type Message1086

type Message1086 struct {
	MessageMsm6
}

GLONASS MSM6

func DeserializeMessage1086

func DeserializeMessage1086(data []byte) Message1086

func (Message1086) Time

func (msg Message1086) Time() time.Time

type Message1087

type Message1087 struct {
	MessageMsm7
}

GLONASS MSM7

func DeserializeMessage1087

func DeserializeMessage1087(data []byte) Message1087

func (Message1087) MsmToEpoch

func (msg Message1087) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 GLONASS MSM 7 message to observation.Epoch

func (Message1087) Time

func (msg Message1087) Time() time.Time

func (Message1087) ToJSON

func (msg Message1087) ToJSON(w io.Writer) error

type Message1091

type Message1091 struct {
	MessageMsm1
}

Galileo MSM1

func DeserializeMessage1091

func DeserializeMessage1091(data []byte) Message1091

func (Message1091) Time

func (msg Message1091) Time() time.Time

type Message1092

type Message1092 struct {
	MessageMsm2
}

Galileo MSM2

func DeserializeMessage1092

func DeserializeMessage1092(data []byte) Message1092

func (Message1092) Time

func (msg Message1092) Time() time.Time

type Message1093

type Message1093 struct {
	MessageMsm3
}

Galileo MSM3

func DeserializeMessage1093

func DeserializeMessage1093(data []byte) Message1093

func (Message1093) Time

func (msg Message1093) Time() time.Time

type Message1094

type Message1094 struct {
	MessageMsm4
}

Galileo MSM4

func DeserializeMessage1094

func DeserializeMessage1094(data []byte) Message1094

func (Message1094) Time

func (msg Message1094) Time() time.Time

type Message1095

type Message1095 struct {
	MessageMsm5
}

Galileo MSM5

func DeserializeMessage1095

func DeserializeMessage1095(data []byte) Message1095

func (Message1095) MsmToEpoch

func (msg Message1095) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 Galileo MSM 5 message to observation.Epoch

func (Message1095) Time

func (msg Message1095) Time() time.Time

type Message1096

type Message1096 struct {
	MessageMsm6
}

Galileo MSM6

func DeserializeMessage1096

func DeserializeMessage1096(data []byte) Message1096

func (Message1096) Time

func (msg Message1096) Time() time.Time

type Message1097

type Message1097 struct {
	MessageMsm7
}

Galileo MSM7

func DeserializeMessage1097

func DeserializeMessage1097(data []byte) Message1097

func (Message1097) MsmToEpoch

func (msg Message1097) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 Galileo MSM 7 message to observation.Epoch

func (Message1097) Time

func (msg Message1097) Time() time.Time

func (Message1097) ToJSON

func (msg Message1097) ToJSON(w io.Writer) error

type Message1101

type Message1101 struct {
	MessageMsm1
}

SBAS MSM1

func DeserializeMessage1101

func DeserializeMessage1101(data []byte) Message1101

func (Message1101) Time

func (msg Message1101) Time() time.Time

type Message1102

type Message1102 struct {
	MessageMsm2
}

SBAS MSM2

func DeserializeMessage1102

func DeserializeMessage1102(data []byte) Message1102

func (Message1102) Time

func (msg Message1102) Time() time.Time

type Message1103

type Message1103 struct {
	MessageMsm3
}

SBAS MSM3

func DeserializeMessage1103

func DeserializeMessage1103(data []byte) Message1103

func (Message1103) Time

func (msg Message1103) Time() time.Time

type Message1104

type Message1104 struct {
	MessageMsm4
}

SBAS MSM4

func DeserializeMessage1104

func DeserializeMessage1104(data []byte) Message1104

func (Message1104) Time

func (msg Message1104) Time() time.Time

type Message1105

type Message1105 struct {
	MessageMsm5
}

SBAS MSM5

func DeserializeMessage1105

func DeserializeMessage1105(data []byte) Message1105

func (Message1105) MsmToEpoch

func (msg Message1105) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 SBAS MSM 5 message to observation.Epoch

func (Message1105) Time

func (msg Message1105) Time() time.Time

type Message1106

type Message1106 struct {
	MessageMsm6
}

SBAS MSM6

func DeserializeMessage1106

func DeserializeMessage1106(data []byte) Message1106

func (Message1106) Time

func (msg Message1106) Time() time.Time

type Message1107

type Message1107 struct {
	MessageMsm7
}

SBAS MSM7

func DeserializeMessage1107

func DeserializeMessage1107(data []byte) Message1107

func (Message1107) MsmToEpoch

func (msg Message1107) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 SBAS MSM 7 message to observation.Epoch

func (Message1107) Time

func (msg Message1107) Time() time.Time

func (Message1107) ToJSON

func (msg Message1107) ToJSON(w io.Writer) error

type Message1111

type Message1111 struct {
	MessageMsm1
}

QZSS MSM1

func DeserializeMessage1111

func DeserializeMessage1111(data []byte) Message1111

func (Message1111) Time

func (msg Message1111) Time() time.Time

type Message1112

type Message1112 struct {
	MessageMsm2
}

QZSS MSM2

func DeserializeMessage1112

func DeserializeMessage1112(data []byte) Message1112

func (Message1112) Time

func (msg Message1112) Time() time.Time

type Message1113

type Message1113 struct {
	MessageMsm3
}

QZSS MSM3

func DeserializeMessage1113

func DeserializeMessage1113(data []byte) Message1113

func (Message1113) Time

func (msg Message1113) Time() time.Time

type Message1114

type Message1114 struct {
	MessageMsm4
}

QZSS MSM4

func DeserializeMessage1114

func DeserializeMessage1114(data []byte) Message1114

func (Message1114) Time

func (msg Message1114) Time() time.Time

type Message1115

type Message1115 struct {
	MessageMsm5
}

QZSS MSM5

func DeserializeMessage1115

func DeserializeMessage1115(data []byte) Message1115

func (Message1115) MsmToEpoch

func (msg Message1115) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 QZSS MSM 5 message to observation.Epoch

func (Message1115) Time

func (msg Message1115) Time() time.Time

type Message1116

type Message1116 struct {
	MessageMsm6
}

QZSS MSM6

func DeserializeMessage1116

func DeserializeMessage1116(data []byte) Message1116

func (Message1116) Time

func (msg Message1116) Time() time.Time

type Message1117

type Message1117 struct {
	MessageMsm7
}

QZSS MSM7

func DeserializeMessage1117

func DeserializeMessage1117(data []byte) Message1117

func (Message1117) MsmToEpoch

func (msg Message1117) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 QZSS MSM 7 message to observation.Epoch

func (Message1117) Time

func (msg Message1117) Time() time.Time

func (Message1117) ToJSON

func (msg Message1117) ToJSON(w io.Writer) error

type Message1121

type Message1121 struct {
	MessageMsm1
}

BeiDou MSM1

func DeserializeMessage1121

func DeserializeMessage1121(data []byte) Message1121

func (Message1121) Time

func (msg Message1121) Time() time.Time

type Message1122

type Message1122 struct {
	MessageMsm2
}

BeiDou MSM2

func DeserializeMessage1122

func DeserializeMessage1122(data []byte) Message1122

func (Message1122) Time

func (msg Message1122) Time() time.Time

type Message1123

type Message1123 struct {
	MessageMsm3
}

BeiDou MSM3

func DeserializeMessage1123

func DeserializeMessage1123(data []byte) Message1123

func (Message1123) Time

func (msg Message1123) Time() time.Time

type Message1124

type Message1124 struct {
	MessageMsm4
}

BeiDou MSM4

func DeserializeMessage1124

func DeserializeMessage1124(data []byte) Message1124

func (Message1124) Time

func (msg Message1124) Time() time.Time

type Message1125

type Message1125 struct {
	MessageMsm5
}

BeiDou MSM5

func DeserializeMessage1125

func DeserializeMessage1125(data []byte) Message1125

func (Message1125) MsmToEpoch

func (msg Message1125) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 Beidou MSM 5 message to observation.Epoch

func (Message1125) Time

func (msg Message1125) Time() time.Time

type Message1126

type Message1126 struct {
	MessageMsm6
}

BeiDou MSM6

func DeserializeMessage1126

func DeserializeMessage1126(data []byte) Message1126

func (Message1126) Time

func (msg Message1126) Time() time.Time

type Message1127

type Message1127 struct {
	MessageMsm7
}

BeiDou MSM7

func DeserializeMessage1127

func DeserializeMessage1127(data []byte) Message1127

func (Message1127) MsmToEpoch

func (msg Message1127) MsmToEpoch() (epoch observation.Epoch, err error)

MsmToEpoch - convert RTCM3 Beidou MSM 7 message to observation.Epoch

func (Message1127) Time

func (msg Message1127) Time() time.Time

func (Message1127) ToJSON

func (msg Message1127) ToJSON(w io.Writer) error

type Message1230

type Message1230 struct {
	AbstractMessage
	ReferenceStationId uint16
	CodePhaseBias      bool
	Reserved           uint8
	SignalsMask        uint8
	L1CACodePhaseBias  int16
	L1PCodePhaseBias   int16
	L2CACodePhaseBias  int16
	L2PCodePhaseBias   int16
}

GLONASS L1 and L2 Code-Phase Biases

func DeserializeMessage1230

func DeserializeMessage1230(data []byte) (msg Message1230)

func (Message1230) Serialize

func (msg Message1230) Serialize() []byte

type MessageAntennaDescriptor

type MessageAntennaDescriptor struct {
	ReferenceStationId      uint16 `struct:"uint16:12"`
	AntennaDescriptorLength uint8  `struct:"uint8"`
	AntennaDescriptor       string `struct:"[]byte,sizefrom=AntennaDescriptorLength"`
	AntennaSetupId          uint8  `struct:"uint8"`
}

type MessageMsm1

type MessageMsm1 struct {
	MsmHeader
	SatelliteData SatelliteDataMsm1
	SignalData    SignalDataMsm1
}

func DeserializeMessageMsm1

func DeserializeMessageMsm1(data []byte) (msg MessageMsm1)

func (MessageMsm1) Serialize

func (msg MessageMsm1) Serialize() (data []byte)

type MessageMsm2

type MessageMsm2 struct {
	MsmHeader
	SatelliteData SatelliteDataMsm2
	SignalData    SignalDataMsm2
}

func DeserializeMessageMsm2

func DeserializeMessageMsm2(data []byte) (msg MessageMsm2)

func (MessageMsm2) Serialize

func (msg MessageMsm2) Serialize() (data []byte)

type MessageMsm3

type MessageMsm3 struct {
	MsmHeader
	SatelliteData SatelliteDataMsm3
	SignalData    SignalDataMsm3
}

func DeserializeMessageMsm3

func DeserializeMessageMsm3(data []byte) (msg MessageMsm3)

func (MessageMsm3) Serialize

func (msg MessageMsm3) Serialize() (data []byte)

type MessageMsm4

type MessageMsm4 struct {
	MsmHeader
	SatelliteData SatelliteDataMsm4
	SignalData    SignalDataMsm4
}

func DeserializeMessageMsm4

func DeserializeMessageMsm4(data []byte) (msg MessageMsm4)

func (MessageMsm4) Serialize

func (msg MessageMsm4) Serialize() (data []byte)

type MessageMsm5

type MessageMsm5 struct {
	MsmHeader
	SatelliteData SatelliteDataMsm5
	SignalData    SignalDataMsm5
}

func DeserializeMessageMsm5

func DeserializeMessageMsm5(data []byte) (msg MessageMsm5)

func (MessageMsm5) Serialize

func (msg MessageMsm5) Serialize() (data []byte)

type MessageMsm6

type MessageMsm6 struct {
	MsmHeader
	SatelliteData SatelliteDataMsm6
	SignalData    SignalDataMsm6
}

func DeserializeMessageMsm6

func DeserializeMessageMsm6(data []byte) (msg MessageMsm6)

func (MessageMsm6) Serialize

func (msg MessageMsm6) Serialize() (data []byte)

type MessageMsm7

type MessageMsm7 struct {
	MsmHeader
	SatelliteData SatelliteDataMsm7
	SignalData    SignalDataMsm7
}

func DeserializeMessageMsm7

func DeserializeMessageMsm7(data []byte) (msg MessageMsm7)

func (MessageMsm7) GetSystem

func (msg MessageMsm7) GetSystem() (sys gnss.System, err error)

func (MessageMsm7) Msm7ToEpoch

func (msg MessageMsm7) Msm7ToEpoch() (epoch observation.Epoch, err error)

Msm7ToEpoch converts MSM7 message to Epoch observations.

func (MessageMsm7) Serialize

func (msg MessageMsm7) Serialize() (data []byte)

type MessageUnknown

type MessageUnknown struct {
	Payload []byte
}

MessageUnknown is used for valid Messages for which no type yet exists - For example, experimental or proprietary messages

func (MessageUnknown) Number

func (msg MessageUnknown) Number() (msgNumber int)

func (MessageUnknown) Serialize

func (msg MessageUnknown) Serialize() []byte

type Msm7Encoder

type Msm7Encoder struct {
	Interval       time.Duration
	SystemStateMap map[gnss.System]*SystemState
}

func NewMsm7Encoder

func NewMsm7Encoder(interval time.Duration) Msm7Encoder

func (*Msm7Encoder) AppendCNR

func (msm7 *Msm7Encoder) AppendCNR(sys gnss.System, i, j int)

AppendCNR appends the carrier-to-noise ratio to the signal data DF408 - signal strength, 0 indicates no data

func (*Msm7Encoder) AppendExtended

func (msm7 *Msm7Encoder) AppendExtended(sys gnss.System, i, j int)

AppendExtended appends the extended satellite information to the satellite data

func (*Msm7Encoder) AppendFineDoppler

func (msm7 *Msm7Encoder) AppendFineDoppler(sys gnss.System, i, j int)

AppendFineDoppler appends the fine Doppler to the signal data DF404 - fine Doppler

func (*Msm7Encoder) AppendFinePhase

func (msm7 *Msm7Encoder) AppendFinePhase(sys gnss.System, i, j, k int)

AppendFinePhase appends the fine phase to the signal data DF406 - fine phase

func (*Msm7Encoder) AppendFineRange

func (msm7 *Msm7Encoder) AppendFineRange(sys gnss.System, i, j, k int)

AppendFineRange appends the fine range to the signal data DF405 - fine range

func (*Msm7Encoder) AppendHalfCycle

func (msm7 *Msm7Encoder) AppendHalfCycle(sys gnss.System, i, j int)

AppendHalfCycle appends the half-cycle ambiguity to the signal data DF420 - half-cycle ambiguity,

func (*Msm7Encoder) AppendLockTime

func (msm7 *Msm7Encoder) AppendLockTime(sys gnss.System, i, j int)

AppendLockTime appends the lock time indicator to the signal data DF407 - lock time indicator

func (*Msm7Encoder) AppendNms

func (msm7 *Msm7Encoder) AppendNms(sys gnss.System, i, j int)

AppendNms appends the rough range as an integer number of milliseconds to the satellite data

func (*Msm7Encoder) AppendRoughDoppler

func (msm7 *Msm7Encoder) AppendRoughDoppler(sys gnss.System, i, j int)

AppendRoughDoppler appends the rough Doppler to the satellite data DF399 - Doppler 1 m/s

func (*Msm7Encoder) AppendRoughRange

func (msm7 *Msm7Encoder) AppendRoughRange(sys gnss.System, i, j int)

AppendRoughRange appends the rough range as modulo 1 millisecond to the satellite data DF398 - rough range 2^-10 ms

func (*Msm7Encoder) FinePhaseMSM7

func (msm7 *Msm7Encoder) FinePhaseMSM7(sys gnss.System, i, j, k int) (float64, bool)

FinePhaseMSM7 calculates the fine phase in 2^-31 cycles

func (*Msm7Encoder) FromEpoch

func (msm7 *Msm7Encoder) FromEpoch(epoch observation.Epoch) (messages []MessageMsm7, err error)

FromEpoch converts an epoch to an MSM7 message

- GNSS systems have different time types

- GNSS systems have different signal code mappings

func (*Msm7Encoder) IncrementLockTime

func (msm7 *Msm7Encoder) IncrementLockTime(sys gnss.System, i, j int)

IncrementLockTime increments the lock time by the interval

func (*Msm7Encoder) ReinitializeFinePhaseBias

func (msm7 *Msm7Encoder) ReinitializeFinePhaseBias(sys gnss.System, i, j int)

ReinitializeFinePhaseBias reinitializes the fine phase bias

func (*Msm7Encoder) ResetLockTime

func (msm7 *Msm7Encoder) ResetLockTime(sys gnss.System, i, j int)

ResetLockTime resets the lock time to 0 milliseconds

func (*Msm7Encoder) ResetLockTimeIndicator

func (msm7 *Msm7Encoder) ResetLockTimeIndicator(sys gnss.System, i, j int)

ResetLockTimeIndicator resets the lock time indicator (DF407) to 0

type MsmHeader

type MsmHeader struct {
	// Message Number - DF002 - uint12
	MessageNumber uint16
	// Reference Station ID - DF003 - uint12
	ReferenceStationId uint16
	// Epoch - Specific DF Number for each GNSS - unint30
	Epoch uint32
	// Multiple Message Bit - DF393 - 1 bit - indicates if more MSMs follow
	MultipleMessageBit bool
	// Issue of Data Station - DF409 - uint3
	Iods uint8
	// Reserved - DF001 - 7 bits
	Reserved uint8
	// Clock Steering Indicator - DF411 - uint2
	ClockSteeringIndicator uint8
	// External Clock Indicator - DF412 - uint2
	ExternalClockIndicator uint8
	// GNSS Divergence-free Smoothing Indicator - DF417 - 1 bit
	SmoothingIndicator bool
	// GNSS Smoothing Interval - DF418 - 3 bits
	SmoothingInterval uint8
	// GNSS Satellite Mask - DF394 - 64 bits
	SatelliteMask uint64
	// GNSS Signal Mask - DF395 - 32 bits
	SignalMask uint32
	// GNSS Cell Mask - DF396 - x bits (x<=64)
	CellMask uint64
}

func DeserializeMsmHeader

func DeserializeMsmHeader(r *iobit.Reader) (header MsmHeader)

func (MsmHeader) Number

func (header MsmHeader) Number() int

func (MsmHeader) SatelliteCount

func (header MsmHeader) SatelliteCount() int

type Observation

type Observation interface {
	Message
	// Epoch at which the data was observed
	Time() time.Time
	SatelliteCount() int
}

Obseration interface for messages with Epoch attribute

type SatelliteDataMsm1

type SatelliteDataMsm1 struct {
	Ranges []uint16
}

func DeserializeSatelliteDataMsm1

func DeserializeSatelliteDataMsm1(r *iobit.Reader, nsat int) (satData SatelliteDataMsm1)

type SatelliteDataMsm2

type SatelliteDataMsm2 struct {
	Ranges []uint16
}

func DeserializeSatelliteDataMsm2

func DeserializeSatelliteDataMsm2(r *iobit.Reader, nsat int) (satData SatelliteDataMsm2)

type SatelliteDataMsm3

type SatelliteDataMsm3 struct {
	Ranges []uint16
}

func DeserializeSatelliteDataMsm3

func DeserializeSatelliteDataMsm3(r *iobit.Reader, nsat int) (satData SatelliteDataMsm3)

type SatelliteDataMsm4

type SatelliteDataMsm4 struct {
	RangeMilliseconds []uint8
	Ranges            []uint16
}

func DeserializeSatelliteDataMsm4

func DeserializeSatelliteDataMsm4(r *iobit.Reader, nsat int) (satData SatelliteDataMsm4)

type SatelliteDataMsm5

type SatelliteDataMsm5 struct {
	RangeMilliseconds []uint8
	Extended          []uint8
	Ranges            []uint16
	PhaseRangeRates   []int16
}

func DeserializeSatelliteDataMsm5

func DeserializeSatelliteDataMsm5(r *iobit.Reader, nsat int) (satData SatelliteDataMsm5)

type SatelliteDataMsm6

type SatelliteDataMsm6 struct {
	RangeMilliseconds []uint8
	Ranges            []uint16
}

func DeserializeSatelliteDataMsm6

func DeserializeSatelliteDataMsm6(r *iobit.Reader, nsat int) (satData SatelliteDataMsm6)

type SatelliteDataMsm7

type SatelliteDataMsm7 struct {
	// Rough ranges in milliseconds - DF397
	RangeMilliseconds []uint8
	// Extended satellite information - GNSS specific
	Extended []uint8
	// Satellite rough ranges - DF398
	Ranges []uint16
	// Satellite rough phase range rate - DF399
	PhaseRangeRates []int16
}

func DeserializeSatelliteDataMsm7

func DeserializeSatelliteDataMsm7(r *iobit.Reader, nsat int) (satData SatelliteDataMsm7)

type Scanner

type Scanner struct {
	Reader *bufio.Reader
}

Scanner is used for parsing RTCM3 Messages from a Reader

func NewScanner

func NewScanner(r io.Reader) Scanner

func (Scanner) NextFrame

func (scanner Scanner) NextFrame() (frame Frame, err error)

NextFrame reads from Scanner until a valid Frame is found

func (Scanner) NextMessage

func (scanner Scanner) NextMessage() (message Message, err error)

NextMessage reads from Scanner until a Message is found

type Signal

type Signal struct {
	// Code (e.g. "1C")
	Code string
	// Freq [MHz]
	Freq float64
}

Signal represents a GNSS signal

func (Signal) Wavelength

func (signal Signal) Wavelength() (wl float64)

Return the wavelength [m]

type SignalDataMsm1

type SignalDataMsm1 struct {
	Pseudoranges []int16
}

func DeserializeSignalDataMsm1

func DeserializeSignalDataMsm1(r *iobit.Reader, ncell int) (sigData SignalDataMsm1)

type SignalDataMsm2

type SignalDataMsm2 struct {
	PhaseRanges     []int32
	PhaseRangeLocks []uint8
	HalfCycles      []bool
}

func DeserializeSignalDataMsm2

func DeserializeSignalDataMsm2(r *iobit.Reader, ncell int) (sigData SignalDataMsm2)

type SignalDataMsm3

type SignalDataMsm3 struct {
	Pseudoranges    []int16
	PhaseRanges     []int32
	PhaseRangeLocks []uint8
	HalfCycles      []bool
}

func DeserializeSignalDataMsm3

func DeserializeSignalDataMsm3(r *iobit.Reader, ncell int) (sigData SignalDataMsm3)

type SignalDataMsm4

type SignalDataMsm4 struct {
	Pseudoranges    []int16
	PhaseRanges     []int32
	PhaseRangeLocks []uint8
	HalfCycles      []bool
	Cnrs            []uint8
}

func DeserializeSignalDataMsm4

func DeserializeSignalDataMsm4(r *iobit.Reader, ncell int) (sigData SignalDataMsm4)

type SignalDataMsm5

type SignalDataMsm5 struct {
	Pseudoranges    []int16
	PhaseRanges     []int32
	PhaseRangeLocks []uint8
	HalfCycles      []bool
	Cnrs            []uint8
	PhaseRangeRates []int16
}

func DeserializeSignalDataMsm5

func DeserializeSignalDataMsm5(r *iobit.Reader, ncell int) (sigData SignalDataMsm5)

type SignalDataMsm6

type SignalDataMsm6 struct {
	Pseudoranges    []int32
	PhaseRanges     []int32
	PhaseRangeLocks []uint16
	HalfCycles      []bool
	Cnrs            []uint16
}

func DeserializeSignalDataMsm6

func DeserializeSignalDataMsm6(r *iobit.Reader, ncell int) (sigData SignalDataMsm6)

type SignalDataMsm7

type SignalDataMsm7 struct {
	Pseudoranges    []int32
	PhaseRanges     []int32
	PhaseRangeLocks []uint16
	HalfCycles      []bool
	Cnrs            []uint16
	PhaseRangeRates []int16
}

func DeserializeSignalDataMsm7

func DeserializeSignalDataMsm7(r *iobit.Reader, ncell int) (sigData SignalDataMsm7)

type SignalMap

type SignalMap map[int]Signal

SignalMap is a map of Signal IDs (DF395) to Signal structs

var BeidouSignalToRinexMap SignalMap = SignalMap{

	2: {"2I", 1561.098},
	3: {"2Q", 1561.098},
	4: {"2X", 1561.098},

	8:  {"6I", 1268.52},
	9:  {"6Q", 1268.52},
	10: {"6X", 1268.52},

	14: {"7I", 1207.14},
	15: {"7Q", 1207.14},
	16: {"7X", 1207.14},

	22: {"5D", 1176.45},
	23: {"5P", 1176.45},
	24: {"5X", 1176.45},
	25: {"7D", 1207.14},

	30: {"1D", 1575.42},
	31: {"1P", 1575.42},
	32: {"1X", 1575.42},
}

BeidouSignalToRinexMap is a map of Beidou Signal IDs (DF395) to Signal structs

var GLONASSSignalToRinexMap SignalMap = SignalMap{

	2: {"1C", 1602.00},
	3: {"1P", 1602.00},

	8: {"2C", 1246.00},
	9: {"2P", 1246.00},
}

GLONASSSignalToRinexMap is a map of GLONASS Signal IDs (DF395) to Signal structs

var GPSSignalToRinexMap SignalMap = SignalMap{

	2: {"1C", 1575.42},
	3: {"1P", 1575.42},
	4: {"1W", 1575.42},

	8:  {"2C", 1227.60},
	9:  {"2P", 1227.60},
	10: {"2W", 1227.60},

	15: {"2S", 1227.60},
	16: {"2L", 1227.60},
	17: {"2X", 1227.60},

	22: {"5I", 1176.45},
	23: {"5Q", 1176.45},
	24: {"5X", 1176.45},

	30: {"1S", 1575.42},
	31: {"1L", 1575.42},
	32: {"1X", 1575.42},
}

GPSSignalToRinexMap is a map of GPS Signal IDs (DF395) to Signal structs

var GalileoSignalToRinexMap SignalMap = SignalMap{

	2: {"1C", 1575.42},
	3: {"1A", 1575.42},
	4: {"1B", 1575.42},
	5: {"1X", 1575.42},
	6: {"1Z", 1575.42},

	8:  {"6C", 1278.75},
	9:  {"6A", 1278.75},
	10: {"6B", 1278.75},
	11: {"6X", 1278.75},
	12: {"6Z", 1278.75},

	14: {"7I", 1207.14},
	15: {"7Q", 1207.14},
	16: {"7X", 1207.14},

	18: {"8I", 1191.795},
	19: {"8Q", 1191.795},
	20: {"8X", 1191.795},

	22: {"5I", 1176.45},
	23: {"5Q", 1176.45},
	24: {"5X", 1176.45},
}

GalileoSignalToRinexMap is a map of Galileo Signal IDs (DF395) to Signal structs

var QZSSSignalToRinexMap SignalMap = SignalMap{

	2: {"1C", 1575.42},

	9:  {"6S", 1278.75},
	10: {"6L", 1278.75},
	11: {"6X", 1278.75},

	15: {"2S", 1227.60},
	16: {"2L", 1227.60},
	17: {"2X", 1227.60},

	22: {"5I", 1176.45},
	23: {"5Q", 1176.45},
	24: {"5X", 1176.45},

	30: {"1S", 1575.42},
	31: {"1L", 1575.42},
	32: {"1X", 1575.42},
}

QZSSSignalToRinexMap is a map of QZSS Signal IDs (DF395) to Signal structs

var SBASSignalToRinexMap SignalMap = SignalMap{

	2: {"1C", 1575.42},

	22: {"5I", 1176.45},
	23: {"5Q", 1176.45},
	24: {"5X", 1176.45},
}

SBASSignalToRinexMap is a map of SBAS Signal IDs (DF395) to Signal structs

func (SignalMap) GetSignalCodeFromID

func (signalMap SignalMap) GetSignalCodeFromID(id int) (signal Signal, err error)

Return the GetSignalCodeFromID for a given ID

func (SignalMap) GetSignalIDFromCode

func (signalMap SignalMap) GetSignalIDFromCode(code string) (id int, err error)

Return the GetSignalIDFromCode for a given code

type SignalState

type SignalState struct {
	// Time of the previous epoch
	Time time.Time
	// Minimum lock time in milliseconds
	LockTime int
	// Number of cycles removed from the phase to match it to the corresponding pseudorange
	Cycles float64
}

type Sint

type Sint uint

type SystemState

type SystemState struct {
	Time          time.Time
	SatelliteMask uint64
	SignalMask    uint32
	CellMask      uint64
	SatelliteData SatelliteDataMsm7
	SignalData    SignalDataMsm7
	Observations  [64][32]observation.Observation
	SignalStates  [64][32]SignalState
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL