You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.6 KiB
56 lines
1.6 KiB
7 months ago
|
#!/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
|