mirror of
https://github.com/jwetzell/free-d-go.git
synced 2026-09-11 17:09:25 +00:00
add example
This commit is contained in:
@@ -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)
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user