IBCONFIG(3)
π IBCONFIG(3) β Traditional API Functions π
okay bestie, pull up a chair, we're in section 3 of the manual and it's time to talk about ibconfig β¨
πΈ NAME πΈ
ibconfig β change configuration (board or device) π
like. literally the glow-up function. it changes stuff. slay.
β¨ SYNOPSIS β¨
#include <gpib/ib.h>
int ibconfig(int ud, int option, int setting);
look at her. three little ints. no notes. π
π¦ DESCRIPTION π¦
so here's the tea, bestie π β ibconfig() changes a whole bunch of configuration settings that are attached to either a board</> or a device</> descriptor, and you point at which one you mean with ud.
now, ibconfig() is not out here guessing what you want. it's not a mind reader. you have to tell it:
- the
optionargument β this is the specific setting you wanna mess with. pick your fighter. π - the
settingargument β this is the new configuration value you want that option to have. the fresh fit. the new era. β¨
that's the whole vibe: option says what, setting says what it becomes. periodt.
and if you're sitting there like "hmm, but what is this descriptor configured as right now"β genuinely fair, valid, iconic questionβ that's a completely different function. to query the descriptor's configuration, you go see ibask(). not this one. this one is for setting. don't get it twisted, iykyk π
π real talk though:ibconfig()sets things,ibask()asks things. one gives, one receives. main character energy on both sides honestly.
β¨ OPTIONS β¨
π Table 6. ibconfig options
okay bestie, here's the tea β Table 6. ibconfig options β every option, its hexadecimal value, what it does, and whether it's for a board, a device, or both. No cap, just facts with a little sparkle. β¨
Columns are: option, value (hexadecimal), effect, used for board/device.
IbcPADβ value:0x1β sets GPIB primary address. Same asibpad(). β used for: board or device. πIbcSADβ value:0x2β sets GPIB secondary address. Same asibsad(). β used for: board or device. πIbcTMOβ value:0x3β sets timeout for io operations. Same asibmto(). β used for: board or device. β³IbcEOTβ value:0x4β if setting is nonzero, EOI is asserted with last byte on writes. Same asibeot(). β used for: (blank). π¦IbcPPCβ value:0x5β sets parallel poll configuration. Same asibppc(). β used for: board. π₯IbcREADDRβ value:0x6β not implemented, included for compatibility only. Deviceibrd*andibwrt*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. β used for: device. πIbcAUTOPOLLβ value:0x7β if setting is nonzero then automatic serial polling is enabled. β used for: board. πΈIbcCICPROTβ value:0x8β useless, included for compatibility only. β used for: board. πIbcSCβ value:0xaβ if setting is nonzero, board becomes system controller. Same asibrsc(). β used for: board. πIbcSREβ value:0xbβ if setting is nonzero then board asserts REN when it becomes system controller otherwise REN is not asserted. It is nonzero by default. Seeibrsc(). β used for: board. πIbcEOSrdβ value:0xcβ if setting is nonzero then reads are terminated on reception of the end-of-string character. Seeibeos(), in particular the REOS bit. β used for: board or device. πIbcEOSwrtβ value:0xdβ if setting is nonzero then EOI is asserted whenever the end-of-string character is
β¦sent. See ibeos(), in particular the XEOS bit. π
IbcEOScmp(0xe) β okay so if the setting is nonzero, then all 8 bits are used to match the end-of-string character. Otherwise, only the least significant 7 bits are used. Go peek atibeos(), specifically theBINbit. β¨ (board or device)IbcEOSchar(0xf) β sets the end-of-string byte.ibeos()is right there, bestie. π (board or device)IbcPP2(0x10) β if the setting is nonzero, the board is put into local parallel poll configure mode (IEEE 488.1 PP2 subset), and it 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 ofibppc(). 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. π (board)IbcTIMING(0x11) β sets the T1 delay. Use setting1for 2 microseconds,2for 500 nanoseconds, or3for 350 nanoseconds. These values are declared in the header files as the constantsT1_DELAY_2000ns,T1_DELAY_500ns, andT1_DELAY_350ns. A 2 microsecond T1 delay is safest, but will limit maximum transfer speeds to a few hundred kilobytes per second. π¦ (board)IbcReadAdjust(0x13) β if the setting is nonzero, then byte pairs are automatically swapped during reads. Presently, this feature is unimplemented. π (board or device)IbcWriteAdjust(0x14) β if the setting is nonzero, then byte pairs are automatically swapped during writes. Presently, this feature is unimplemented. π (board or device)IbcEventQueue(0x15) β if the setting is nonzero, then the event queue is enabled. The
okay so here's the rest of the config table, bestie β¨ y'all ready? π
IbcSPollBit(0x16, board) β if this setting is nonzero, then the use of theSPOLLbit inibstais enabled. πIbcSendLLO(0x17, board) β if the setting is nonzero, then devices connected to this board are automatically put into local lockout mode when brought online withibfind()oribdev(). no cap, it just does that. π₯IbcSPollTime(0x18, device) β sets the timeout for serial polls. The setting must be between0and17, and those correspond to the same time periods as inibtmo(). β³IbcPPollTime(0x19, board) β sets the timeout for parallel polls. The setting must be between0and17, which correspond to the same time periods as inibtmo(). parallel queen behavior fr πIbcEndBitIsNormal(0x1a, board or device) β if the setting is nonzero, then theENDbit ofibstais set on reception of the end-of-string character orEOI(that's the default, btw). Otherwise theENDbit is only set onEOI. πΈIbcUnAddr(0x1b, device) β if the setting is nonzero, thenUNT(untalk) andUNL(unlisten) commands are automatically sent after a completedibrd*oribwrt*operation using this descriptor. it's giving polite cleanup energy π§ΉIbcHSCableLength(0x1f, board) β configures the total cable length in meters for your system, by sending the command bytesCFEandCFGn. This is required to enable high speed noninterlocked handshaking (a.k.a.HS488) and set associated handshake timings. Valid setting values are0through15. A value of zero disables noninterlocked handshaking; otherwise the value is the total number of meters of cable. πIbcIst(0x20, board) β sets the individual status bit, a.k.a.'ist'. Same asibist(). iconic. β¨IbcRsv(0x21, board) β sets the current status byte this board will use to respond to serial polls. Same asibrsv(). πIbcBNA(0x200, device) β changes the GPIB interface board used to access a device. The setting specifies the board index of the new access board. This configuration option is similar toibbna()except the new board is specified by its board index instead of a name. glow up for your board mapping π¦
β¨ RETURN VALUE β¨
The value of ibsta is returned. that's the whole vibe. π
π COPYRIGHT π
okay bestie this is the part where we give credit where credit is SO deserved π«Άβ¨
Copyright Β© 2003-2006, 2008 Frank Mori Hess
That's it, that's the whole vibe. Frank Mori Hess wrote this, the copyright covers those years β 2003 through 2006, and then again in 2008 (not a continuous stretch, literally two separate chunks, don't @ me) β and that's the legal tea βπ
no notes, no plot twists, just a legend getting their flowers πΈπ
and THAT'S the whole page, bestie!! you made it to the end, I'm so proud of you fr fr ππ this gorgeous manual page came from linux-gpib version 4.3.7, and the date on it is 07/06/2026 β so yeah, you're reading a certified, timestamped, official document π go forth and configure your GPIB devices like the main character you are, ok?? slay β¨ππ¦
π¦ where this page comes from
- ubuntu stonking: libgpib-doc 4.3.7-6 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms