飞凌6410开发板通过USB Reader读卡器读取IC卡ID(Linux源代码)
来源:互联网 发布:小米笔记本如何 知乎 编辑:程序博客网 时间:2024/05/22 07:59
代码原理:
USB Reader虽然是USB接口,但是大多数是模拟键盘输入的。
因此,可以通过 open("/dev/tty0".....) 这个系统函数打开设备。
那么就可以像读取文件一样读取IC卡的ID。
要点注意:
由于开发板上Linux驱动的不同,因此键盘可能会产生多个字节的扫描码(最多可能有6个)。因此程序要进行过滤。
例如:过滤【键盘码】>128的值。
在Linux下,键盘码值(1~127),释放键(KeyUP)的值为【键值】+128
即: 键盘码= 10,则释放键=10+128
如果仅仅是转换 0~9这几个值,可以采用下面的算法
int key = '0' + 【键盘码值】 - 1;
//Reader.h
#ifndef READER_H
#define READER_H
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int OpenReader(char* dev)
{
int Reader_Fd=-1;
Reader_Fd = open(dev, O_RDWR);
return Reader_Fd;
}
void CloseReader(int fd)
{
close(fd);
}
int ReadId(int fd,char *id_buf,int len)
{
unsigned char key[5];
unsigned char K;
int i=0;
do
{
K=0;
if(read(fd,key,4)>0)
{
if(key[0]<128)
{
id_buf[i++]='0'+key[0]-1;
K=key[0];
}
}
if(i>len)i==0;
}while(K!=28);
id_buf[i-1]='\0';
return 1;
}
#endif // READER_H
//主程序
#include"reader.h"
int main(int argc, char *argv[])
{
int reader_fd;
char buf[32];
if((reader_fd=OpenReader("/dev/tty0"))==-1)
{
puts("Open Dev Error!\r\n");
}
while(1)
{
if(ReadId(reader_fd,buf,32)==1)
{
printf("Read ID=%s\r\n",buf);
}
}
CloseReader(reader_fd);
return 0;
}
程序运行效果:
- 飞凌6410开发板通过USB Reader读卡器读取IC卡ID(Linux源代码)
- USB接口ID卡读卡器oem软件(vb源代码)
- USB接口ID卡读卡器oem软件/读写卡测试程序及源代码/c++builder源代码
- USB接口ID卡读卡器oem软件/读写卡测试程序及源代码/DELPHI源代码
- USB接口ID卡读卡器oem软件/读写卡测试程序及源代码/VB.net源代码
- USB接口ID卡读卡器oem软件/读写卡测试程序及源代码/VB源代码
- web开发与IC卡读卡器
- USB接口ID卡读卡器oem软件/读写卡测试程序及源代码/c++builder源代码 (2)
- VC如何制作用IC卡读卡器读取系统
- IC卡读卡器测试程序
- NFC读取卡号转换程RFID设备IC读卡器读取的卡号
- 树莓派使用RFID-RC522A读卡器对IC卡进行读写(通过 python)
- IC卡读卡器卡号输出格式
- java操作智能卡 IC卡 连接pcsc读卡器 发送APDU指令 源代码 下载 jdk1.6满足要求 java语言 操作IC卡 操作智能卡
- usb读卡器
- 银联IC卡读卡流程详解--读卡器与卡交互指令
- C#读IC卡程序(明华读卡器)
- 银联IC卡读卡流程详解--读卡器与卡交互指令
- J2EE(01) web.xml 配置说明
- 远程通过监听连接报ORA-01034故障处理一例
- 深入理解 javascript
- STL学习系列之五——关联容器
- 惠普中国CEO孙振耀退休感言,男孩看了不用沉默,女孩看了不用哭
- 飞凌6410开发板通过USB Reader读卡器读取IC卡ID(Linux源代码)
- Linux 自学笔记(五)——时间显示与管理&监控网络信息
- http://wiki.hotoo.me/Canvas-SVG-VML.html
- 堆和栈的区别(转过无数次的文章)
- replay attacker
- 存储博文精选专辑
- 虚拟机搭建LINUX的ARM软件编译环境
- *走了不少弯路吧?看看别人经验分享*
- Ubuntu 11.04 下安装配置 JDK 7