Add -debug flag to log ArtNet packets

Logs recv/send for DMX, Poll, and PollReply packets.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Ian Gulliver
2025-12-22 09:54:22 -08:00
parent a7d2a83aba
commit 081057f68a

20
main.go
View File

@@ -20,12 +20,14 @@ type App struct {
sender *artnet.Sender sender *artnet.Sender
discovery *artnet.Discovery discovery *artnet.Discovery
engine *remap.Engine engine *remap.Engine
debug bool
} }
func main() { func main() {
configPath := flag.String("config", "config.toml", "path to config file") configPath := flag.String("config", "config.toml", "path to config file")
listenPort := flag.Int("port", artnet.Port, "ArtNet listen port") listenPort := flag.Int("port", artnet.Port, "ArtNet listen port")
broadcastAddr := flag.String("broadcast", "2.255.255.255", "ArtNet broadcast address") broadcastAddr := flag.String("broadcast", "2.255.255.255", "ArtNet broadcast address")
debug := flag.Bool("debug", false, "log ArtNet packets")
flag.Parse() flag.Parse()
// Load config // Load config
@@ -64,6 +66,7 @@ func main() {
sender: sender, sender: sender,
discovery: discovery, discovery: discovery,
engine: engine, engine: engine,
debug: *debug,
} }
// Create receiver // Create receiver
@@ -92,6 +95,11 @@ func main() {
// HandleDMX implements artnet.PacketHandler // HandleDMX implements artnet.PacketHandler
func (a *App) HandleDMX(src *net.UDPAddr, pkt *artnet.DMXPacket) { func (a *App) HandleDMX(src *net.UDPAddr, pkt *artnet.DMXPacket) {
if a.debug {
log.Printf("recv DMX from %s: universe=%s seq=%d len=%d",
src.IP, pkt.Universe, pkt.Sequence, pkt.Length)
}
// Apply remapping // Apply remapping
outputs := a.engine.Remap(pkt.Universe, pkt.Data) outputs := a.engine.Remap(pkt.Universe, pkt.Data)
@@ -107,12 +115,18 @@ func (a *App) HandleDMX(src *net.UDPAddr, pkt *artnet.DMXPacket) {
IP: node.IP, IP: node.IP,
Port: int(node.Port), Port: int(node.Port),
} }
if a.debug {
log.Printf("send DMX to %s: universe=%s", node.IP, out.Universe)
}
if err := a.sender.SendDMX(addr, out.Universe, out.Data[:]); err != nil { if err := a.sender.SendDMX(addr, out.Universe, out.Data[:]); err != nil {
log.Printf("failed to send to %s: %v", node.IP, err) log.Printf("failed to send to %s: %v", node.IP, err)
} }
} }
} else { } else {
// Broadcast if no nodes discovered // Broadcast if no nodes discovered
if a.debug {
log.Printf("send DMX broadcast: universe=%s", out.Universe)
}
if err := a.sender.SendDMXBroadcast(out.Universe, out.Data[:]); err != nil { if err := a.sender.SendDMXBroadcast(out.Universe, out.Data[:]); err != nil {
log.Printf("failed to broadcast: %v", err) log.Printf("failed to broadcast: %v", err)
} }
@@ -122,11 +136,17 @@ func (a *App) HandleDMX(src *net.UDPAddr, pkt *artnet.DMXPacket) {
// HandlePoll implements artnet.PacketHandler // HandlePoll implements artnet.PacketHandler
func (a *App) HandlePoll(src *net.UDPAddr, pkt *artnet.PollPacket) { func (a *App) HandlePoll(src *net.UDPAddr, pkt *artnet.PollPacket) {
if a.debug {
log.Printf("recv Poll from %s", src.IP)
}
a.discovery.HandlePoll(src) a.discovery.HandlePoll(src)
} }
// HandlePollReply implements artnet.PacketHandler // HandlePollReply implements artnet.PacketHandler
func (a *App) HandlePollReply(src *net.UDPAddr, pkt *artnet.PollReplyPacket) { func (a *App) HandlePollReply(src *net.UDPAddr, pkt *artnet.PollReplyPacket) {
if a.debug {
log.Printf("recv PollReply from %s", src.IP)
}
a.discovery.HandlePollReply(src, pkt) a.discovery.HandlePollReply(src, pkt)
} }