NAME
hpib_send_cmnd() — send command bytes over HP-IB (OBSOLETED AT 10.30)
SYNOPSIS
#include <dvio.h>
int hpib_send_cmnd(int eid, const char *ca, int length);
DESCRIPTION
hpib_send_cmnd()
sends specified arbitrary bytes of information on the
HP-IB
with the
ATN
line asserted, providing a means to configure and control the bus.
eid
is an entity identifier of an open
HP-IB
raw bus device file obtained from an
open(),
dup(),
fcntl(),
or
creat()
call.
ca
is a character pointer to a string of bytes to be written to the
HP-IB
bus as commands.
length
is an integer specifying the number of bytes in the string pointed to by
ca.
The interface must currently be the active controller
in order to send commands over the bus.
Note that for all
HP-IB
interfaces, both built-in and plug-in,
the most significant bit of each byte
is overwritten with a parity bit.
All commands are written with odd parity.
RETURN VALUE
hpib_send_cmnd()
returns 0 (zero) if successful, or -1 if an error was encountered.
ERRORS
hpib_send_cmnd()
fails under the following circumstances, and sets
errno
(see
errno(2))
to the value in square brackets:
- [EBADF]
eid
does not refer to an open file.
- [ENOTTY]
eid
does not refer to an
HP-IB
raw bus device file.
- [EIO]
the interface is not currently the active controller.
- [ETIMEDOUT]
a timeout occurred.
- [EACCES]
The interface associated with this
eid
is locked by another process and
O_NDELAY
is set for this
eid
(see
io_lock(3I)).
- [EINVAL]
The value specified for
length
is invalid, either less than or
equal to 0 or greater than
MAX_HPIB_COMMANDS
as defined in
<dvio.h>.
DEPENDENCIES
If the interface is not currently the active controller,
hpib_send_cmnd()
sets
errno
to
[EACCES]
instead of
[EIO].
AUTHOR
hpib_send_cmnd()
was developed by HP.