Agilent Technologies N5183A MXG User Manual

Page 343

Advertising
background image

Agilent N518xA, E8663B, E44x8C, and E82x7D Signal Generators Programming Guide

333

Creating and Downloading User-Data Files

Save and Recall Instrument State Files

NOT appended to the block and END is not sent at the conclusion of the

write.*/

static public void WriteFileBlock(uint device, string fileName)

{

// Make sure that the file exists, otherwise sends a null block

if (File.Exists(fileName))

{

FileStream fs = new FileStream(fileName, FileMode.Open);

// Send the definite block header: #{lengthDataLength}{dataLength}

string fileSize = fs.Length.ToString();

string fileSizeLength = fileSize.Length.ToString();

WriteDevice(device, "#" + fileSizeLength + fileSize, false);

// Don't set END at the end of writes

VisaInterop.SetAttribute(device, VisaAttribute.SendEndEnable, 0);

// Write the file block to the signal generator

byte[] readBuf = new byte[TRANSFER_BLOCK_SIZE];

int numRead = 0;

uint retCount = 0;

while ((numRead = fs.Read(readBuf, 0, TRANSFER_BLOCK_SIZE)) != 0)

{

VisaInterop.Write(device, readBuf, (uint)numRead, out retCount);

}

// Go ahead and set END on writes

VisaInterop.SetAttribute(device, VisaAttribute.SendEndEnable, 1);

// Done with file

fs.Close();

}

else

{

// Send an empty definite block

WriteDevice(device, "#10", false);

}

}

}

// Declaration of VISA device access constants

public enum VisaAccessMode

{

NoLock = 0,

ExclusiveLock = 1,

SharedLock = 2,

Advertising
This manual is related to the following products: