56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
#!/usr/bin/python2
 | 
						|
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
 | 
						|
# Use of this source code is governed by a BSD-style license that can be
 | 
						|
# found in the LICENSE file.
 | 
						|
 | 
						|
"""Interact with a SCPI device, checking for errors each time."""
 | 
						|
 | 
						|
import cellular_system_error
 | 
						|
import logging
 | 
						|
import prologix_scpi_driver
 | 
						|
import scpi
 | 
						|
import sys
 | 
						|
 | 
						|
try:
 | 
						|
    [target] = sys.argv[1:]
 | 
						|
except ValueError:
 | 
						|
    print 'usage: %s gpib_host_name' % sys.argv[0]
 | 
						|
    # Default to the PXT.
 | 
						|
    target = '172.22.50.244'
 | 
						|
 | 
						|
logging.basicConfig(level=logging.INFO)
 | 
						|
 | 
						|
driver = prologix_scpi_driver.PrologixScpiDriver(hostname=target,
 | 
						|
                                                 port=1234,
 | 
						|
                                                 read_timeout_seconds=1)
 | 
						|
s = scpi.Scpi(driver)
 | 
						|
s.opc_on_stanza = False
 | 
						|
 | 
						|
while True:
 | 
						|
    try:
 | 
						|
        line = raw_input('scpi> ').rstrip()
 | 
						|
    except EOFError:
 | 
						|
        print
 | 
						|
        exit(0)
 | 
						|
 | 
						|
    try:
 | 
						|
        if line[-1:] == '?':
 | 
						|
            try:
 | 
						|
                s.Query(line)
 | 
						|
            #  Catch everything, we always want to try to recover.
 | 
						|
            except Exception:
 | 
						|
                print "**************"
 | 
						|
                print "Query did not result in any data before the timeout"
 | 
						|
                print "**************"
 | 
						|
        else:
 | 
						|
            try:
 | 
						|
                s.SendStanza([line])
 | 
						|
            #  Catch everything, we always want to try to recover.
 | 
						|
            except Exception as e:
 | 
						|
                print "**************"
 | 
						|
                print "Command failed"
 | 
						|
                print "**************"
 | 
						|
 | 
						|
    except cellular_system_error:
 | 
						|
        continue
 |