What are you looking for?
Suggested searches
No product matches found - System Exception
Matched content
BMP Windows bitmap
Screen Images as Bitmaps (BMP)
Some of the more recent instruments let you retrieve the screen image as a bitmap. This makes getting the image into a PictureBox reasonably simple. The Keysight 54620-series oscilloscopes let you retrieve a bitmap from the I/O with just a few lines of code. The bitmap is in the IEEE 488.2 binary block data format. Getting the data into a binary file looks like this.
Dim byteData() As Byte
Const filePath = "C:\~scp_tmp.bmp"
With Scope .IO.Timeout = 15000 .WriteString ":DISPlay:DATA? BMP, SCReen" byteData = .ReadIEEEBlock(BinaryType_UI1) .IO.Timeout = 10000 End With
You have to declare the 'byteData' as a dynamic array because the size of the data is unknown. The code will return an IEEE488.2 block as bytes. Next save the byte array to a file and then call it with LoadPicture() That's all there is to it. The complete code looks like this:
Private Sub cmdGetBitMap_Click() ' Gets the bitmap from a 5462xA scope Dim byteData() As Byte Dim dummy As String Const filePath = "C:\~scp_tmp.bmp" Set Picture1 = LoadPicture("") With Scope .IO.Timeout = 15000 .WriteString ":DISPlay:DATA? BMP, SCReen" byteData = .ReadIEEEBlock(BinaryType_UI1) .IO.Timeout = 10000 End With saveAsFile filePath, byteData Picture1.AutoSize = True Set Picture1 = LoadPicture(filePath) Kill filePath End Sub
Private Sub saveAsFile(ByVal filePath As String, _ byteData() As Byte) Dim hFile As Long Dim isOpen As Boolean hFile = FreeFile() Open filePath For Binary Access Write Shared As hFile isOpen = True Put #hFile, , byteData If isOpen Then Close #hFile End Sub