我现在遇到个奇怪的问题,不知如何解决,
我最近要改进公司的POS售饭机的ID卡读卡问题,其实我手头上的程序读卡是很好使的,但是
当两个售饭机的读头离的很的时,就不能连续在同一个读头上读出卡号了,但是两个读头轮流读卡就没有问题,如果只在一个读头上读卡就很慢,我怀疑是读头离太近,它们之间有干扰了,但想不明白为什么?
我大体读一下程序的结构,开始是检测9位起始位,然后是读卡号,读两次并比较,如果正确做相应处理后,再检测ID卡是否离开,如果离开了,可做下一次操作,我觉得问题是出在检测ID卡离开这部分,因为当两个读头离很近时,划完卡后检测ID卡离开很慢,但不知道怎么改?因为我改后,是可以同一个读头连续读卡了,但是会出现连读情况,所以是不成功的,请指教谢谢!!
这个可以这样做,发现卡来,读卡两次,数据一致,处理数据.再读卡,如果这次数据和上次一样,认为卡没有离开,再次读卡,...直到两次读卡的ID不同,认为原来的卡离开.
也可以这样做,发现卡来,读卡两次,数据一致,处理数据,等待300毫秒(或者500毫秒),再次读卡,如果卡的ID和上次一样,等待300毫秒,再次读卡.注意读到新卡应该处理数据,并声音提示客户交易成功,这样,客户就会尽早拿开卡片.
因为我的读卡的程序中都是检测读卡管脚的电平变化来实现控制的,并且都是WHILE循环,我发现一个规律,如果操作者中规中矩的划卡--离开,检卡是不会有问题的,只有操作者划卡后把卡拿开的时间很快时就会有问题,我觉得是卡离开后,读卡管脚就不会有电平变化了,这样程序就在WHILE里不停的转,不会跳出来,所以我周一想这么试一下,在检测电平跳变的过程中设置标志位,如果一直没有电平跳变,在一段时间内就认为卡已经离开了,程序就直接返回,不知道对不对,呵呵,谢谢大家的回复!!