请教unix下有关终端编程的问题

mnbvcxz 2002-05-11 09:21:31
在银行的业务中,经常是unix下面挂很多终端,每个终端接磁条读写器、打印机、密码键盘等,哪位大侠指教一下,如何编程实现读写磁条、打印、读密码键盘等操作,我用的是实达的终端,南天BP8902磁条读写器(带密码键盘),如有相关资料,请发
mnbvcxz@2911.net,多谢
...全文
39 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerry921 2002-05-14
  • 打赏
  • 举报
回复
343900(无盘站) :
你的好象是在重定向到打印机后,发了多余的字符到串口上去,你该找一下原来的程序改一下了。对终端来说,所有的操作都是用一个串口的,你的程序在发打印数据时,又发了其它信息了。
jerry921 2002-05-14
  • 打赏
  • 举报
回复

这是我同事写的一个读小键盘的函数,但我同事不在,我也找不全他的命令码,
你的方式基本正确,但你该先把输入输出重定向到小键盘或磁条机上,在下面的程序中,就是前几条writecom函数的功能,这个函数就是这样做的,函数的参数就是一串命令字符,不同厂商的不会相同,所以我给了也没用的,你对照你的资料设一下就该可以了。
//功能:小键盘发出一次提示,得到用户输入的密码
//输入:存放密码的字符缓冲区
//输出:密码长度

int CTerm::GetPwd(char * strPwd)
{
char buf[128];
char ch;

// OpenKeyPad();
writecom(m_TermCmd.strOpenKeyPad);
writecom(m_KeyPadCmd.ShutdownLamp); //初始化键盘,关闭所有的灯
writecom( m_KeyPadCmd.Alarm1); //提示:“请输入密码”
//readcom(buf,sizeof(buf));
//读过来的数据可能加了头和尾
sleep(3);
for(int i=0;i<10;)
{
if(read(fdTermDevice,&ch,1)==0)
break;
else
{
if(ch=='\004'||ch=='\n'||ch=='\r')
{
tcflush(fdTermDevice,TCIFLUSH);
break; //接收到回车就退出循环
}
// printf("%c %2x i=%d\n",ch,ch,i);
if(ch<='9'&&ch>='0')
strPwd[i++]=ch;
}
}
writecom(m_KeyPadCmd.ShutdownLamp); //初始化键盘,关闭所有的灯
//CloseKeyPad();
writecom(m_TermCmd.strCloseKeyPad);
return 0;
}
wake2000 2002-05-14
  • 打赏
  • 举报
回复
343900(无盘站) :

scoadmin->printers->printer manager->settings->advanced->banners->Number of Banner pages:->0

sco 5.04增加打印机后默认是会打印 banner 页的。按如上路径可以将 banner的页数置为 0
343900 2002-05-13
  • 打赏
  • 举报
回复
有个这样的问题,
我们有台业务上的机子,以前用的老版本的SCOUNIX,3.X
现在换了台新机子,装的SCOUNIX5.04
其它的软件都差不多,
问题出来了,以前那机子打报表正常,现在这机子打报表时会先打个'报头'
就是些######
######
###### User: shjd (注:shjd是这机上的一个用户)
######
###### printed: thu 16:18 may 09, 1902 (注:当时打印时机器时间
######
##### Job number: printer-32
######
######
然后才打报表,有办法解决吗,还有,前同样的报表一张纸可以打完,现在这机子打出来的报表每行更宽,同一个打印机,没有改变打印机的设置,有知道有请回帖或
meil to : 343900cn@21cn.com 拜托各位了
mnbvcxz 2002-05-13
  • 打赏
  • 举报
回复
我今天编了一个程序,可以启动磁条读写器和密码键盘,但接收不到刷卡的数据和按键,我向下发命令用的write(1,buf,len),读命令用的read(0,buf,1),请教一下,这样做行不行, 应该如何读数据?
jerry921 2002-05-12
  • 打赏
  • 举报
回复
对这些设备的操作都是对终端辅口的操作。
一个终端通常有三个辅口,还有一个并口,接打印机用的,
因为终端实际上是挂在一个串口上的,所有的操作都是通过同一个串口作的,
通常要发一条命令到终端来选择你操作那个辅口,每种终端都有厂家给的操作手册,上面有详细的命令,因为只是本书,所以没法发给你了,你有终端用,就可以跟厂家要那本手册了。

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧