This is a small matter, but it had me confused for a long time.
There is unreached code in the VISCA_set_address() function and a mistaken description of how the set_address command works.
The set_address receives ONE reply packet of 4 bytes which look like this 88 30 0x FF, x being the number of cameras present plus 1. So, if there are three camera present, then the reply is 88 30 04 FF.
The result is that interface->bytes is always 4, no matter how many camera are present, and the if statement
if ((interface->bytes & 0x11)!=0)
is never true.
The present code works perfectly as it is, but it sure is confusing to anyone who reads it.
Note that Revision 4 Sat Aug 2 11:10:16 2008 "fixed a bit error in VISCA_set_address()" changed the code to match the comments. However, since the comments are mistaken, this made no difference one way or the other to the above comments.
James