<> = PNP = Network applications can send UDP-frame to multicast address 239.192.1.2:33304. This frame contains XML document (with DOCTYPE pnp_message) that describes application's current status. == Program announce element == Program should publish such element on application start-up and on every change of its content. Root element is 'program' which has following attributes: * Mandatory/Obligatory * seq - sequence number (counter) * type - short name of program such as: Adc64, EvB, Cru, RunControl, etc. * index - application's program index, custom non-empty string which helps distinguish two instance of same applications (for example two EvB applications: 'Test_master' and 'Test_slave') * uuid - unique identification, generated on application start-up * Optional * name - composition of 'type #index' (deprecated) * ver_date - application's compilation date * ver_hash - git hash of application source * hostName - host name where application is running * host - source host (ip-address) where application is running (by default assuming that source host is suurce of multicast package) Program element can hold sub-elements: interfaces and options. === Interfaces === This element describes to another program how they can communicate with this program. Element 'interface' has following attributes: * port - port number of this interface * enabled - indicates is this interface is enabled (values: 1 or 0). * id - interface's identification number. * isFree - indicates is this interface is free, can accept incoming connection (values: 1 or 0). * type - specify what type is this interface. At this moment can be 'RemoteControl', '[[MpdDeviceRawDataFormat|data flow]]' or 'Monitor output data flow' If some interface has some connected peers, there will be 'peer' sub-element with attributes: * 'p' - peer port * 'h' - peer host === Options === Optional elements without some concrete purpose. Holds key-value map. == Program close element == Program should publish such element right before application shut-down. Root element is 'program_close', attributes is the same as for ''Program announce element'' == Search element == Root element is 'discover_request'. Program element can hold sub-elements: 'target'. All programs should responce if there is no 'target' elements or if one of them contains its ''program type''. === Target === Element contains ''program type'' string for search. == Example == {{{#!highlight xml }}} {{{#!highlight xml }}} {{{#!highlight xml Land EvbGen GenericClient EvB MStream VmeDaq }}}