⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hh.c

📁 另外一个RC531非接触式读卡器的全部源代码
💻 C
字号:
#include <stdio.h>#include <sys/ioctl.h>#include "rc531.h"// huahong tag functionint mfwrite(int addr, char *buf){ int i, data; char sbuf[32], rbuf[8]; struct rc531_cmd cmd; cmd.sendbuf = sbuf; cmd.recvbuf = rbuf; cmd.cmd = 0x1e; cmd.timeout = 0x70; cmd.bytesent = 2; sbuf[0] = 0xa0; sbuf[1] = addr;printf("write address ...\n"); ioctl(fd531, RC531_CMD, &cmd); if(cmd.status&0x80){     return cmd.status; } if((r531(0x05)&0x07)!=4){     return E_BIT; } data = rbuf[0]&0x0f; if((data&0x0a) == 0){     return E_NAUTH; }else if(data != 0x0a){     return E_CODE; } cmd.bytesent = 4; for(i=0; i<4; i++){     sbuf[i] = buf[i]; } printf("write data ...\n"); ioctl(fd531, RC531_CMD, &cmd); if(cmd.status&0x80){     return cmd.status; } if((r531(0x05)&0x07)!=4){     return E_BIT; } data = rbuf[0]&0x0f; if((data&0x0a) == 0){     return E_NAUTH; }else if(data != 0x0a){     return E_CODE; } return E_OK;}int mfread(int addr, char *buf){ int data; char sbuf[8]; struct rc531_cmd cmd; cmd.sendbuf = sbuf; cmd.recvbuf = buf; cmd.cmd = 0x1e; cmd.timeout = 0x50; cmd.bytesent = 2; sbuf[0] = 0x30; sbuf[1] = addr; ioctl(fd531, RC531_CMD, &cmd); if(cmd.status&0x86){     return cmd.status; } if(cmd.byterecv==1 && (r531(0x05)&0x07)==4){     data = buf[0]&0x0f;     if((data&0x0a) == 0){         printf("read: not authent!\n");         return E_NAUTH;     }else{         printf("read: code error!\n");         return E_CODE;     } } return E_OK;}int hh_auth(int addr, char *passwd){ int data; char sbuf[8], rbuf[8]; struct rc531_cmd cmd; cmd.sendbuf = sbuf; cmd.recvbuf = rbuf; cmd.cmd = 0x1e; cmd.timeout = 0x1a; cmd.bytesent = 6; sbuf[0] = 0x80; sbuf[1] = addr; sbuf[2] = passwd[0]; sbuf[3] = passwd[1]; sbuf[4] = passwd[2]; sbuf[5] = passwd[3]; ioctl(fd531, RC531_CMD, &cmd); if(cmd.status&0x86){     return cmd.status; } if(cmd.byterecv==1 && (r531(0x05)&0x07)==4){     data = rbuf[0]&0x0f;     if(data!=0x0a){         printf("hh_auth: authent error! retv=%02x\n", data);         return E_AUTH;     } }else{     return E_BIT; } return E_OK;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -