I've been trying to use this library for a couple of days, and both makeSubscription and getChannelNames hasn't quite been working for me, so I opened up a dante controller and wireshark and went digging.
For the getChannelNames packet it looks like the commandID is 0x2000, and in the original code it's 0x2010 (lines 143 and 95), once I changed to 0x2000 I got the correct reply from the devices in the wireshark. Then next stage was writing the packet back to the deviceList array in the code, which I see was commented out and so I re-worked both the parse command and the array structure but that's for a later discussion.
For the makeSubscription as well as clearSubscription it looks like one of the arguments in commandArguments was wrong, once again when sniffing packets myself from a dante controller the command to make a subscription has the bytes after the destinationChannelNumber as 0x005c005f (I don't understand what each part of this packet represents, but it was consistent between different subscriptions as well as different devices, however I only tested this in my local system and maybe it's supposed to be something else elsewhere?) as opposed to the bytes hard coded in the library (line 231) where the bytes are 0x0005006d. Another this is the data length was considerably longer than what I saw in my system, and so I changed the padding (line 232) from 107 bytes to 83. Only after changing both did the command work. Same with clearSubscription, there it was just the padding but I fixed it as well.
I'm pretty new to this whole open source thing and don't really know what pull request etiquette is, so I figured I'd first open the issue and ask you how you like to proceed (if at all, of course).
I've been trying to use this library for a couple of days, and both
makeSubscriptionandgetChannelNameshasn't quite been working for me, so I opened up a dante controller and wireshark and went digging.For the
getChannelNamespacket it looks like the commandID is 0x2000, and in the original code it's 0x2010 (lines 143 and 95), once I changed to 0x2000 I got the correct reply from the devices in the wireshark. Then next stage was writing the packet back to thedeviceListarray in the code, which I see was commented out and so I re-worked both the parse command and the array structure but that's for a later discussion.For the
makeSubscriptionas well asclearSubscriptionit looks like one of the arguments incommandArgumentswas wrong, once again when sniffing packets myself from a dante controller the command to make a subscription has the bytes after thedestinationChannelNumberas 0x005c005f (I don't understand what each part of this packet represents, but it was consistent between different subscriptions as well as different devices, however I only tested this in my local system and maybe it's supposed to be something else elsewhere?) as opposed to the bytes hard coded in the library (line 231) where the bytes are 0x0005006d. Another this is the data length was considerably longer than what I saw in my system, and so I changed the padding (line 232) from 107 bytes to 83. Only after changing both did the command work. Same with clearSubscription, there it was just the padding but I fixed it as well.I'm pretty new to this whole open source thing and don't really know what pull request etiquette is, so I figured I'd first open the issue and ask you how you like to proceed (if at all, of course).