USING THE COMBISCOPE INSTRUMENTS 3 - 59
3.10.3 Writing data to trace memory
The TRACe command allows you to write data from the controller into a memory
register. The following possibilities are available:
•
Write a previously read trace using the TRACe? query.
Example:
Send → TRACe? CH3 ’Queries for CH3 trace
Read ← <trace block> ’Reads trace data block
Send → TRACe M2_3,<trace block> ’Writes data block to M2_3
The result is that trace area M2_3 is filled with the acquisition trace of channel 3.
Programming note:
The fixed command part (TRACe M2_3,) and the variable <trace block>
must be sent separately. So, no EOI (End Or Identify) detection in
between. Also the <trace block> must be sent without EOI detection and
detection of the EOL (End Of Line) code, because the <trace block> could
contain the EOL character, e.g., code 10 for CR
.
•
Write a trace of identical constants (range = -32767 ... 32767).
Example:
Send → TRACe M2_4,1028 ’1028 = 1024 + 4 = 0404 hex.
This command fills all memory register M2_4 locations with the constant 0404
hexadecimal for 16-bit samples, and with 04 hexadecimal for 8-bit samples.
Note: A trace can only be written to memory register space (Mi_n) and not
to acquisition space (CHn).
PROGRAM EXAMPLE:
DIM response AS STRING
*
2000 ’
Dimensions trace buffer
CALL Send(0, 8, "TRACe? CH1", 1) ’
Requests for channel 1 trace
CALL Receive(0, 8, response$, 256) ’
Reads the channel 1 trace
length = IBCNT% ’
IBCNT = number of data bytes
CALL Send(0, 8, "TRACe M2_3,", 0) ’
Sends fixed command part without EOI
CALL Send(0, 8, LEFT$(response$,length), 0)
’
Sends variable <trace block> without EOI
CALL Send(0, 8, "", 1) ’
Sends dummy string with EOI detection