have decoder return err

This commit is contained in:
2024-12-24 00:01:51 -06:00
parent 6bc6fb3668
commit 0877357b78
3 changed files with 19 additions and 12 deletions
+5 -9
View File
@@ -1,8 +1,6 @@
package psn
import (
"log/slog"
"github.com/jwetzell/psn-go/internal/decoders"
)
@@ -52,19 +50,17 @@ func (d *Decoder) updateData(framePackets []decoders.DataPacketChunk) {
}
}
func (d *Decoder) Decode(bytes []byte) {
func (d *Decoder) Decode(bytes []byte) error {
chunk, err := decoders.DecodeChunk(bytes)
if err != nil {
slog.Error("error decoding", "err", err)
return
return err
}
if chunk.Header.Id == 0x6756 {
infoPacket, err := decoders.DecodeInfoPacketChunk(bytes)
if err != nil {
slog.Error("error decoding", "err", err)
return
return err
}
currentInfoPacketHeader := infoPacket.Data.PacketHeader
@@ -82,8 +78,7 @@ func (d *Decoder) Decode(bytes []byte) {
} else if chunk.Header.Id == 0x6755 {
dataPacket, err := decoders.DecodeDataPacketChunk(bytes)
if err != nil {
slog.Error("error decoding", "err", err)
return
return err
}
currentInfoPacketHeader := dataPacket.Data.PacketHeader
@@ -99,4 +94,5 @@ func (d *Decoder) Decode(bytes []byte) {
delete(d.dataPacketFrames, currentInfoPacketHeader.Data.FrameId)
}
}
return nil
}
+9 -2
View File
@@ -3,6 +3,7 @@ package main
import (
"encoding/json"
"fmt"
"log/slog"
"github.com/jwetzell/psn-go"
)
@@ -22,8 +23,14 @@ func main() {
0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f,
}
decoder.Decode(infoPacketBytes)
decoder.Decode(dataPacketBytes)
err := decoder.Decode(infoPacketBytes)
if err != nil {
slog.Error("error decoding", "err", err)
}
err = decoder.Decode(dataPacketBytes)
if err != nil {
slog.Error("error decoding", "err", err)
}
fmt.Printf("decoded: %+v\n", decoder.SystemName)
+5 -1
View File
@@ -2,6 +2,7 @@ package main
import (
"fmt"
"log/slog"
"net"
"time"
@@ -35,7 +36,10 @@ func main() {
}
if length > 0 {
decoder.Decode(buffer)
err := decoder.Decode(buffer)
if err != nil {
slog.Error("error decoding", "err", err)
}
}
if time.Now().UnixMilli()-lastPrintMillis > 1000 {