When AddRequest() is called on a particular Handle after a Go() or GoOne() call, all data from previous requests is lost and cannot
be retrieved by any of the Get functions until a Go function is called again. This is on a device by device basis, so you can call
AddRequest() with a different handle while a device is busy performing its I/O.
AddRequest() only clears the request and result lists on the device handle passed and only for the current thread. For example, if a
request is added to each of two different devices, and then a new request is added to the first device but not the second, a call to
Go() will cause the first device to execute the new request and the second device to execute the original request.
In general, the execution order of a list of requests in a single Go call is unpredictable, except that all configuration type requests
are executed before acquisition and output type requests.
AddRequestS() is a special version of the Add function where IOType is a string rather than a long. This is useful for passing string
constants in languages that cannot include the header file, and is generally used with all IOTypes except put/get config. The string
should contain the constant name as indicated in the header file (such as “LJ_ioANALOG_INPUT”). The declaration for the S
version of Add is the same as below except for (…, const char *pIOType, …).
AddRequestSS() is a special version of the Add function where IOType and Channel are strings rather than longs. This is useful for
passing string constants in languages that cannot include the header file, and is generally only used with the put/get config
IOTypes. The strings should contain the constant name as indicated in the header file (such as “LJ_ioPUT_CONFIG” and
“LJ_chLOCALID”). The declaration for the SS version of Add is the same as below except for (…, const char *pIOType, const char
*pChannel, …).
Declaration:
LJ_ERROR _stdcall AddRequest ( LJ_HANDLE Handle,
long IOType,
long Channel,
double Value,
long x1,
double UserData)
Parameter Description:
Returns: LabJack errorcodes or 0 for no error.
Inputs:
Handle
– Handle returned by OpenLabJack().
IOType
– The type of request. See Section 4.3.
Channel
– The channel number of the particular IOType.
Value
– Value passed for output channels.
x1
– Optional parameter used by some IOTypes.
UserData
– Data that is simply passed along with the request, and returned unmodified by GetFirstResult() or
GetNextResult(). Can be used to store any sort of information with the request, to allow a generic parser to determine what
should be done when the results are received.
Outputs:
None
4.2.6 - Go()
After using AddRequest() to make an internal list of requests to perform, call Go() to actually perform the requests. This function
causes all requests on all open LabJacks to be performed. After calling Go(), call GetResult() or similar to retrieve any returned
data or errors.
Go() can be called repeatedly to repeat the current list of requests. Go() does not clear the list of requests. Rather, after a call to
Go(), the first subsequent AddRequest() call to a particular device will clear the previous list of requests on that particular device
only.
Note that for a single Go() or GoOne() call, the order of execution of the request list cannot be predicted. Since the driver does
internal optimization, it is quite likely not the same as the order of AddRequest() function calls. One thing that is known, is that
configuration settings like ranges, stream settings, and such, will be done before the actual acquisition or setting of outputs.
Declaration:
LJ_ERROR _stdcall Go()
Parameter Description:
Returns: LabJack errorcodes or 0 for no error.
Inputs:
None
Outputs:
None
4.2.7 - GoOne()
After using AddRequest() to make an internal list of requests to perform, call GoOne() to actually perform the requests. This
function causes all requests on one particular LabJack to be performed. After calling GoOne(), call GetResult() or similar to
retrieve any returned data or errors.
GoOne() can be called repeatedly to repeat the current list of requests. GoOne() does not clear the list of requests. Rather, after a
particular device has performed a GoOne(), the first subsequent AddRequest() call to that device will clear the previous list of
requests on that particular device only.
Note that for a single Go() or GoOne() call, the order of execution of the request list cannot be predicted. Since the driver does
internal optimization, it is quite likely not the same as the order of AddRequest() function calls. One thing that is known, is that
configuration settings like ranges, stream settings, and such, will be done before the actual acquisition or setting of outputs.
Declaration:
LJ_ERROR _stdcall GoOne( LJ_HANDLE Handle )
Parameter Description:
Returns: LabJack errorcodes or 0 for no error.
Inputs:
Handle
– Handle returned by OpenLabJack().
Outputs:
None
4.2.8 - GetResult()
Calling either Go function creates a list of results that matches the list of requests. Use GetResult() to read the result and errorcode
for a particular IOType and Channel. Normally this function is called for each associated AddRequest() item. Even if the request
28