103
www.analogway.com
USER MANUAL
Appendix D.
Picturall Server communication protocol specifications
D.a.
Locating Pro on network
Pro listens to multicast group 224.0.0.180 port 11009. When it receives message "HELLO", it responds with
a UDP packet containing following data:
/** Structure for Pro identification over network.
*
* All strings use UTF-8 character encoding and are always null terminated if
* not otherwise specified.
*
* If string doesn’t fit into the allocated buffer it will be silently
* truncated, but will remain null terminated.
*
* bc_version is currently 1. If you get larger values, then protocol has been
* changed and you should discard the packet and get updated specifications
* from Picturall.
* */
struct bcast_identity_s {
char magic[16]; // "PICTURALL SERVER" (no null termination)
uint32_t bc_version; // bcast protocol version network byte order
char ip[32]; // null terminated IP-address
char name[32]; // null terminated host name
char version[32]; // null terminated server version string
} __attribute__ ((packed));
Clients can then connect to a given IP address and use the version field for detecting compatible versions.
D.b.
Connecting to a Picturall server
Communication with Picturall server works through TCP/IP based telnet-like connection to server command
line. Client starts communication by connecting to Pros IP address and port 11000. You can then send
commands to Pro.
For example, you can telnet 10.0.0.1 11000 on the command line on a Windows or a Mac computer. This
grants you access to the Pro command line. You can then enter config on the command line. Pro should print
current version number and some internal configuration data.
When you connect to Pro you should immediately send following command:
wait\_startup
This command waits until Pro startup procedure and show loading is completed. If you connect while Pro
startup is still in progress you might get unexpected results or even hanging due to other commands being
sent. If Pro startup is already completed when this command is given, the command will not do anything.