Documentation ¶
Index ¶
- Constants
- Variables
- func CRC32Value(i int) uint32
- func CalculateBlockCRC32(ulCount uint64, ucBuffer []byte) uint32
- func ExtractBits(value uint32, n uint, m uint) (result uint8, err error)
- func GPSWeekMilliSecondsOfWeekToTime(gpsWeek uint16, tow uint32) (dt time.Time)
- func GPSWeekSowToTime(gpsWeek uint16, tow float64) (dt time.Time)
- type ChannelTrackingStatus
- type Message
- type Message_140
- type RangeRecord
- type Scanner
- type SignalType
Constants ¶
View Source
const CRC32_POLYNOMIAL uint32 = 0xEDB88320
Variables ¶
View Source
var SignalTypes = map[int]map[int]SignalType{
0: {
0: {Code: "1C", Freq: 1575.42},
5: {Code: "2P", Freq: 1227.60},
9: {Code: "2W", Freq: 1227.60},
14: {Code: "5Q", Freq: 1176.45},
16: {Code: "1L", Freq: 1575.42},
17: {Code: "2S", Freq: 1227.60},
},
1: {
0: {Code: "1C", Freq: 1602.0},
1: {Code: "2C", Freq: 1246.0},
5: {Code: "2P", Freq: 1246.0},
6: {Code: "3Q", Freq: 1202.025},
},
2: {
0: {Code: "1C", Freq: 1575.42},
6: {Code: "5I", Freq: 1176.45},
},
3: {
2: {Code: "1C", Freq: 1575.42},
6: {Code: "6B", Freq: 1278.75},
7: {Code: "6C", Freq: 1278.75},
12: {Code: "5Q", Freq: 1176.45},
17: {Code: "7Q", Freq: 1207.140},
20: {Code: "8Q", Freq: 1191.795},
},
4: {
0: {Code: "2I", Freq: 1561.098},
1: {Code: "7I", Freq: 1207.140},
2: {Code: "6I", Freq: 1268.52},
4: {Code: "1D", Freq: 1575.42},
5: {Code: "5D", Freq: 1176.45},
6: {Code: "6D", Freq: 1268.52},
7: {Code: "1P", Freq: 1575.42},
9: {Code: "5P", Freq: 1176.45},
11: {Code: "7D", Freq: 1207.140},
},
5: {
0: {Code: "1C", Freq: 1575.42},
14: {Code: "5Q", Freq: 1176.45},
16: {Code: "1L", Freq: 1575.42},
17: {Code: "2M", Freq: 1227.60},
27: {Code: "6P", Freq: 1278.75},
},
6: {
0: {Code: "5A", Freq: 1575.42},
},
}
Functions ¶
func CRC32Value ¶
CRC32Value calculates the CRC value used in CRC calculations.
func CalculateBlockCRC32 ¶
CalculateBlockCRC32 calculates the CRC-32 of a data block.
Types ¶
type ChannelTrackingStatus ¶
type ChannelTrackingStatus struct { TrackingState uint8 SVChanNum uint8 PhaseLockFlag uint8 ParityKnownFlag uint8 CodeLockedFlag uint8 CorrelatorType uint8 SatSystem uint8 Reserved1 uint8 Grouping uint8 SignalType uint8 Rererved2 uint8 PrimaryL1Chan uint8 HalfCycle uint8 Filtering uint8 PRNLockFlag uint8 ChanAssignment uint8 }
ChannelTrackingStatus contains the fields of the ChannelTrackingStatus uint32
type Message ¶
type Message struct { // 0xAA Sync1 byte // 0x44 Sync2 byte // 0x12 Sync3 byte // Length of the header HeaderLength uint8 MessageID uint16 MessageType byte PortAddress uint8 // The length in bytes of the body of the message, // not including the header nor the CRC MessageLength uint16 // Used for multiple related logs. It is a number that counts down from N-1 // to 0 where N is the number of related logs and 0 means it is the last one of // the set. Most logs only come out one at a time in which case this number is 0 Sequence uint16 // Time the processor is idle, calculated once per second. Take // the time (0 – 200) and divide by two to give the percentage of time // (0 – 100%). 0% indicates the processor is fully occupied. Other values // indicate the availability of the processor to take on tasks. IdleTime uint8 // Indicates the quality of the GPS reference time TimeStatus uint8 // GPS reference week number Week uint16 // Milliseconds from the beginning of the GPS reference week GPSMilliSecondsOfWeek uint32 // 32-bits representing the status of various hardware and software // components of the receiver x ReceiverStatus uint32 // Reserved for internal use Reserved uint16 // A value (0 - 65535) representing the receiver software build number RecSWVersion uint16 // Data Data []byte // Checksum - 32 bit CRC Checksum uint32 }
func (*Message) DeserializeMessage140 ¶
func (msg *Message) DeserializeMessage140() Message_140
type Message_140 ¶
type Message_140 struct { // The number of range records in the message NumberOfObs uint32 // The range records RangeRecords []RangeRecord }
Message_140 contains the fields of the RANGECMP message
func (*Message_140) SerializeGNSSEpoch ¶
func (msg *Message_140) SerializeGNSSEpoch(t time.Time) (epoch observation.Epoch, err error)
type RangeRecord ¶
type RangeRecord struct { // 32 bits ChannelTrackingStatus uint32 // 28 bits - 1/256 Hz DopplerFreq uint64 // 36 bits - 1/128 m Pseudorange uint64 // 32 bits - 1/256 cycles Phase uint64 // 4 bits - m PseudorangeStd uint8 // 4 bits - (n+1)/512 cycles PhaseStd uint8 // 8 bits - PRN uint8 // 21 bits - 1/32 s LockTime uint32 // 5 bits - (20+n) dB-Hz SNR uint8 // 6 bits - n+7 FCN uint8 // 16 bits Reserved uint16 }
RangeRecord contains the fields of the RangeRecord message
func DeserializeRangeRecord ¶
func DeserializeRangeRecord(r *iobit.Reader) (rangeRecord RangeRecord)
func (*RangeRecord) GetChannelTrackingStatus ¶
func (rangeRecord *RangeRecord) GetChannelTrackingStatus() (cts ChannelTrackingStatus, err error)
GetChannelTrackingStatus extracts the status fields of the ChannelTrackingStatus uint32
type SignalType ¶
Click to show internal directories.
Click to hide internal directories.