Program Interface Library AR_SET_PRELOAD_CONFIG
CEI-100/CEI-200/CEI-x20 User’s Manual 139
Some coordination is required when using multiple processes in
conjunction with a single CEI-x20 device. A single "board" process
should be launched first, followed later by one or more "channel"
processes. The "board" process should load the board (AR_LOADSLV),
configure board-specific parameters (e.g., AR_SET_TIMERRATE,
AR_TIMETAG_CONTROL, etc.), and launch the board (AR_GO). After
the "board" process launches the board using AR_GO, it is then
permissible to launch one or more "channel" processes. A "channel"
process should first attach to the board (AR_LOADSLV) and then execute
operations strictly confined to the particular channel(s) that the process is
associated with (e.g., AR_GETWORD, AR_PUTWORD,
AR_SET_CONFIG, etc.). When finished, the "channel" process should
call AR_CLOSE and terminate. The "board" process should remain
running until all "channel" processes have terminated. After that, the
"board" process should call AR_CLOSE and terminate. All processes
must exercise caution when modifying board settings that may impact
other concurrently-running processes.
Note that board setup/initialization is only executed in AR_LOADSLV if
no other processes have the board open. If another process has the board
open (that is, if another process has opened the board using
AR_LOADSLV but hasn't yet closed the board using AR_CLOSE),
AR_LOADSLV attaches to the device without re-initializing the board or
modifying board settings. Similarly, AR_CLOSE only shuts down the
board if no other processes have the board open. If another process has the
board open, AR_CLOSE detaches from the board without shutting it
down. Thus, board settings are preserved across "channel" process
invocations of AR_LOADSLV and AR_CLOSE. Note the importance of
matching every call to AR_LOADSLV with a call to AR_CLOSE in
multi-process mode.
Multi-process mode is only required when accessing a single board from
multiple processes. If multiple boards are installed, AR_CONC_NONE
concurrency mode can be used as long as only one process and thread
interfaces with each board.
If 'item' is ARU_INSTALL_INT_HANDLER, the 'value' parameter
indicates whether or not an internal interrupt handler should be installed
when the calling process executes AR_LOADSLV. If 'value' is
AR_FALSE (the default value), no int handler should be installed. If
'value' is AR_TRUE, AR_LOADSLV attempts to install an internal
interrupt handler if no internal interrupt handler has already been installed.
Note that internal interrupt handling is only supported by the CEI-820 and
is only available under Red Hat Ent 4 (kernels 2.6.17.13, 2.6.18, 2.6.20.14,
2.6.22.2, and 2.6.22.19 only). If internal interrupt handling is requested for
an unsupported board type or operating system, AR_LOADSLV fails.
Internal interrupt handling functionality was added to support receiver
'await data' mode; no user application interrupt handling capability is
provided. Either multi-process or multi-thread concurrency mode must be
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com