hi:
I want to save the screenshot to the instrument and transfer it to the computer via GPIB.But I can only pass 4096 bytes!
I tried to use loops,viSetBuf, viRead,viReadToFile and viVScanf , but they all failed.
This's my code:
status = viSetBuf(vi, VI_READ_BUF, 60000)
status = viSetBuf(vi, VI_WRITE_BUF, 60000)
status = viVPrintf(vi, "YST:COMM:GPIB:RTER EOI" + vbCrLf, 0)
status = viVPrintf(vi, ":HCOPEV:LANG WMF" + vbCrLf, 0)
status = viSetAttribute(vi, VI_ATTR_TMO_VALUE, 20000)
status = viVPrintf(vi, ":HCOPEST1 'MMEM'" + vbCrLf, 0)
status = viVPrintf(vi, ":MMEM:NAME 'C:\USER\DATA\FILE.WMF'" + vbCrLf, 0)
status = viVPrintf(vi, ":HCOP" + vbCrLf, 0)
Threading.Thread.Sleep(2000)
status = viVPrintf(vi, ":MMEM:MSIS 'C’" + vbCrLf, 0)
status = viVPrintf(vi, ":MMEM:CDIR '\USER\DATA\'" + vbCrLf, 0)
status = viVPrintf(vi, ":MMEMATA? 'FILE.WMF'" + vbCrLf, 0)
Dim fanal As String = ""
Do
status = viRead(vi, strRes, 4096, retCount)
Dim x As Integer = Val(Mid(strRes, 2, 1))
Dim y As Integer = Val(Mid(strRes, 3, x))
strRes = Mid(strRes, x + 3, y)
fanal = fanal & strRes
Loop Until (retCount < 4096)
FileOpen(1, Application.StartupPath + "\YouName.WMF", OpenMode.Output)
Print(1, fanal)
FileClose(1)
status = viSetBuf(vi, VI_READ_BUF, 4096)
status = viSetBuf(vi, VI_WRITE_BUF, 4096)
status = viSetAttribute(vi, VI_ATTR_TMO_VALUE, 2000)
status = viVPrintf(vi, "YST:COMM:GPIB:RTER LFEOI" + vbCrLf, 0)