Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
lxi_discover(3) 	       C Library Functions		 lxi_discover(3)

NAME
     lxi_discover - search for LXI devices on network

SYNOPSIS
     #include <lxi.h>

     int lxi_discover(lxi_info_t *info, int timeout, lxi_discover_t type);

DESCRIPTION
     The lxi_discover() function searches for LXI devices or services on the lo-
     cal  network  using VXI-11 or mDNS/DNS-SD respectively. Which discover type
     is used is defined as follows:

     typedef enum
     {
	 DISCOVER_VXI11,
	 DISCOVER_MDNS
     } lxi_discover_t;

     During the discover operation events and results are returned by  callbacks
     registered via the info structure, defined as follows:

     typedef struct
     {
	 void (*broadcast)(char *address, char *interface);
	 void (*device)(char *address, char *id);
	 void (*service)(char *address, char *id, char *service, int port);
     } lxi_info_t;

     The  broadcast  callback  is  called  whenever  a	new network interface is
     searched (DISCOVER_VXI11 only).

     The device callback is called whenever a new  LXI	device	is  found  (DIS-
     COVER_VXI11 only).

     The  service  callback  is called whenever a new LXI service is found (DIS-
     COVER_MDNS only).

     The timeout is in milliseconds.

RETURN VALUE
     Upon successful completion lxi_discover() returns LXI_OK , or LXI_ERROR  if
     an error occurred.

EXAMPLE
     The  following example searches for LXI devices using VXI-11 and prints the
     ID and IP addresses of found devices:

     #include <stdio.h>
     #include <lxi.h>

     void broadcast(char *address, char *interface)
     {
	 printf("Broadcasting on interface %s\n", interface);
     }

     void device(char *address, char *id)
     {
	 printf(" Found %s on address %s\n", id, address);
     }

     int main()
     {
	 lxi_info_t info;

	 // Initialize LXI library
	 lxi_init();

	 // Set up search information callbacks
	 info.broadcast = &broadcast;
	 info.device = &device;

	 printf("Searching for LXI devices - please wait...\n");

	 // Search for LXI devices, 1 second timeout
	 lxi_discover(&info, 1000, DISCOVER_VXI11);

	 return 0;
     }

SEE ALSO
     lxi_discover_if(3) lxi_init(3)  lxi_open(3),  lxi_close(3)  lxi_receive(3),
     lxi_disconnect(3),

liblxi 1.18			   2022-09-28			 lxi_discover(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=lxi_discover&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help