diff --git a/examples/decode/main.go b/examples/decode/main.go new file mode 100644 index 0000000..8a0340e --- /dev/null +++ b/examples/decode/main.go @@ -0,0 +1,22 @@ +package main + +import ( + "log/slog" + + freeD "github.com/jwetzell/free-d-go" +) + +func main() { + + messageBytes := []byte{0xd1, 0x01, 0x5a, 0x00, 0x00, 0x2d, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x7f, 0xff, 0x40, 0x7f, 0xff, 0x80, 0x7f, 0xff, + 0xc0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00, 50, + } + + decoded, err := freeD.Decode(messageBytes) + if err != nil { + slog.Error("error decoding", "err", err) + } + + slog.Info("decoded", "message", decoded) + +} diff --git a/examples/encode/main.go b/examples/encode/main.go new file mode 100644 index 0000000..25c72d1 --- /dev/null +++ b/examples/encode/main.go @@ -0,0 +1,28 @@ +package main + +import ( + "fmt" + + freeD "github.com/jwetzell/free-d-go" +) + +func main() { + + freeDMessage := freeD.FreeDPosition{ + ID: 0xff, + Pan: -10.1, + Tilt: 20.2, + Roll: 3.33, + PosX: 1.11, + PosY: 2.22, + PosZ: 3.33, + Zoom: 1000, + Focus: 2000, + } + + freeDBytes := freeD.Encode(freeDMessage) + + println("send packet somehow") + fmt.Printf("%v\n", freeDBytes) + +} diff --git a/examples/udp_client/main.go b/examples/udp_client/main.go new file mode 100644 index 0000000..532e566 --- /dev/null +++ b/examples/udp_client/main.go @@ -0,0 +1,38 @@ +package main + +import ( + "log/slog" + "net" + + freeD "github.com/jwetzell/free-d-go" +) + +func main() { + addr, err := net.ResolveUDPAddr("udp", "0.0.0.0:3333") + if err != nil { + slog.Error("error decoding", "err", err) + return + } + + client, err := net.ListenUDP("udp", addr) + if err != nil { + slog.Error("error decoding", "err", err) + return + } + defer client.Close() + + for { + buffer := make([]byte, 2048) + + length, _, err := client.ReadFromUDP(buffer) + if err != nil { + slog.Error("error decoding", "err", err) + } else if length > 0 { + message, err := freeD.Decode(buffer[0:length]) + if err != nil { + slog.Error("error decoding", "err", err) + } + slog.Info("decoded", "message", message) + } + } +}