aboutsummaryrefslogtreecommitdiff
path: root/pkg/classes/customData.go
blob: 59cb1217c1c9d9fcdf07aabdbb729fa0b1e1bac2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package classes

import (
	"github.com/pektezol/bitreader"
)

type CustomData struct {
	Type int32
	Size int32
	Data string
}

func (customData *CustomData) ParseCustomData(reader *bitreader.Reader, tickNumber int32, packetType uint8) {
	customData.Type = reader.TryReadSInt32()
	customData.Size = reader.TryReadSInt32()
	if customData.Type != 0 || customData.Size == 8 {
		// Not SAR data
		customData.Data = string(reader.TryReadBytesToSlice(uint64(customData.Size)))
		return
	}
	// SAR data
	sarData := SarData{}
	data := reader.TryReadBytesToSlice(uint64(customData.Size))
	sarReader := bitreader.NewReaderFromBytes(data, true)
	sarData.ParseSarData(sarReader)
}