• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

高手请进,关于终端显示的

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 19次 | 进入软件测试论坛讨论

领测软件测试网
我想从主机向各终端发送信息提示,又不破坏终端屏幕画面,也不影响终端透明打印。用echo命令,信息提示一来,终端屏幕就乱了,打印也会出乱码。
请各位高手帮出个主意吧!

 yutian 回复于:2003-09-03 15:22:33
关注

 slnhghm 回复于:2003-09-03 23:13:34
主机一发,终端就要显示吗?

 wilson_chan 回复于:2003-09-04 08:47:23
主意不错,关注!!

 紫眉 回复于:2003-09-04 09:43:59
我用wall发信息到终端,信息显示出来当然要影响屏幕画面,否则怎么显示,不知道你说的影响是到什么程度,不会影响透明打印

 紫眉 回复于:2003-09-04 09:47:19
我用wall发信息到终端,信息显示出来当然要影响屏幕画面,否则怎么显示,不知道你说的影响是到什么程度,不会影响透明打印

 meteor06 回复于:2003-09-04 10:26:38
“主机向各终端发送信息提示,又不破坏终端屏幕画面”

怎么做? 显示信息如果不显示在屏幕上,怎么能起到提示作用?

 onlygirl 回复于:2003-09-04 11:05:29
用wall,echo 不太可能,肯定要乱屏
除非写在你的应用程序里

 dddwwwzzz 回复于:2003-09-04 11:46:13
关键是提示信息能否在固定的位置显示,不搅乱屏幕的操作画面。
我以前用echo 做的,一发的话终端屏幕打乱,最要命的是如果当时终端在打印东西,打印也会出现乱码。一个二级分行用用倒还可以,在一个省级中心对一千多个网点搞这一下,影响太大了。
还有什么好招吗?联想的ACE平台有这方面的支持吗?

 saintdragon 回复于:2003-09-04 13:00:07
创意不错,不过异想天开

 fdlj53u 回复于:2003-09-04 13:56:20
如果是实达终端,那就没问题了。(事实上国内多数都用的是STAR终端)  把下面这段程序编译成ECHO 程序,然后:ECHO 内容 >/dev/ttyxx  即可把信息发送到终端上了,会显示在屏幕的最上方。显示绝对不会乱,对打印的影响没有测试过。各位可以试试看。

echo.c

-------------------------------------------------------------------------------
#include "stdio.h"
#define ESC 27
#define DOT   0
#define CLR   1
#define DBT   2

P_box(x1,y1,x2,y2,fill_type)
int x1,y1,x2,y2,fill_type;
{
 if(fill_type> fill_type=8;
 printf("%c!%d;%d;%d;%d;%de",ESC,x1,y1,x2,y2,fill_type);
}

set_stat(i)
int  i;
{
 printf("%c!0;%d]",ESC,i);
}
set_init()
{
 printf("%c[/1q",ESC);
 printf("%c!0;0k",ESC);
}

mv_str(x,y,string)
int x,y;
unsigned char *string;
{
 int i;
 int len;

 len=strlen(string);
 for(i=0;i<len{
   if(string[i]=='\007') {putchar(007);i++;continue;}
   if(string[i]>0&&string[i]<127){
     printf("%c!%d;%d;%dw",ESC,x,y,string[i]);
     i++;
     x+=8;
   }
   else{
     printf("%c!%d;%d;%d;%dw",ESC,x,y,string[i],string[i+1]);
     i+=2;
     x+=16;
   }
 }
}

main(argc,argv)
int argc;
char *argv[];
{
if(argc<2) exit(0);
set_init();
set_stat(CLR);
P_box(0,0,630,12,5);
set_stat(DBT);
mv_str(0,0,argv[1]);
exit(0);
}
-------------------------------------------------------------------
结束。

 fdlj53u 回复于:2003-09-04 13:57:26
那个脸是 8  )

 meteor06 回复于:2003-09-04 14:47:20
楼上的方法试过了,在实达终端好用 ;)

 dddwwwzzz 回复于:2003-09-04 16:26:48
好东西,不知是否支持实达的全系列终端,还有新大陆、国光的终端

 wqpost 回复于:2003-09-04 16:38:52
不错不错!

 dddwwwzzz 回复于:2003-09-04 17:29:07
哥们,再给说说怎么消除啊!

 lbxxy 回复于:2003-09-04 17:54:52
这个程序肯定会影响打印的

 fdlj53u 回复于:2003-09-04 23:53:09
实达的终端都好用,国光的要做适当修改。要清除的话再发些空格键过去好了,或者把终端的显示设置改为:图形清行即可。

 dudo 回复于:2003-09-05 00:40:29
帮顶一下吧!

 dddwwwzzz 回复于:2003-09-05 10:54:15
dlj53u  ,我用空格填只能消除上半行的信息啊。应该怎么做?

 fdlj53u 回复于:2003-09-05 18:18:59
全角空格

 inzaghi_lzhj 回复于:2003-09-09 16:11:48
这个问题不好办,我看是不是想想用声音,那就不破坏打印和画面了,来了一拨多通的电话怎么样!!!呵呵!!

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网