NUT device discovery ==================== Introduction ------------ linkman:nut-scanner[8] is available to discover supported NUT devices (USB, SNMP, Eaton XML/HTTP and IPMI) and NUT servers (using Avahi or the classic connection method). This tool actually use a library, called *libnutscan*, to perform actual processing. Client access library ~~~~~~~~~~~~~~~~~~~~~ The nutscan library can be linked into other programs to give access to NUT discovery. Both static and shared versions are provided. linkman:nut-scanner[8] is provided as an example of how to use the nutscan functions. Here is a simple example that scans for USB devices, and use its own iteration function to display results: #include #include #include /* Only enable USB scan */ #define HAVE_USB_H #include "nut-scan.h" int main() { nutscan_options_t * opt; nutscan_device_t *device; if ((device = nutscan_scan_usb()) == NULL) { printf("No device found\n"); exit(EXIT_FAILURE); } /* Rewind the list */ while(device->prev != NULL) { device = device->prev; } /* Print results */ do { printf("USB device found\n\tdriver: \"%s\"\n\tport: \"%s\"\n", device->driver, device->port); /* process options (serial number, bus, ...) */ opt = &(device->opt); do { if( opt->option != NULL ) { printf("\t%s",opt->option); if( opt->value != NULL ) { printf(": \"%s\"", opt->value); } printf("\n"); } opt = opt->next; } while( opt != NULL ); device = device->next; } while( device != NULL ); exit(EXIT_SUCCESS); } This library file and the associated header files are not installed by default. You must `./configure --with-lib` to enable building and installing these files. The libraries can then be built and installed with `make` and `make install` as usual. This must be done before building other (non-NUT) programs which depend on them. For more information, refer to the linkman:nutscan[3], manual page and the various link:man/index.html#devscan[nutscan_*(3)] functions documentation referenced in the same file. Configuration helpers ~~~~~~~~~~~~~~~~~~~~~ NUT provides helper scripts to ease the configuration step of your program, by detecting the right compilation and link flags. For more information, refer to a <>. Python ------ Python support for NUT discovery features is not yet available. Perl ---- Perl support for NUT discovery features is not yet available. Java ---- Java support for NUT discovery features is not yet available.