Provided by: libgpib-doc_4.3.7-5_all 

NAME
ibconfig - change configuration (board or device)
SYNOPSIS
#include <gpib/ib.h>
int ibconfig(int ud, int option, int setting);
DESCRIPTION
Changes various configuration settings associated with the board or device descriptor ud. The option
argument specifies the particular setting you wish to modify. The setting argument specifies the option's
new configuration. To query the descriptor's configuration, see ibask().
Table 6. ibconfig options
┌─────────────────────┬─────────────────────────┬─────────────────────────────┬─────────────────────────┐
│ option │ value (hexadecimal) │ effect │ used for board/device │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcPAD │ 0x1 │ Sets GPIB primary │ board or device │
│ │ │ address. Same as │ │
│ │ │ ibpad() │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcSAD │ 0x2 │ Sets GPIB secondary │ board or device │
│ │ │ address. Same as │ │
│ │ │ ibsad() │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcTMO │ 0x3 │ Sets timeout for io │ board or device │
│ │ │ operations. Same as │ │
│ │ │ ibmto(). │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcEOT │ 0x4 │ If setting is nonzero, │ │
│ │ │ EOI is asserted with │ │
│ │ │ last byte on writes. │ │
│ │ │ Same as ibeot(). │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcPPC │ 0x5 │ Sets parallel poll │ board │
│ │ │ configuration. Same │ │
│ │ │ as ibppc(). │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcREADDR │ 0x6 │ Not implemented, │ device │
│ │ │ included for │ │
│ │ │ compatibility only. │ │
│ │ │ Device ibrd* and │ │
│ │ │ ibwrt* calls always │ │
│ │ │ re-address. To avoid │ │
│ │ │ re-addressing use │ │
│ │ │ an initial device read │ │
│ │ │ or write followed by │ │
│ │ │ board read or │ │
│ │ │ writes to the │ │
│ │ │ controlling minor, │ │
│ │ │ ensuring no other │ │
│ │ │ intervening │ │
│ │ │ device access │ │
│ │ │ occurs. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcAUTOPOLL │ 0x7 │ If setting is nonzero │ board │
│ │ │ then automatic serial │ │
│ │ │ polling is enabled. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcCICPROT │ 0x8 │ Useless, included for │ board │
│ │ │ compatibility only. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcSC │ 0xa │ If setting is nonzero, │ board │
│ │ │ board becomes system │ │
│ │ │ controller. Same │ │
│ │ │ as ibrsc(). │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcSRE │ 0xb │ If setting is nonzero │ board │
│ │ │ then board asserts REN │ │
│ │ │ when it becomes │ │
│ │ │ sytem controller │ │
│ │ │ otherwise REN is not │ │
│ │ │ asserted. It │ │
│ │ │ is nonzero by default. │ │
│ │ │ See ibrsc(). │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcEOSrd │ 0xc │ If setting is nonzero │ board or device │
│ │ │ then reads are │ │
│ │ │ terminated on │ │
│ │ │ reception of the │ │
│ │ │ end-of-string │ │
│ │ │ character. See │ │
│ │ │ ibeos(), in │ │
│ │ │ particular the REOS │ │
│ │ │ bit. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcEOSwrt │ 0xd │ If setting is nonzero │ board or device │
│ │ │ then EOI is asserted │ │
│ │ │ whenever the │ │
│ │ │ end-of-string │ │
│ │ │ character is │ │
│ │ │ sent. See │ │
│ │ │ ibeos(), in │ │
│ │ │ particular the XEOS │ │
│ │ │ bit. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcEOScmp │ 0xe │ If setting is nonzero │ board or device │
│ │ │ then all 8 bits are │ │
│ │ │ used to match the │ │
│ │ │ end-of-string │ │
│ │ │ character. │ │
│ │ │ Otherwise only the │ │
│ │ │ least significant 7 │ │
│ │ │ bits are used. │ │
│ │ │ See ibeos(), │ │
│ │ │ in particular the │ │
│ │ │ BIN bit. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcEOSchar │ 0xf │ Sets the end-of-string │ board or device │
│ │ │ byte. See │ │
│ │ │ ibeos(). │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcPP2 │ 0x10 │ If setting is nonzero │ board │
│ │ │ then the board is put │ │
│ │ │ into local │ │
│ │ │ parallel poll │ │
│ │ │ configure mode (IEEE │ │
│ │ │ 488.1 PP2 subset), and │ │
│ │ │ will not change │ │
│ │ │ its parallel poll │ │
│ │ │ configuration in │ │
│ │ │ response to receiving │ │
│ │ │ 'parallel poll │ │
│ │ │ enable' command bytes │ │
│ │ │ from the │ │
│ │ │ controller-in-charge. │ │
│ │ │ Instead, the │ │
│ │ │ parallel poll │ │
│ │ │ configuration is set │ │
│ │ │ locally by doing a │ │
│ │ │ board-level call │ │
│ │ │ of ibppc(). A │ │
│ │ │ zero value puts the │ │
│ │ │ board in remote │ │
│ │ │ parallel poll │ │
│ │ │ configure mode │ │
│ │ │ (IEEE 488.1 PP1 │ │
│ │ │ subset). IEEE 488.2 │ │
│ │ │ requires devices to │ │
│ │ │ support the │ │
│ │ │ remote PP1 subset and │ │
│ │ │ not the local PP2 │ │
│ │ │ subset. Some │ │
│ │ │ older hardware does │ │
│ │ │ not support local │ │
│ │ │ parallel poll │ │
│ │ │ configure mode. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcTIMING │ 0x11 │ Sets the T1 delay. │ board │
│ │ │ Use setting of 1 for 2 │ │
│ │ │ microseconds, 2 for │ │
│ │ │ 500 nanoseconds, │ │
│ │ │ or 3 for 350 │ │
│ │ │ nanoseconds. These │ │
│ │ │ values are declared in │ │
│ │ │ the header files │ │
│ │ │ as the constants │ │
│ │ │ T1_DELAY_2000ns, │ │
│ │ │ T1_DELAY_500ns, │ │
│ │ │ and │ │
│ │ │ T1_DELAY_350ns. A 2 │ │
│ │ │ microsecond T1 delay │ │
│ │ │ is safest, but │ │
│ │ │ will limit │ │
│ │ │ maximum transfer │ │
│ │ │ speeds to a few │ │
│ │ │ hundred kilobytes │ │
│ │ │ per second. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcReadAdjust │ 0x13 │ If setting is nonzero │ board or device │
│ │ │ then byte pairs are │ │
│ │ │ automatically swapped │ │
│ │ │ during reads. │ │
│ │ │ Presently, this │ │
│ │ │ feature is │ │
│ │ │ unimplemented. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcWriteAdjust │ 0x14 │ If setting is nonzero │ board or device │
│ │ │ then byte pairs are │ │
│ │ │ automatically swapped │ │
│ │ │ during writes. │ │
│ │ │ Presently, this │ │
│ │ │ feature is │ │
│ │ │ unimplemented. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcEventQueue │ 0x15 │ If setting is nonzero │ board │
│ │ │ then the event queue │ │
│ │ │ is enabled. The │ │
│ │ │ event queue is │ │
│ │ │ disabled by default. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcSPollBit │ 0x16 │ If the setting is │ board │
│ │ │ nonzero then the use │ │
│ │ │ of the SPOLL bit in │ │
│ │ │ ibsta is enabled. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcSendLLO │ 0x17 │ If the setting is │ board │
│ │ │ nonzero then devices │ │
│ │ │ connected to this │ │
│ │ │ board are │ │
│ │ │ automatically put │ │
│ │ │ into local lockout │ │
│ │ │ mode when brought │ │
│ │ │ online with ibfind() │ │
│ │ │ or ibdev(). │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcSPollTime │ 0x18 │ Sets timeout for │ device │
│ │ │ serial polls. The │ │
│ │ │ setting must be │ │
│ │ │ between 0 and 17, │ │
│ │ │ which correspond to │ │
│ │ │ the same time periods │ │
│ │ │ as in ibtmo(). │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcPPollTime │ 0x19 │ Sets timeout for │ board │
│ │ │ parallel polls. The │ │
│ │ │ setting must be │ │
│ │ │ between 0 and 17, │ │
│ │ │ which correspond to │ │
│ │ │ the same time periods │ │
│ │ │ as in ibtmo(). │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcEndBitIsNormal │ 0x1a │ If setting is nonzero │ board or device │
│ │ │ then the END bit of │ │
│ │ │ ibsta is set on │ │
│ │ │ reception of the │ │
│ │ │ end-of-string │ │
│ │ │ character or EOI │ │
│ │ │ (default). Otherwise │ │
│ │ │ END bit is only │ │
│ │ │ set on EOI. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcUnAddr │ 0x1b │ If setting is nonzero │ device │
│ │ │ then UNT (untalk) and │ │
│ │ │ UNL (unlisten) │ │
│ │ │ commands are │ │
│ │ │ automatically sent │ │
│ │ │ after a completed │ │
│ │ │ ibrd* or ibwrt* │ │
│ │ │ operation using this │ │
│ │ │ descriptor. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcHSCableLength │ 0x1f │ Configures the total │ board │
│ │ │ cable length in meters │ │
│ │ │ for your system, by │ │
│ │ │ sending the command │ │
│ │ │ bytes CFE and │ │
│ │ │ CFGn. This is │ │
│ │ │ required to enable │ │
│ │ │ high speed │ │
│ │ │ noninterlocked │ │
│ │ │ handshaking │ │
│ │ │ (a.k.a. HS488) and set │ │
│ │ │ associated handshake │ │
│ │ │ timings. Valid │ │
│ │ │ setting values │ │
│ │ │ are 0 through 15. │ │
│ │ │ A value of zero │ │
│ │ │ disables │ │
│ │ │ noninterlocked │ │
│ │ │ handshaking, │ │
│ │ │ otherwise the │ │
│ │ │ value is the total │ │
│ │ │ number of meters of │ │
│ │ │ cable. │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcIst │ 0x20 │ Sets the individual │ board │
│ │ │ status bit, a.k.a. │ │
│ │ │ 'ist'. Same as │ │
│ │ │ ibist(). │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcRsv │ 0x21 │ Sets the current │ board │
│ │ │ status byte this board │ │
│ │ │ will use to respond to │ │
│ │ │ serial polls. │ │
│ │ │ Same as ibrsv(). │ │
├─────────────────────┼─────────────────────────┼─────────────────────────────┼─────────────────────────┤
│ IbcBNA │ 0x200 │ Changes the GPIB │ device │
│ │ │ interface board used │ │
│ │ │ to access a device. │ │
│ │ │ The setting │ │
│ │ │ specifies the board │ │
│ │ │ index of the new │ │
│ │ │ access board. This │ │
│ │ │ configuration │ │
│ │ │ option is similar │ │
│ │ │ to ibbna() except │ │
│ │ │ the new board is │ │
│ │ │ specified by its board │ │
│ │ │ index instead of a │ │
│ │ │ name. │ │
└─────────────────────┴─────────────────────────┴─────────────────────────────┴─────────────────────────┘
RETURN VALUE
The value of ibsta is returned.
COPYRIGHT
Copyright © 2003-2006, 2008 Frank Mori Hess
linux-gpib 4.3.7 11/28/2025 IBCONFIG(3)