>
= 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
LandEvbGenGenericClientEvBMStreamVmeDaq
}}}