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 package psn
import ( import (
"log/slog"
"github.com/jwetzell/psn-go/internal/decoders" "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) chunk, err := decoders.DecodeChunk(bytes)
if err != nil { if err != nil {
slog.Error("error decoding", "err", err) return err
return
} }
if chunk.Header.Id == 0x6756 { if chunk.Header.Id == 0x6756 {
infoPacket, err := decoders.DecodeInfoPacketChunk(bytes) infoPacket, err := decoders.DecodeInfoPacketChunk(bytes)
if err != nil { if err != nil {
slog.Error("error decoding", "err", err) return err
return
} }
currentInfoPacketHeader := infoPacket.Data.PacketHeader currentInfoPacketHeader := infoPacket.Data.PacketHeader
@@ -82,8 +78,7 @@ func (d *Decoder) Decode(bytes []byte) {
} else if chunk.Header.Id == 0x6755 { } else if chunk.Header.Id == 0x6755 {
dataPacket, err := decoders.DecodeDataPacketChunk(bytes) dataPacket, err := decoders.DecodeDataPacketChunk(bytes)
if err != nil { if err != nil {
slog.Error("error decoding", "err", err) return err
return
} }
currentInfoPacketHeader := dataPacket.Data.PacketHeader currentInfoPacketHeader := dataPacket.Data.PacketHeader
@@ -99,4 +94,5 @@ func (d *Decoder) Decode(bytes []byte) {
delete(d.dataPacketFrames, currentInfoPacketHeader.Data.FrameId) delete(d.dataPacketFrames, currentInfoPacketHeader.Data.FrameId)
} }
} }
return nil
} }
+9 -2
View File
@@ -3,6 +3,7 @@ package main
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"log/slog"
"github.com/jwetzell/psn-go" "github.com/jwetzell/psn-go"
) )
@@ -22,8 +23,14 @@ func main() {
0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f,
} }
decoder.Decode(infoPacketBytes) err := decoder.Decode(infoPacketBytes)
decoder.Decode(dataPacketBytes) 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) fmt.Printf("decoded: %+v\n", decoder.SystemName)
+5 -1
View File
@@ -2,6 +2,7 @@ package main
import ( import (
"fmt" "fmt"
"log/slog"
"net" "net"
"time" "time"
@@ -35,7 +36,10 @@ func main() {
} }
if length > 0 { 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 { if time.Now().UnixMilli()-lastPrintMillis > 1000 {