IBCONFIG(3)

πŸ“¦
version 4.3.7 Β· 2 versions
, in ubuntu stonking

πŸ’– 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 option argument β€” this is the specific setting you wanna mess with. pick your fighter. πŸŽ€
  • the setting argument β€” 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 as ibpad(). β€” used for: board or device. πŸŽ€
  • IbcSAD β€” value: 0x2 β€” sets GPIB secondary address. Same as ibsad(). β€” used for: board or device. πŸ’–
  • IbcTMO β€” value: 0x3 β€” sets timeout for io operations. Same as ibmto(). β€” used for: board or device. ⏳
  • IbcEOT β€” value: 0x4 β€” if setting is nonzero, EOI is asserted with last byte on writes. Same as ibeot(). β€” used for: (blank). πŸ¦‹
  • IbcPPC β€” value: 0x5 β€” sets parallel poll configuration. Same as ibppc(). β€” used for: board. πŸ”₯
  • IbcREADDR β€” value: 0x6 β€” not implemented, 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. β€” 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 as ibrsc(). β€” 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. See ibrsc(). β€” used for: board. 🌈
  • IbcEOSrd β€” value: 0xc β€” if setting is nonzero then reads are terminated on reception of the end-of-string character. See ibeos(), 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 at ibeos(), specifically the BIN bit. ✨ (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 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. πŸ‘‘ (board)
  • IbcTIMING (0x11) β€” sets the T1 delay. Use setting 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. πŸ¦‹ (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 the SPOLL bit in ibsta is 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 with ibfind() or ibdev(). no cap, it just does that. πŸ”₯
  • IbcSPollTime (0x18, device) β€” sets the timeout for serial polls. The setting must be between 0 and 17, and those correspond to the same time periods as in ibtmo(). ⏳
  • IbcPPollTime (0x19, board) β€” sets the timeout for parallel polls. The setting must be between 0 and 17, which correspond to the same time periods as in ibtmo(). parallel queen behavior fr πŸ’–
  • IbcEndBitIsNormal (0x1a, board or device) β€” if the setting is nonzero, then the END bit of ibsta is set on reception of the end-of-string character or EOI (that's the default, btw). Otherwise the END bit is only set on EOI. 🌸
  • IbcUnAddr (0x1b, device) β€” if the setting is nonzero, then UNT (untalk) and UNL (unlisten) commands are automatically sent after a completed ibrd* or ibwrt* 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 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, board) β€” sets the individual status bit, a.k.a. 'ist'. Same as ibist(). iconic. ✨
  • IbcRsv (0x21, board) β€” sets the current status byte this board will use to respond to serial polls. Same as ibrsv(). πŸ’œ
  • 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 to ibbna() 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. πŸ’…

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