当前位置: 技术问答>linux和unix
UNIX下,终端辅口与外设通讯的问题
来源: 互联网 发布时间:2015-09-17
本文导语: 现在在做终端的外设通讯,即终端与密码键盘、磁条读写器以及打印机的通讯。 现在我有外设的指令集,但是,对于如何用发射到终端辅口以及如何从辅口取回数据有一些迷茫。 不知道用ioctl这个函数是否可以?如...
现在在做终端的外设通讯,即终端与密码键盘、磁条读写器以及打印机的通讯。
现在我有外设的指令集,但是,对于如何用发射到终端辅口以及如何从辅口取回数据有一些迷茫。
不知道用ioctl这个函数是否可以?如果可以的话
能否给一些关于此函数的详细说明。
谢谢
现在我有外设的指令集,但是,对于如何用发射到终端辅口以及如何从辅口取回数据有一些迷茫。
不知道用ioctl这个函数是否可以?如果可以的话
能否给一些关于此函数的详细说明。
谢谢
|
以磁条读写器为例:
struct termio tm;
ioctl(0, TCGETA, &ORG_tm);
ioctl(0, TCGETA, &tm);
tm.c_iflag &= ~IXON;
tm.c_cflag &= ~PARENB;
tm.c_lflag &= (~ISIG & ~ECHO & ~ICANON);
tm.c_cc[VMIN] = 0;
tm.c_cc[VTIME] = 1;
ioctl(0, TCSETA, &tm);
printf("%s", gopen);
……
printf("%c", green_on) ;
……
printf("%s", gclose);
ioctl(0, TCSETA, &ORG_tm);
其中gopen是打开辅口串,gclose是关闭辅口串,green_on是点亮磁条读写器绿灯的控制串,当然,你在控制磁条读写器的过程中还要用
do {
key = getchar();
t--;
}while(key == -1 && t > 0);
一类的代码来接收磁条读写器返回的状态或磁条信息
struct termio tm;
ioctl(0, TCGETA, &ORG_tm);
ioctl(0, TCGETA, &tm);
tm.c_iflag &= ~IXON;
tm.c_cflag &= ~PARENB;
tm.c_lflag &= (~ISIG & ~ECHO & ~ICANON);
tm.c_cc[VMIN] = 0;
tm.c_cc[VTIME] = 1;
ioctl(0, TCSETA, &tm);
printf("%s", gopen);
……
printf("%c", green_on) ;
……
printf("%s", gclose);
ioctl(0, TCSETA, &ORG_tm);
其中gopen是打开辅口串,gclose是关闭辅口串,green_on是点亮磁条读写器绿灯的控制串,当然,你在控制磁条读写器的过程中还要用
do {
key = getchar();
t--;
}while(key == -1 && t > 0);
一类的代码来接收磁条读写器返回的状态或磁条信息