Devices connected on a real GPIB bus are placed in remote mode when
opening them. libgpib does not automatically place devices back in
local mode when closing the handle. It is thus possible to lock out a
GPIB device by probing it with libsigrok.
This happens on the HP 3457A meter, which does not have a "LOCAL"
command, and must be put back in local mode via GPIB handshake.
ibloc() takes care of this, and it does it on a per-device basis,
such that other devices on the GPIB bus are not affected.
{
struct scpi_gpib *gscpi = scpi->priv;
+ /* Put device in back local mode to prevent lock-out of front panel. */
+ ibloc(gscpi->descriptor);
+ /* Now it's safe to close the handle. */
ibonl(gscpi->descriptor, 0);
return SR_OK;