lxi_discover(3)

lxi_discover3

Search for lxi devices on network

Usage

#include <lxi.h>

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

Overview

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.

Return value

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

Examples

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

Releases

4 releases since Debian 10 (Buster); the text changed 2 times.

  1. 10–11
  2. 12
  3. 13

From liblxi-dev 1.22-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.