user_define_bulk
Description
Use this method to chirp with bulk memory.
Syntax
void user_define_bulk(UInt32* bulkMemory, UInt32* controlMemory, UInt32 numOfPoints)
Arguments
| bulkMemory | bulk memory that will be used for chirping |
| controlMemory | control bit words for each frequency |
| numOfPoints | number of frequencies to be chirped |
Return Value
None
Example
int i;
unsigned *u = new unsigned[16];
unsigned *c = new unsigned[16];
const unsigned FC_START = 0x800000;
const unsigned FC_STEP = 0x1000000;
for( i=1, u[0]=FC_START; i<16; i++ )
{
if ( (i-1) < 4 )
{
c[i-1] = 3;
u[i-1] = 0;
continue;
}
u[i]=u[i-1]+FC_STEP;
}
dsm.user_define_bulk( u, c, 16 );
delete u;
delete c;
Control Bit Words
The control bit words are basically two bits that represent the marker and phase reset. Bit 0 (LSB) controls whether the marker is high or low while bit 1 (second LSB) controls whether phase reset is on or off. For the marker bit, "0" sets the marker to low while "1" sets the marker to high. For the phase reset bit, "0" turns phase reset off while "1" turns phase reset is on. Here is a table showing the possible combinations of the control bit:
| Dec / Hex | Binary | Phase Reset | Marker |
| 0 / 0x0 | 00 | Off | Low |
| 1 / 0x1 | 01 | Off | High |
| 2 / 0x2 | 10 | On | Low |
| 3 / 0x3 | 11 | On | High |
Notes
This method will chirp the frequency words that are stored in an array. Note that there are two versions of this method. The method with two arguments will chirp the frequency words in the bulk memory array. The overloaded method with three arguments does the same but you also have the option of setting the markers as well as resetting the phase on a point-by-point basis. This gives you more control than setting the maker properties (marker1 and marker2) and the reset time properties (RESET_T1, RESET_T2, and RESET_T3) that only allow you to have a range of points. So basically, the method with three arguments will give you much finer control over your marker and reset options than the method with two arguments.
For example if you used the user_define_bulk method with two arguments and you wanted a chirp with 10,000 points then you can only set marker high for one range, say points 2000 through 3000. But if you use the overloaded method with three arguements, then you have the option of setting marker high for points 2000 through 3000 and then points 7446 through 8564. The same is true with the phase reset option.
If you decide to use user_define_bulk with three arguments, the default setting if you do not specify a control bit word in the control array is marker low and phase reset off or "0".
If you are using the user_define_bulk method with two arguments then you must set the marker1 and marker2 properties. If you are using the overloaded user_define_bulk method with three arguments, the marker1 and marker2 properties will be ignored and you must specify markers using the control array.
If you are using the user_define_bulk method with two arguments then you must set the RESET_T1, RESET_T2, and RESET_T3 properties. If you are using the overloaded user_define_bulk method with three arguments, the RESET_T1, RESET_T2, and RESET_T3 properties will be ignored and you must specify phase reset using the control array. It is recommended that when you set phase reset using the control bit words that you also set the corresponding frequency word to "0". For example if reset is turned on for points 100 through 199, the corresponding frequency words for those 100 points should be "0".
When you call the user_define_bulk method, the program will automatically download the data to the DSM. There is no need use the download method.