LoveUnix » 编程开发 & Rational » 请熟悉银行终端的各位朋友帮帮忙
让LU留住您的每

一天 让LU博客留住您的每一天
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);
}

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.