Provides read/write access to driver settings and convenience features based on the request variable.
* `G_UTIL_TIMEOUT_OVERRIDE` See GTimeout(). Write/Read override timeout value. * `memory1` is input. If nonnull, value must be a pointer to a short which overrides the timeout. Write `G_USE_INITIAL_TIMEOUT` to use initial timeout. If null, no write occurs. * `memory2` is output. If nonnul, value must be a pointer to a short which will be filled with the current override. `G_USE_INITIAL_TIMEOUT` indicates initial timeout used. If null, no read occurs. `memory2` is processed before 'memory1`. * `G_UTIL_VERSION` See GVersion(). Returns the library version. A valid connection (g) is not necessary, e.g. g may be null. * `memory1` is output, and must be a `GCStringOut`. Data will be null terminated, even if the data must be truncated to do so. * `memory2` is input and must be a pointer to a `GSize` holding the length of the buffer in `memory1`. * `G_UTIL_INFO` See GInfo(). Returns information about the connection. * `memory1` is output and must be a `GCStringOut`. Data will be null terminated, even if the data must be truncated to do so. * `memory2` is input and must be a pointer to a `GSize` holding the length of the buffer in `memory1`. * `G_UTIL_SLEEP` See GSleep(). Platform-independent sleep. A valid connection (g) is not necessary, i.e. g may be null. * `memory1` is input and must be a pointer to an unsigned int, units are milliseconds. * `memory2` is ignored, use null. * `G_UTIL_ADDRESSES` Provides a \n delimited listing of all available IP addresses, PCI addresses, and COM ports. A valid connection (g) is not necessary, i.e. g may be null. * `memory1` is output and must be a `GCStringOut`. Data will be null terminated, even if the data must be truncated to do so. * `memory2` is input and must be a pointer to a `GSize` holding the length of the buffer in `memory1`. * `G_UTIL_IPREQUEST` Listens and returns a \n delimited listing of Galil MAC addresses sending BOOT-P or DHCP requests. The function will listen, and block, for roughly 5 seconds. A valid connection (g) is not necessary, i.e. g may be null. * `memory1` is output and must be a `GCStringOut`. Data will be null terminated, even if the data must be truncated to do so. * `memory2` is input and must be a pointer to a `GSize` holding the length of the buffer in `memory1`. * `G_UTIL_ASSIGN` Provides a method to assign an IP address given a Galil MAC address and optionally a host NIC IP address. A valid connection (g) is not necessary, i.e. g may be null. The address to assign will be pinged to ensure its availability before the assign packet is sent. `G_GCLIB_UTILITY_IP_TAKEN` will be returned by GUtility() if the ping returns a response. * `memory1` is input and must be a pointer to a `GCStringIn` containing the address that is to be assigned. e.g. `"192.168.0.43"` * `memory2` is input and must be a pointer to a `GCStringIn` containing a comma-separated list with the controller's MAC address, followed by the IP address of the host's network interface to dispatch the assign packet. e.g. `"00:50:4C:20:01:23, 192.168.0.42"`
See source of gclibo.c for examples of `G_UTIL_TIMEOUT`, `G_UTIL_TIMEOUT_OVERRIDE`, `G_UTIL_VERSION`, `G_UTIL_INFO`, `G_UTIL_SLEEP`. Except for serial ports, each line from `G_UTIL_ADDRESSES` will be of the form *address, revision report (^R^V)*. {.unparsed} 10.1.3.168, DMC30010 Rev 1.2d GALILPCI1, DMC1826 Rev 1.1a COM7 COM8 See GAddresses() for an example of `G_UTIL_ADDRESSES`.
Each line from `G_UTIL_IPREQUEST` will be of the form *model, serial_number, mac*. {.unparsed} DMC4000, 291, 00:50:4c:20:01:23 DMC30000, 4184, 00:50:4c:40:10:58 {.cpp} //example for getting controllers requesting IPs char buf[1024]; GSize len = sizeof(buf); GUtility(0, G_UTIL_IPREQUEST, buf, &len); cout << buf << "\n";
{.cpp} //example of assigning an IP address. GUtility(0, G_UTIL_ASSIGN, "10.1.3.178", "00:50:4c:40:10:58"); //Assign 10.1.3.178 TO 00:50:4c:40:10:58 Referenced by GAddresses(), GAssign(), GInfo(), GIpRequests(), GSleep(), GTimeout(), and GVersion(). |