blob: 2988f91db38b0aa5634d4bffc25eb260013374e0 [file] [log] [blame]
#!/usr/bin/python
# 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