2013-08-05 10 views
0

Я ищу использование эмулятора терминала X3270. У меня http://x3270.bgp.nu/ просмотрел этот исходный материал и до сих пор не вижу, как начать использовать инструмент или настроить его.X3270 Подключение и программирование

Мне интересно, как я могу открыть терминал и подключиться. Другой вопрос: как я могу интегрировать это в программу python?

редактировать: вот фрагмент:

em = Emulator()  
em.connect(ip) 
em.send_string('*user name*') 
em.exec_command('Tab') 
em.send_string('*user password*') 
em.send_enter() 
em.send_enter() 
em.wait_for_field() 
em.save_screen("{0}screenshot".format(*path*)) 

смотрит на экран сохранения я вижу, что курсор не двигается? Я могу переместить курсор, используя

em.move_to(7,53) 

, но после этого я не получаю текст, отправленный через. Любые идеи?

+0

X3270 - эмулятор терминала; пакет по умолчанию создает клиент терминала, аналогичный telnet или ssh, который вызывается командной строкой. В чем вы нуждаетесь? Вам нужно «скринировать экран»? – zarchasmpgmr

+0

@zarchasmpgmr Мне нужно интегрировать s3270 в python с помощью py3270. Я пытаюсь подключить терминал к подключенному терминалу. См. Мое редактирование в оригинальной записи. – user2213551

+0

К сожалению, я не работал с py3270. Я могу дать общие идеи отладки, например, что произойдет, если вы сделаете экран сохранения после каждой отправки?Кроме того, я могу выдать wait_for_field() после каждой отправки; вещи могут выйти из строя. – zarchasmpgmr

ответ

0

Пожалуйста, сначала прочитайте мой комментарий выше - было бы полезно получить более подробную информацию о том, что вам нужно сделать.

Учтите, что ... посмотрели ли вы на пакет py3270 по адресу https://pypi.python.org/pypi/py3270/0.1.5? В сводке говорится, что он разговаривает с x3270.

2

Вот что я делаю; она работает 100% времени:

from py3270 import * 
import sys, os 

host = "%s" % sys.argv[1].upper() 
try: 
    e = Emulator() 
    e.connect(host) 
    e.wait_for_field() 
except WaitError: 
    print "py3270.connect(%s) failed" % (host) 
    sys.exit(1) 

print "--- connection made to %s ---" % (host)` 

Если вы не получили сетевое соединение с хостом, что wait_for_field() вызов будет ждать целых 120 секунд. Независимо от того, что я делаю, я, похоже, не могу повлиять на продолжительность этого таймаута.

Но ваш пользователь не должен так долго ждать, просто попросите его убить ваш скрипт с помощью KeyboardInterrupt. Надеюсь, ваш пользователь привык к успеху, равному отображению сообщения «--- connection made ...», чтобы он знал, что у него проблемы, когда/если хост не отвечает.

И это точка мне нужно сделать: вы не подключали к терминалу (как описано выше), а при подключении к хоста. Этот хост может быть либо соединением VTAM, либо каким-то LPAR, обычно TSO или z/VM, иногда CICS или IMS, к которым приведет VTAM. У каждого типа хоста разные подсказки &, на которые может потребоваться тестирование, и иногда это содержимое отличается в зависимости от системы, к которой вы пытаетесь подключиться. Ваш скрипт становится «терминалом», в зависимости от того, что вы хотите показать своему пользователю.

Что вам нужно сделать дальше, зависит от того, с какой системой вы пытаетесь поговорить. Через VTAM? (Сначала нужно выбрать приложение VTAM?) В z/VM? TSO? Вы входите в систему или DIALING? Какое следующее нажатие клавиши/поле вы должны использовать, когда работаете с графическим терминалом x3270/c3270? Вы должны знать это, чтобы выбрать следующую команду.

Удачи вам!

+0

Вы могли подключиться к системам ibm power7? – user2213551