1lxi_discover(3) C Library Functions lxi_discover(3)
2
3
4
6 lxi_discover - search for LXI devices on network
7
8
10 #include <lxi.h>
11
12 int lxi_discover(lxi_info_t *info, int timeout, lxi_discover_t type);
13
14
16 The lxi_discover() function searches for LXI devices or services on the
17 local network using VXI-11 or mDNS/DNS-SD respectively. Which discover
18 type is used is defined as follows:
19
20
21 typedef enum
22 {
23 DISCOVER_VXI11,
24 DISCOVER_MDNS
25 } lxi_discover_t;
26
27
28 During the discover operation events and results are returned by call‐
29 backs registered via the info structure, defined as follows:
30
31 typedef struct
32 {
33 void (*broadcast)(char *address, char *interface);
34 void (*device)(char *address, char *id);
35 void (*service)(char *address, char *id, char *service, int port);
36 } lxi_info_t;
37
38
39 The broadcast callback is called whenever a new network interface is
40 searched (DISCOVER_VXI11 only).
41
42 The device callback is called whenever a new LXI device is found (DIS‐
43 COVER_VXI11 only).
44
45 The service callback is called whenever a new LXI service is found
46 (DISCOVER_MDNS only).
47
48
49 The timeout is in milliseconds.
50
51
53 Upon successful completion lxi_discover() returns LXI_OK , or LXI_ERROR
54 if an error occurred.
55
56
58 The following example searches for LXI devices using VXI-11 and prints
59 the ID and IP addresses of found devices:
60
61 #include <stdio.h>
62 #include <lxi.h>
63
64 void broadcast(char *address, char *interface)
65 {
66 printf("Broadcasting on interface %s\n", interface);
67 }
68
69 void device(char *address, char *id)
70 {
71 printf(" Found %s on address %s\n", id, address);
72 }
73
74 int main()
75 {
76 lxi_info_t info;
77
78 // Initialize LXI library
79 lxi_init();
80
81 // Set up search information callbacks
82 info.broadcast = &broadcast;
83 info.device = &device;
84
85 printf("Searching for LXI devices - please wait...\n");
86
87 // Search for LXI devices, 1 second timeout
88 lxi_discover(&info, 1000, DISCOVER_VXI11);
89
90 return 0;
91 }
92
93
95 lxi_discover_if(3) lxi_init(3) lxi_open(3), lxi_close(3) lxi_re‐
96 ceive(3), lxi_disconnect(3),
97
98
99
100liblxi 1.18 2022-09-28 lxi_discover(3)