I hope someone can help me here. I used the information available here: https://art-net.org.uk/how-it-works/discovery-packets/artpollreply/ and created a function for sending an artnet poll reply when a request is received. My computer's ip address in this test is 192.168.4.114. I have confirmed that the poll packet is being received, and the code I'm posting transmits. However the program I'm sending the discovery from (Jinx) is not populating the found devices. I must have something formatted incorrectly.
If someone has a working poll reply sample I would love that, otherwise what's wrong with this?
else if (e.Packet.OpCode == ArtNet.Enums.ArtNetOpCodes.Poll)
{
System.Threading.Thread.Sleep(2000);
byte[] packetData = {
0x41, 0x72, 0x74, 0x2d, 0x4e, 0x65, 0x74, 0x00, // 0-7 "Art-Net"
0x00, 0x21, // 8-9 OpCode (ArtPollReply)
192,168,4,114, // 10-13 IP ADDRESS
0x36, 0x19, // 14-15 Port-Address
0x01, 0x40, // 16-17 hi lo VersInfo
0x00, // 18 NetSwitch
0x01, // 19 SubSwitch
0x20, 0x60, // 20-21 OemHi, Lo
0x00, // 22 Ubea version #
0x10, // 23 Status 1 (configuration bits)
0x4c, 0x41, // 24-25 lo hi ESTA manufacturer code
// Short name 26-43 (18 bytes)
0x41, 0x72, 0x74, 0x2d, 0x4e, 0x65, 0x74, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x30, 0x30, 0x31,
// Long name 44-107(64 bytes)
0x41, 0x72, 0x74, 0x2d, 0x4e, 0x65, 0x74, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x30, 0x30, 0x31, //says Art-Net Device
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
// Node Report 108-171 (64 bytes)
0x23, 0x30, 0x30, 0x30, 0x31, 0x20, 0x5b, 0x30, 0x30, 0x30, 0x30, 0x5d, 0x20, 0x41, 0x43, 0x4d, 0x45, 0x20,
0x41, 0x72, 0x74, 0x2d, 0x4e, 0x65, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
// 127-173 NumPorts (2 bytes)
0x00, 0x01,
// 174-177 Port types (4 bytes)
0x00, 0x02, 0x02, 0x00,
// 178-181 GoodInput (4 bytes)
0xff, 0xff, 0xff, 0xff,
// 182-185 GoodOutput (4 bytes)
0xff, 0xff, 0xff, 0xff,
// 186-189 SwIn (4 bytes)
0x00, 0x00, 0x00, 0x00,
// 190-193 SwOut (4 bytes)
0x00, 0x00, 0x00, 0x00,
// 194-196 deprecated
0x00, 0x00, 0x00,
// 197-199 spare
0x00, 0x00, 0x00,
// Style (1 byte)
0x00,
// MAC (6 bytes)
0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
// BindIp (4 bytes)
192, 168, 4, 114,
// BindIndex (1 byte)
0x00,
// Status2 (1 byte)
0x00
};
UdpClient client = new UdpClient();
client.Send(packetData, packetData.Length, e.Source.Address.ToString(), e.Source.Port);