| gclib 1.35.5 Communications API for Galil controllers and PLCs |

gcaps

gcaps is a communication server natively supported by gclib to multiplex Galil hardware communication features. It runs in the background on the host computer, as a service or daemon.

Incidentally, the name gcaps is an acronym for the improbable name Galil Controller Asynchronous Proxy Server. Yet another tidbit to impress friends at parties.

# gclib & gcaps

gclib will attempt to use gcaps whenever GOpen() is called without the `--direct` or `-d` switch. Other than this small difference, gclib function calls through gcaps operate as if the connection was direct. The first version of gclib supporting gcaps is 299.

## Other gcaps Usage

The following functions will attempt to use gcaps first to gather data. If gcaps is not found, the functions will fall back to user space calls to populate information.

gclib Function | Usage | If gcaps unavailable
--- | --- | ---
GVersion() | Provide the version of gclib and gcaps (if available). | No gcaps version.
GIpRequests() | Provide a list of all Galil controllers requesting IP addresses via BOOT-P or DHCP. | Must be root.
GAssign() | Assigns an IP address over the Ethernet to a controller at a given MAC address. | Must be root.
GAddresses() | Provides a listing of all available connection addresses. | Must be root, or user must be in device group.

Because gcaps runs as a service on Windows, and as a system daemon on Linux, gcaps runs with root privileges. See If gcaps unavailable column in the above table when running without gcaps.

If gcaps is unavailable when these functions are run, a ~1 second delay will be incurred while gclib searches for the absent server. In order to prevent gcaps usage in these functions, comment out the symbol G_USE_GCAPS in gclibo.h and rebuild gclibo. See Rebuilding gclibo.