2017-03-08 3 views
2

J'essaie de transférer une capture d'écran à partir d'un analyseur de signal Schwarz FSV Rhode & vers mon PC.PYVISA: Comment transférer des données de bloc binaire afin que l'image soit correctement formatée et enregistrée sur mon PC?

Comment transférer des données de bloc binaire afin que l'image soit correctement enregistrée sur mon PC à partir de l'instrument? Mon code est ci-dessous. Un fichier est enregistré sur mon bureau, mais mon ordinateur génère une erreur et ne peut pas ouvrir car le fichier n'est pas formaté correctement.

import visa 
rm = visa.ResourceManager() 
inst = rm.open_resource('TCPIP0::178.168.48.31::inst0::INSTR') 

inst.write("mmem:name 'C:\eswScreen.wmf\'") 
inst.write("MMEM:DATA? 'C:\eswScreen.wmf\'") 
img = inst.read_raw() 

target = open(r"C:\Users\myName\Desktop\screenShot.wmf", 'wb') 
target.write(img) 
target.close() 

file shows up on Desktop

Error when trying to open file on Desktop

J'ai vérifié la capture d'écran est enregistré sur l'instrument. Également vérifié avec un autre instrument que la syntaxe SCPI est correcte. Il doit donc s'agir de la façon dont les données binblock sont transférées. Tout conseil est grandement appréciée.

Répondre

0
import pyvisa 
rm = pyvisa.ResourceManager() 
inst = rm.open_resource('TCPIP0::178.168.48.31::inst0::INSTR') 

inst.values_format.is_binary = True 
inst.values_format.datatype = 'B' 
inst.values_format.is_big_endian = False 
inst.values_format.container = bytearray 

inst.write("mmem:name 'C:\eswScreen.wmf\'") 
img = inst.query_values("MMEM:DATA? 'C:\eswScreen.wmf\'") 

target = open(r"C:\Users\user\Desktop\screenShot.wmf", 'wb') 
target.write(img) 
target.close() 

Cela a fonctionné pour moi.