logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

lxi_discover - search for LXI devices on network

Description

       The  lxi_discover()  function  searches  for LXI devices or services on the local 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 (DISCOVER_VXI11 only).

       The service callback is called whenever a new LXI service is found (DISCOVER_MDNS only).

       The timeout is in milliseconds.

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;
       }

Name

       lxi_discover - search for LXI devices on network

Return Value

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

See Also

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

liblxi 1.22                                        2024-11-08                                    lxi_discover(3)

Synopsis

#include<lxi.h>intlxi_discover(lxi_info_t*info,inttimeout,lxi_discover_ttype);

See Also