
344 Agilent N516xA, N518xA, E8663B, E44x8C, and E82x7D Signal Generators Programming Guide
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,
Komentarze do niniejszej Instrukcji