Common_API -
ate
auto_armed
Clock_Frequency
code
data_length
data_length_enable
data_length_offset
delay
Dump_Directory
guard_length
loop_count
marker1_enabled
marker1_polarity
marker1_start
marker1_width
marker2_enabled
marker2_polarity
marker2_start
marker2_width
marker3_enabled
marker3_polarity
marker3_start
marker3_width
memory_clock
memory_clock_advance
memory_depth
memory_dll
memory_dump
module_id_number
over_sampling_rate
slave_mode
status
sync_T1
sync_T2
synci_enable
synco_enable
trigger
upage_available
user_page
user_page_used_count
waveform_parameter_u0...7
Please note that any methods or properties that appear in your Object Browser but are not mentioned in this API manual should not be used. They exist for back-compatibility with older modules, but they cannot be used in the current AWG modules.
ate
Description
Specifies ATE setting.
Syntax
Read
Gets current status of ATE.
Example
bool ateStatus;
ateStatus = awg.ate;
Write
Sets new ATE status;
Example
awg.ate = false;
Notes
Please refer to the AWG manual for a more detailed description of ATE.
auto_armed
Description
Specifies Auto-Arm status.
Syntax
Read
Gets status of Auto-Arm.
Example
bool autoArmStatus;
autoArmStatus = awg.auto_armed;
Write
Sets Auto-Arm status.
Example
awg.auto_armed = false;
Notes
Usually you should only use Auto-Arm if you are in Master mode. For a more detailed explanation of Auto-Arm please see the AWG manual.
Clock_Frequency
Description
Specifies the input clock into the AWG
Syntax
Read
Gets the current input clock frequency
Example
double inputClock;
inputClock = awg.Clock_Frequency;
Write
Sets new input clock frequency
Example
awg.Clock_Frequency = 2e9;
Notes
The Clock_Frequency should be specified in units of Hz.
code
Description
Specifies waveform code.
Syntax
Read
Gets the current waveform code.
Example
int wfCode;
wfCode = awg.code;
Write
Sets new waveform code.
Example
awg.code = 1;
Configurations
| Code | Description | Waveform Parameters |
| 1 | Sine | Frequency (Hz) |
| 2 | Sine A/B |
A=numerator,
B=denominator, where A/B is a fraction of the clock frequency |
| 3 | Two Tones |
A=numerator,
B=denominator, where A/B is a fraction of the clock frequency for tone 1 C=numerator, D=denominator, where C/D is a fraction of the clock frequency for tone 2 |
| 4 | N Tones |
Frequency,
Amplitude (dBc) relative to full scale, Phase (degrees) |
| 21 |
Chirp (Phase Coherent) |
Fstart=Start Frequency,
Fstop=Stop Frequency, T1=Delay until Fstart, T2=Chirp time, T3=Delay after Fstop |
| 22 |
Chirp (Phase Continuous) |
Fstart=Start Frequency,
Fstop=Stop Frequency, T1=Delay until Fstart, T2=Chirp time, T3=Delay after Fstop |
| 31 | Ramp |
A=numerator,
B=denominator, where A/B is the slope of the ramp. |
| 50 | Pulse |
Tini=Start time,
Tr=Rise time, T=Pulse Width, Tf=Fall time, Amp=Amplitude [hex] |
| 101 | Constant | Value [hex] in absolute value |
| 256 | User Defined | .uda user defined waveform file or user_define_bulk method |
Notes
You must specify the waveform code so that the API knows how to use the waveform parameters you specify.
data_length
Description
Specifies the Data Length which is the amount of memory addresses to make available for the waveform. The larger the Data Length, the more data that can be output.
Syntax
Read
Gets the current Data Length.
Example
unsigned wfDL;
wfDL = awg.data_length;
Write
Sets the new Data Length.
Example
awg.data_length = 0x40;
Notes
The Data Length should always be either shorter or equal to the Memory Depth. If you want the AWG to go back to the starting value before reaching the Memory Depth, you should turn on the Data Length Enable feature using the data_length_enable property. You would use the Data Length Enable feature if the number of data values in your waveform is not equal to Memory Depth settings. Please note that even if the Data Length Enable feature is disabled, you should still specify the correct Data Length. For example, if the number of data values in your desired waveform were 65,536, and if you then set the Memory Depth to 65536 and disabled the Data Length Enable feature, you still would need to set Data Length to the hexadecimal equivalent of 65536 (10000).
The Data Length is useful for users who want a duty cycle waveform. To do this, set the Data Length but set the data_length_enable to "false". The module will output the waveform data up to the Data Length and then will output the starting amplitude until it reaches the Memory Depth. To see the different patterns of waveforms available, please see the AWG Manual.
Users who want a duty cycle waveform but who have a total number of data values not equal to one of the Memory Depth settings can use the user_define_bulk or the user_define_file functions.
Data Length will not work for waveforms that have data shorter than 1000 values even if Data Length is enabled.
data_length_enable
Description
Specifies whether Data Length Enable is enabled or disabled.
Syntax
Read
Sees if Data Length Enable is enabled or disabled.
Example
bool dataLengthEnable;
dataLengthEnable = awg.data_length_enable;
Write
Enables or disables Data Length Enable.
Example
awg.data_length_enable = true;
Notes
Data Length Enable causes the Memory Depth to match the Data Length. Data Length will not be available to you for waveforms that have data shorter than 1000 values even if Data Length Enable is enabled.
data_length_offset
Description
Specifies the Data Length Offset. At 2.5 Ghz, it is best to set this to 0x192.
Syntax
Read
Gets current Data Length Offset.
Example
unsigned dataLengthOffset;
dataLengthOffset = awg.data_length_offset;
Write
Sets new Data Length Offset.
Example
awg.data_length_offset = 0x192;
delay
Description
Specifies the delay which is the number of memory addresses to keep at the start value before the waveform starts.
Syntax
Read
Gets current delay.
Example
unsigned wfDelay;
wfDelay = awg.delay;
Write
Sets new delay.
Example
awg.delay = 0xFF;
Notes
Please note that the delay length is included in the Data Length and Memory Depth. This means that if you had 100 data values in the waveform and you had Memory Depth (or Data Length) set to 100 points and delay set to 10 points, then the AWG will output the start value for the first 10 points and then will only proceed through the first 90 values (including the start value) that you specified before then starting over again.
Dump_Directory
Description
Specifies where to save memory dump files.
Syntax
Read
Gets the current location of memory dump files.
Example
String^ dumpDirectory;
dumpDirectory = awg.Dump_Directory;
Write
Sets new location for memory dump files. Specified as a string so must have double quotes.
Example
awg.File_Directory = ".\MD";
guard_length
Description
Specifies the guard length before starting the first waveform output.
Syntax
Read
Gets the current guard length.
Example
unsigned guardLength;
guardLength = awg.guard_length;
Write
Sets the new guard length.
Example
awg.guard_length = 0x30;
Notes
The default guard_length is 0x40. If you are operating multiple modules with a master-slave configuration, you should shorten the guard length of the slave module(s) to compensate for the delay in receiving the synchronization input (SYNCI) signal. If this value is set too close to zero, then the first waveform output may have errors.
loop_count
Description
Specifies the loop count of the waveform.
Syntax
Read
Gets the current loop count.
Example
unsigned loopCount;
loopCount = awg.loop_count;
Write
Sets the new loop count.
Example
awg.loop_count = 0xA;
Notes
When this property is set to "0", the loop count is set to infinite so the module will be in Free Run mode. Be sure to set this property at the start of every waveform, especially if you want the module to be operated in Free Run mode. Failure to set loop_count might result in unpredictable behavior by the module.
marker1_enabled
Description
Specifies marker signal status.
Syntax
Read
Gets Marker 1 status.
Example
bool markerStatus;
marker1Status = awg.marker1_enabled;
Write
Read-Only
Notes
There are three sets of markers listed in the Object Browser. Marker 1 is always enabled and its polarity cannot be changed.
marker1_polarity
Description
Selects the polarity of the output marker.
Syntax
Read
Gets polarity of output marker.
Example
bool markerPolarity;
markerPolarity = awg.marker1_polarity;
Write
Read-Only
Notes
There are three sets of markers listed in the Object Browser. Marker 1 is always enabled and its polarity cannot be changed.
marker1_start
Description
Specifies the starting point of the output marker.
Syntax
Read
Gets the starting point of the marker.
Example
unsigned markerStart;
markerStart = awg.marker1_start;
Write
Sets the starting point of the marker.
Example
awg.marker1_start = 10;
Notes
There are three sets of markers listed in the Object Browser.
marker1_width
Description
Specifies how many data points the marker is active for.
Syntax
Read
Gets the width of the marker.
Example
unsigned markerWidth;
markerWidth = awg.marker1_width;
Write
Sets the width of the marker.
Example
awg.marker1_width = 100;
Notes
There are three sets of markers listed in the Object Browser.
marker2_enabled
Description
Specifies marker signal status.
Syntax
Read
Gets markers status.
Example
bool markerStatus;
markerStatus = awg.marker2_enabled;
Write
Sets new markers status.
Example
awg.marker2_enabled = true;
Notes
There are three sets of markers listed in the Object Browser.
marker2_polarity
Description
Selects the polarity of the output marker.
Syntax
Read
Gets polarity of output marker.
Example
bool markerPolarity;
markerPolarity = awg.marker2_polarity;
Write
Sets polarity of output marker.
Example
awg.marker2_polarity = false;
Notes
There are three sets of markers listed in the Object Browser.
marker2_start
Description
Specifies the starting point of the output marker.
Syntax
Read
Gets the starting point of the marker.
Example
unsigned markerStart;
markerStart = awg.marker2_start;
Write
Sets the starting point of the marker.
Example
awg.marker2_start = 10;
Notes
There are three sets of markers listed in the Object Browser.
marker2_width
Description
Specifies how many data points the marker is active for.
Syntax
Read
Gets the width of the marker.
Example
unsigned markerWidth;
markerWidth = awg.marker2_width;
Write
Sets the width of the marker.
Example
awg.marker2_width = 100;
Notes
There are three sets of markers listed in the Object Browser.
marker3_enabled
Description
Specifies marker signal status.
Syntax
Read
Gets markers status.
Example
bool markerStatus;
markerStatus = awg.marker3_enabled;
Write
Sets new markers status.
Example
awg.marker3_enabled = true;
Notes
There are three sets of markers listed in the Object Browser.
marker3_polarity
Description
Selects the polarity of the output marker.
Syntax
Read
Gets polarity of output marker.
Example
bool markerPolarity;
markerPolarity = awg.marker3_polarity;
Write
Sets polarity of output marker.
Example
awg.marker3_polarity = false;
Notes
There are three sets of markers listed in the Object Browser.
marker3_start
Description
Specifies the starting point of the output marker.
Syntax
Read
Gets the starting point of the marker.
Example
unsigned markerStart;
markerStart = awg.marker3_start;
Write
Sets the starting point of the marker.
Example
awg.marker3_start = 10;
Notes
There are three sets of markers listed in the Object Browser.
marker3_width
Description
Specifies how many data points the marker is active for.
Syntax
Read
Gets the width of the marker.
Example
unsigned markerWidth;
markerWidth = awg.marker3_width;
Write
Sets the width of the marker.
Example
awg.marker3_width = 100;
Notes
There are three sets of markers listed in the Object Browser.
memory_clock
Description
Toggles memory clock either low or high;
Syntax
Read
Write-Only
Write
Toggles memory clock for "1" and "0" for low.
Example
awg.memory_clock = 0;
Notes
You should only toggle the memory clock when the memory is stopped.
memory_clock_advance
Description
Specifies how many memory addresses to skip.
Syntax
Read
Write-Only
Write
Advances memory by amount user specifies.
Example
awg.memory_clock_advance = 6;
Notes
You should only advance the memory address when the memory is stopped.
memory_depth
Description
Specifies the Memory Depth which is the maximum number of memory addresses to make available in the device.
Syntax
Read
Gets the current Memory Depth.
Example
unsigned memoryDepth;
memoryDepth = awg.memory_depth;
Write
Sets a new Memory Depth.
Example
awg.memory_depth = 0x100000;
Notes
Memory Depth is a hardware limited setting.
You should always set the memory depth to 0x100000 to be able to use the full memory depth. If the number of data in your waveform is not equal to the memory depth, you must set the Data Length using the data_length property.
memory_dll
Description
Gets memory DLL status.
Syntax
Read
Sees if memory DLL is on or off.
Example
bool memDLLStatus;
memDLLStatus = awg.memory_dll;
Write
Sets new memory DLL status.
Example
awg.memory_dll = true;
Notes
For a more detailed explanation of the memory DLL please see the AWG manual.
memory_dump
Description
Gets memory dump setting status.
Syntax
Read
Sees if memory dump is on or off.
Example
bool memDumpStatus;
memDumpStatus = awg.memory_dump;
Write
Sets memory dump status on or off.
Example
awg.memory_dump = true;
Notes
The memory dump contains the data you plan to download to the module. If you ever need to debug your code, it may at times be helpful to dump the memory and see if your code is generating the data you expect.
module_id_number
Description
Specifies the identification number of the board
Syntax
Read
Reads the identification number of board.
Example
unsigned moduleID;
moduleID = awg.module_id_number;
Write
Read-only.
Notes
If you have various Euvis modules, you may want to ensure that you are running your code on the correct module by checking the module_id_number at the beginning of your code.
over_sampling_rate
Description
Specifies the oversampling factor.
Syntax
Read
Gets the current oversampling factor.
Example
int oversamplingFactor;
oversamplingFactor = awg.over_sampling_rate;
Write
Sets new oversampling factor.
Example
awg.over_sample_rate = 2;
Notes
When this property is set to "1", the oversampling factor is 1. When set to "2", the oversampling factor is 2. When set to "3", the oversampling factor is 4. For more information regarding the oversampling factor, please see the AWG manual.
slave_mode
Description
Specifies the Slave mode status.
Syntax
Read
Gets current Slave mode status.
Example
bool slaveModeStatus;
slaveModeStatus = awg.slave_mode;
Write
Sets new Slave mode status.
Example
awg.slave_mode = false;
Notes
If you intend to be in Master or Slave mode, please remember to set the loop count with the loop_count property.
This property is also used to arm the Slave mode board. To arm the board, simply set the property to "true":
awg.slave_mode = true;
status
Description
Specifies updated status of device.
Syntax
Read
Gets the status of the device. Refer to table below for description of status configurations.
Example
unsigned deviceStatus;
deviceStatus = awg.status;
Write
Read-Only
Configurations
| Decimal | Hex Code | Binary Code | Status |
| 1 | 0x1 | 00000001 | Armed |
| 2 | 0x2 | 00000010 | Triggered |
| 4 | 0x4 | 00000100 | In Loop |
| 8 | 0x8 | 00001000 | Auto-Armed |
| 16 | 0x10 | 00010000 | Slave |
| 32 | 0x20 | 00100000 | Slave Wait |
| 64 | 0x40 | 01000000 | Infinite Loop |
| 128 | 0x80 | 10000000 | Data Length Enabled |
Note that the device can be simutaneously be in multiple states. In binary code, each "1" bit represents a state. If there is more than one state, then the binary code will have multiple "1" bits. For example if the device was Armed, Triggered, In Loop and Auto-Armed, then the binary code would be "00001111". Status can be output in any format so it is best to output it in binary code.
sync_T1
Description
Specifies the TSYNC1 time.
Syntax
Read
Gets the current TSYNC1 time.
Example
unsigned tSync1;
tSync1 = awg.sync_T1;
Write
Sets a new TSYNC1 time. Minimum value of "0x0" and maximum value of "0xFF" (255).
Example
awg.sync_T1 = 0xAA;
Notes
This property is only available if SYNCO is enabled with the synco_enable property. For a more detailed discussion of the TSYNC1 time, please see the AWG Manual.
sync_T2
Description
Specifies the TSYNC2 time.
Syntax
Read
Gets the current TSYNC2 time.
Example
unsigned tSync2;
tSync2 = awg.sync_T2;
Write
Sets a new TSYNC2 time. Specified. Minimum value of "0x0" and maximum value of "0xFF" (255).
Example
awg.sync_T2 = 0xBB;
Notes
This property is only available if SYNCO is enabled with the synco_enable property. For a more detailed discussion of the TSYNC1 time, please see the AWG Manual.
synci_enable
Description
Specifies internal SYNCI status.
Syntax
Read
Gets status of internal SYNCI.
Example
bool synciStatus;
synciStatus = awg.synci_enable;
Write
Sets new internal SYNCI status.
Example
awg.synci_enable = false;
Notes
For more information on the Internal SYNCI signal please see the AWG manual.
synco_enable
Description
Specifies SYNCO signal status.
Syntax
Read
Gets current status of SYNCO signal.
Example
bool syncoStatus;
syncoStatus = awg.synco_enable;
Write
Sets new SYNCO signal status.
Example
awg.synco_enable = true;
Notes
The SYNCO signal should normally only be used to synchronize a Slave board. The SYNCO signal is always off when in Slave mode regardless of the synco_enable setting.
trigger
Description
Pulses the software trigger
Syntax
Read
Write-only
Write
Activates the software trigger
Example
awg.trigger = 1;
Notes
To activate the trigger, simply set the property to "1". There is no need to reset it to "0" after activating it.
upage_available
Description
Specifies the number of uPage memory partitions that remain available to use.
Syntax
Read
Gets number of available uPages.
Example
int uPageAvailable;
uPageAvailable = awg.upage_available;
Write
Read-only.
Notes
There are 15 uPage memory partitions available. A user page may use more than one uPage, however a uPage cannot be used for more than one user page..
user_page
Description
Specifies the user page to use for the current waveform.
Syntax
Read
Gets current user page number.
Example
int userPageNumber;
userPageNumber = awg.user_page;
Write
Sets new user page number.
Example
awg.user_page = 0;
Notes
The first user page is numbered 0. Remember to set the user page again before starting the waveform. After starting the waveforms on each page, you can switch to the other pages without having to restart the waveforms.
user_page_used_count
Description
Specifies the number of user pages already used.
Syntax
Read
Gets the number of user page already used.
Example
int userPageUsed;
userPageUsed = awg.user_page_used_count;
Write
Read-only.
Notes
The maximum number of user pages you can have is 15, if the data length of each user page does not exceed one uPage. The only data length restriction on a user page is that it must not exceed the remaining available memory.
waveform_parameter_u0...7
Description
Specifies the waveform-specific parameters to use.
Syntax
Read
Write-only
Write
Sets new waveform parameter(s).
Example
awg.waveform_parameter_u0 = 1;
awg.waveform_parameter_u1 = 0x10;
Notes
The waveform parameters are used to calculate the data used for the waveforms, and
the purpose of each parameter depends on which waveform style you specified earlier
using the code parameter.
Sine A/B uses two parameters, one for the numerator and the other for the denominator.
Any extra parameters you set will be ignored. For a list of the Waveform Parameters
corresponding to each waveform style, please see the table in the description of
the code parameter.