add decode functions for info and data packets

This commit is contained in:
2024-12-18 22:48:08 -06:00
parent 90c734a023
commit 0a74b6a956
18 changed files with 724 additions and 0 deletions
@@ -0,0 +1,40 @@
package decoders
import (
"encoding/binary"
"math"
)
type DataTrackerXYZChunkData struct {
X float32
Y float32
Z float32
}
func decodeDataTrackerXYZChunk(dataTrackerXYZChunk Chunk) DataTrackerXYZChunkData {
xBits := binary.LittleEndian.Uint32(dataTrackerXYZChunk.ChunkData[0:4])
yBits := binary.LittleEndian.Uint32(dataTrackerXYZChunk.ChunkData[4:8])
zBits := binary.LittleEndian.Uint32(dataTrackerXYZChunk.ChunkData[8:12])
return DataTrackerXYZChunkData{
X: math.Float32frombits(xBits),
Y: math.Float32frombits(yBits),
Z: math.Float32frombits(zBits),
}
}
type DataTrackerXYZChunk struct {
Chunk Chunk
Data DataTrackerXYZChunkData
}
func DecodeDataTrackerXYZChunk(bytes []byte) DataTrackerXYZChunk {
chunk := DecodeChunk(bytes)
data := decodeDataTrackerXYZChunk(chunk)
return DataTrackerXYZChunk{
Chunk: chunk,
Data: data,
}
}