daedaleanai/ublox

UBLOX Decode() message throws errors about unexpected symbols

Opened this issue · 0 comments

Reference to the code:
https://github.com/Hivemapper/gnss-controller/blob/main/message/decoder.go

Problem description:
Decoder gets into state when it throws "unexpected symbol" messages for every other read.

Usage:

	ubxDecoder := ublox.NewDecoder(stream)
	go func() {
		for {
			if d.IsTerminating() || d.IsTerminated() {
				done <- d.Err()
				break
			}

			if err != nil {
				if err == io.EOF {
					done <- nil
					break
				}
				fmt.Println("WARNING: error decoding ubx", err)
				continue
			}
			...
		}
	}()
	return done

Example:

WARNING: error decoding ubx Expected ED found ?C (message "$\x16\xfc@\xfe\x84\a0.A\x007\x14_a\x02\x00\xd0\xf0\xcc0\bx\x00\xdd <\x10\xc80!h\xcc\xfc\x00\x9d\xb3\x10\x81\x00\x00\x00D@\x00!\xa0\x00\x00\xa8\x00\x80\x00\x00\x04c!\x80rfN#\xf8@ <X\xf0t\x8aH\xfc\xf8\xcc\xfc\f\xf2\x80p\x00\xf8P\xa88\xadh\xcc\xfe\x12\b\x80T\x01\x04\x10\x10\x00\x00\x18\x00\x00\x00,\b\x14\x88\x00\x84@\x01#ň\xa4\x84\xfc)\x00'\x84xt(X\xfch\xcc\xfc\x8cr\x004\x014!\x00\x01\x15\x00\x92\x88\xa0T\x15B!\x10`\x00\b\xb4\b\x00,\b\x14\x10\x00\x84$\x00b\xc4\fN\x16\xfc\x8c!N\x04\x1a\x0e\x1e\x10\x00\a')\x05\x02&<j\x00U\f\x8e\x84\x82\xfa\u0088\x8b\x83\x18B\xc2BDB %)\b\t\t\f\b\r\"\x02B!\xe0rf\xc4J\xfc\x18!J\x10\xfa\xb8\xa4X8xH8\bp@h\x80x\x00H\xc8(\b\xfe\x12\xe0\xb1P\x01\x00\x10\b`\x00\b\x00\b\x00,\b\x04\x88\x00\x00\x00\x01c\x80\xc08\x16\xfc\x9c!J\x10_P\x00I\xa9\xe0@\xa9\xe2p@x\x80x\x00DH(\x88\xfe\x00\xdc\x10\x11`\x80!\x10% \x00\x88@\xa0\x02\xc2 JHJ@ :\x03\b\x88\xb4\aA\x00'@80PX\xfch\xcc8\bx\xc0\xb8\x00\xfc\x00\xc8\xc8x\xcc\xfc\x00N\x14\x11`\x801\x84% \x00\x88@\xa0\x02\u00a0JHJ@\x00(\xc3\x00\x8c\x96\xd6\xc2A\x007\x15\xa8\xe0\x00\xc8\xfc\xe8\xcc\xfc\f8@8\x00u@(\xc4hL\xfe\x00\x9d\x1f\x11`\x801\x04%@\x00\x18\x00\x10\x00\x84\b\x04\x88\x00\x84D")
WARNING: error decoding ubx invalid NMEA frame