Files
esdi/peripheral/identificationPacket.go
T
2025-10-29 22:57:21 +00:00

47 lines
978 B
Go

package peripheral
import (
"encoding/binary"
"fmt"
)
type IdentificationPacket struct {
StartMarker byte
DeviceID uint8
PktType PacketType
Name [32]byte
EndMarker byte
}
func (pkt *IdentificationPacket) Read(wt *WalkieTalkie) error {
err := wt.ReadFramedData(binary.Size(IdentificationPacket{}), pkt)
if err != nil {
return err
}
if !pkt.Validate() {
return fmt.Errorf("invalid data")
}
return nil
}
func (pkt *IdentificationPacket) Validate() bool {
fmt.Println("↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓")
fmt.Println(pkt.StartMarker)
fmt.Println(pkt.PktType.String())
fmt.Println(string(pkt.Name[:]))
fmt.Println(pkt.EndMarker)
fmt.Println("↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑")
// Change this to return an error and add a validation against available
// device ids
if pkt.StartMarker != startOfText ||
pkt.EndMarker != endOfText {
return false
}
return true
}