- 論壇徽章:
- 0
|
我寫的刷卡器的驅(qū)動(dòng)遇到一個(gè)問題:
在單獨(dú)連續(xù)使用刷卡器(重復(fù)讀,重復(fù)寫)都沒問題,可是一旦在使用刷卡器,接著使用密碼鍵盤,再使用刷卡器的時(shí)候,就會(huì)出現(xiàn)問題:刷卡器無法啟動(dòng)(指示燈不會(huì)亮,正常情況下指示燈是會(huì)亮的),這樣的話,應(yīng)該是刷卡器沒有接受到控制指令,可是我的日志上又記錄著控制指令已經(jīng)發(fā)送到終端了.個(gè)人估計(jì)是終端上還有一些問題我沒有注意到,現(xiàn)在問題解決不了,只能請(qǐng)各位幫幫忙了.
說明一下:終端輔口1接密碼鍵盤,輔口2接刷卡器,系統(tǒng)是SCO。眨危桑兀
先謝謝各位了!
(最麻煩的地方是平時(shí)可以用,為什么用完了密碼鍵盤就不行了.怎么都想不通)
下面是我的往終端發(fā)送數(shù)據(jù)的代碼:
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);
}
}
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);
} |
|