-
Notifications
You must be signed in to change notification settings - Fork 4
Description
I believe found a little mistake in your library. In enum ArtNetTalkToMeTag the fourth bit is 1 if unicast should be used for diagnostics instead of broadcast. using your setup causes sendpol to send to the serverip by default which the spec says is illegal (page 14 of artnet spec 4).
typedef enum ArtNetTalkToMeTag
{
ARTNET_DIAGNOSTIC_BROADCAST = (1 << 3), // Set if ArtNetPollReply should broadcast
ARTNET_DIAGNOSTIC_SEND = (1 << 2), // Set if diagnostic messages should be sent
ARTNET_DIAGNOSTIC_ALWAYS = (1 << 1) // Set if ArtNetPollReply should be sent whenever changes occur
}
to
typedef enum ArtNetTalkToMeTag
{
ARTNET_DIAGNOSTIC_UNICAST = (1 << 3), // Set if ArtNetPollReply should unicast
ARTNET_DIAGNOSTIC_SEND = (1 << 2), // Set if diagnostic messages should be sent
ARTNET_DIAGNOSTIC_ALWAYS = (1 << 1) // Set if ArtNetPollReply should be sent whenever changes occur
}
then adjust both the constructor and sendpol.
Also I see this in artnet.h:
// Port to reply on
#define UDP_PORT_ARTNET_REPLY (UDP_PORT_ARTNET + 1)
The spec clearly say the protocol uses only one port and I could not get it to work without removing this define.