X3270连接和编程

时间:2013-08-05 08:57:46

标签: linux python-2.7 terminal-emulator 3270

我正在寻找使用X3270终端仿真器。我http://x3270.bgp.nu/查看了此源材料,但仍未看到如何开始使用该工具或对其进行配置。

我很想知道如何打开终端并连接。另一个问题是如何将它集成到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)

但之后我没有收到任何文字。 任何想法?

2 个答案:

答案 0 :(得分:4)

这就是我的所作所为;它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杀死你的脚本。希望您的用户将逐渐习惯于成功等同于显示..." ---连接..."如果主持人没有回复,他就会知道自己遇到了麻烦。

我需要指出的一点是:您没有连接到终端(如您所述),而是连接到主机。该主机可以是VTAM连接,也可以是某种类型的LPAR,通常是TSO或z / VM,有时是CICS或IMS,VTAM会将您带到。每种主机都有不同的提示&您可能需要测试的屏幕内容,有时这些内容会有所不同,具体取决于您尝试连接的系统。您的脚本将成为"终端",具体取决于您要向用户显示的内容。

您接下来需要做什么取决于您尝试与之交谈的系统类型。通过VTAM? (需要先选择VTAM应用程序吗?)到z / VM? TSO?你是登录还是DIALing?当您使用图形x3270 / c3270终端时,您必须使用的下一个按键/字段是什么?您需要知道这一点才能选择下一个命令。

祝你好运!

答案 1 :(得分:1)

请先阅读上面的评论 - 了解更多有关您需要做的事情会很有帮助。

考虑到......你看过https://pypi.python.org/pypi/py3270/0.1.5的py3270包吗?摘要说它与x3270对话。