免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2052 | 回复: 4
打印 上一主题 下一主题

[SCO UNIX] 请高手解决:实达560终端打印不完整 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-30 16:42 |只看该作者 |倒序浏览
SCO 505,终端打印各种设置已配好,波特率9600,打印机
选dumb或EPSON类型,interface下的脚本也已加了透明打印控制码echo "\033[5i"和echo "\033[4i"。相同的手法在海豚382终端上
打印没有问题,

但在实达560终端碰到问题:一个有几十页的的大打印任务
只能打印前几页就停止了。终端提示:打印机未准备好。按任意键继续...
按任意键后能继续打印,但当中有遗漏,停了几次后,就退到login了.

已经作过测试,打印机硬件、连线、并口没有问题,换打印机
(EPSON 1900K、日立KDC600高速行打等)均不行。

我怀疑是流控制/缓冲溢出的问题。论坛上有相近的帖子说:国光终端
设置成“限制发送”,实达560终端没有类似选项,如何解决?

论坛徽章:
0
2 [报告]
发表于 2004-10-30 16:55 |只看该作者

请高手解决:实达560终端打印不完整

实达网站和终端手册没有相关内容。很丑陋。

论坛徽章:
0
3 [报告]
发表于 2004-10-31 10:46 |只看该作者

请高手解决:实达560终端打印不完整

是流控的问题,主机向终端下送数据的速度要高于打印机打印的速度,且在主机有有关于串口超时的设置。一般来说串行连接都采用软流控,当主机向终端下送数据到终端的缓冲区满时,终端会向主机上送一个十六进制的11,这时主机就会停止下送数据,而当终端的缓冲区内的数据都打印完毕后,终端又会向主机上送一个13,这样主机就会继续下送数据。
你的问题是这样,当终端的缓冲区满后,终端通知主机停止发送数据,但是终端将缓冲区内的数据打印完需要较长的时间,这个时间超过了主机串口超时的时间,所以主机就不管终端是否上送13就继续下送数据,造成缓冲区满,由于打印速度没有跟上下送数据速度终端就提示打印机没有准备好。而且你任意键回复打印后,由于缓冲区满后主机仍然下送数据,就造成数据溢出,就会丢失打印内容,甚至会打印出错误内容。这种故障只会出现在缓冲区较大的终端上。缓冲区较小的终端因打印完缓冲区内容的时间小于主机串口超时时间,所以不会出现这种现象。
解决方法:
1、更改主机串口超时时间,具体怎样更改我也不知道,可向软件供应商询问。
2、请终端厂商修改终端软件,让终端不要等缓冲区全部内容都打印完再发送13,而是只打印一部分就发送13通知主机继续下送数据,这样终端11和13的间隔时间就会在主机串口超时时间内。

另外:上述分析是建立在你的终端和主机都正确设置了Xon和Xoff软流控的情况下。

论坛徽章:
0
4 [报告]
发表于 2004-10-31 14:43 |只看该作者

请高手解决:实达560终端打印不完整

是流控问题,
具体解决方法,可以打电话问实达技术人员.

论坛徽章:
0
5 [报告]
发表于 2004-10-31 15:59 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP