2008-4-16 20:18
mzjumpzfc
请熟悉银行终端的各位朋友帮帮忙
我写的刷卡器的驱动遇到一个问题:
在单独连续使用刷卡器(重复读,重复写)都没问题,可是一旦在使用刷卡器,接着使用密码键盘,再使用刷卡器的时候,就会出现问题:刷卡器无法启动(指示灯不会亮,正常情况下指示灯是会亮的),这样的话,应该是刷卡器没有接受到控制指令,可是我的日志上又记录着控制指令已经发送到终端了.个人估计是终端上还有一些问题我没有注意到,现在问题解决不了,只能请各位帮帮忙了.
说明一下:终端辅口1接密码键盘,辅口2接刷卡器,系统是SCO UNIX.
先谢谢各位了!
(最麻烦的地方是平时可以用,为什么用完了密码键盘就不行了.怎么都想不通)
下面是我的往终端发送数据的代码:
int write_port(wd,msg_buff,len,pob_env)
int *wd;
char msg_buff[];
int len;
env *pob_env;
{
int i,j;
char tmp[128];
init_rw(1,pob_env);
fflush(stdout);
if(pob_env->tty_type)
{
printf("%s",pob_env->write_aux_head);
memset(tmp,'\0',sizeof(tmp));
sprintf(tmp,"Write_aux_head : %s \n",pob_env->write_aux_head);
vSaveLog(1,"DialyLog",tmp);
}
if(!pob_env->tty_type)
{
if(write(*wd,msg_buff,len) !=len)
{
return(WRITE_COM_ERR);
}
}
else
{
for(i=0; i<len; i++)
{
printf("%c",msg_buff[i]);
}
}
memset(tmp,'\0',sizeof(tmp));
sprintf(tmp,"Write_port : %s",msg_buff);
vSaveLog(1,"DialyLog",tmp);
if(pob_env->tty_type)
{
printf("%s",pob_env->write_aux_rail);
}
memset(tmp,'\0',sizeof(tmp));
sprintf(tmp,"write_aux_rail : %s \n",pob_env->write_aux_rail);
vSaveLog(1,"DialyLog",tmp);
fflush(stdout);
close_rw(1,pob_env);
return(SUCCESS);
}