Keysight E4428C ESG RF Programming Manual page 381

Signal generators
Table of Contents

Advertisement

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,
Keysight Signal Generators Programming Guide
Creating and Downloading User–Data Files
Save and Recall Instrument State Files
373

Advertisement

Table of Contents
loading

Table of Contents