高频读卡器linux开发指南

为了用户系统兼容更多的平台,友我科技发布了linux开发包,这个linux开发包 适用于友我科技所有高频IC卡读卡器,型号包括:SDT-HA,YW-605系列,YW-607系列,YW-608,YW-610,YW-627系列,YW-1607系列. 支持的接口有232串口,485 和USB HID免驱动.

Linux相关下载:

项目 下载地址
开发包 友我科技Linux开发包
共享库文件 libyw60x.so
接口文档 友我科技高频RFID读写器Linux开发接口

开发例程及编译

1.requestcard.c

requestcard.c演示程序用于读取卡号并且输出,主程序中每按一次回车键,就读一次卡, 如果按别的按键和回车键就退出

#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
#include "yw60x.h"
int main(int argc, char** argv)
{
int readerid=1;
unsigned short CardType=0;
char CardMem;
unsigned char SNLen;
unsigned char Cardno[4];
int BusMode=0;
int iopen;
printf("0 for USB, 1-255 for COM Port:"); //提示出入端口,USB输入0, 串口输入串口号,与dev/ttySn对应,n是多少这里就输入多少
scanf("%d",&BusMode);//输入端口
if(BusMode==0)
iopen=YW_USBHIDInitial();//如果是USB,就初始化USB端口
else
iopen=YW_ComInitial(BusMode,19200); //如果是串口,就初始化串口
if(iopen<0)
{
printf("Open Port Fail\n"); //打开端口失败提醒
return 0;
}
printf("\nEnter for Read Card, others + Enter to Exit\n");//提示回车开始读卡,其他键+回车就退出
while(getchar()=='\n') //如果火车就开始读卡,否则退出
{
if(YW_RequestCard(readerid, REQUESTMODE_ACTIVE,&CardType)>0) //如果寻到卡片
{
if(YW_AntiCollideAndSelect(readerid,0,&CardMem,&SNLen,Cardno)>0) //读出卡号
{ for(int i=0;i<SNLen;i++)printf("%.2X",Cardno[i]);//将卡号按照16进制打印出来
printf("\n");
}
}
}
printf("Exit\n");
if(BusMode==0)
YW_USBHIDFree();//如果是USB端口,则释放USB端口
else
YW_ComFree();//如果是串口就释放串口
}

编译requestcard.c

gcc requestcard.c -L. -lyw60x -lpthread -o requestcard

2.readblock.c

readblock.c演示程序用于读取第一块数据并且输出,主程序中每按一次回车键,就读一次卡, 如果按别的按键和回车键就退出

#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
#include "yw60x.h"
int main(int argc, char** argv)
{
int readerid=1;
unsigned short CardType=0;
char CardMem;
unsigned char SNLen;
unsigned char Cardno[4];
int BusMode=0;
int iopen;
int BlockID=1;//要读取的块号
unsigned char Key[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};//默认密钥6字节0xFF
unsigned char Data[16];
printf("0 for USB, 1-255 for COM Port:");
scanf("%d",&BusMode);
if(BusMode==0)
iopen=YW_USBHIDInitial();
else
iopen=YW_ComInitial(BusMode,19200);
if(iopen<0)
{
printf("Open Port Fail\n");
return 0;
}
printf("\nEnter for Read Card, others + Enter to Exit\n");
while(getchar()=='\n')
{
if(YW_RequestCard(readerid, REQUESTMODE_ACTIVE,&CardType)>0)
{
if(YW_AntiCollideAndSelect(readerid,0,&CardMem,&SNLen,Cardno)>0)
{
printf("Card No:");
for(int i=0;i<SNLen;i++)printf("%.2X",Cardno[i]);
printf("\n");
if(YW_KeyAuthorization(readerid,PASSWORD_A,BlockID,Key)>0)// 密钥认证成功
{
if(YW_ReadaBlock(readerid,BlockID,16,Data)>0)//读取M1卡第一块的数据
{
printf("Data:");
for(int i=0;i<16;i++)printf("%.2X",Data[i]);
printf("\n");
}
}
}
}
}
printf("Exit\n");
if(BusMode==0)
YW_USBHIDFree();
else
YW_ComFree();
}

编译readblock.c

gcc readblock.c -L. -lyw60x -lpthread -o readblock

2.writeblock.c

writeblock.c演示程序用于读取第一块数据并且输出,主程序中每按一次回车键,就读一次卡, 如果按别的按键和回车键就退出

#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
#include "yw60x.h"
int main(int argc, char** argv)
{
int readerid=1;
unsigned short CardType=0;
char CardMem;
unsigned char SNLen;
unsigned char Cardno[4];
int BusMode=0;
int iopen;
int BlockID=1;//要写入的块号
unsigned char Key[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};//默认密钥6字节0xFF
unsigned char Data[16]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x00};;
printf("0 for USB, 1-255 for COM Port:");
scanf("%d",&BusMode);
if(BusMode==0)
iopen=YW_USBHIDInitial();
else
iopen=YW_ComInitial(BusMode,19200);
if(iopen<0)
{
printf("Open Port Fail\n");
return 0;
}
printf("\nEnter for Read Card, others + Enter to Exit\n");
while(getchar()=='\n')
{
if(YW_RequestCard(readerid, REQUESTMODE_ACTIVE,&CardType)>0)
{
if(YW_AntiCollideAndSelect(readerid,0,&CardMem,&SNLen,Cardno)>0)
{
printf("Card No:");
for(int i=0;i<SNLen;i++)printf("%.2X",Cardno[i]);
printf("\n");
if(YW_KeyAuthorization(readerid,PASSWORD_A,BlockID,Key)>0)// 密钥认证成功
{
if(YW_WriteaBlock(readerid,BlockID,16,Data)>0)//写入数据
{
printf("Write Data OK");
}
}
}
}
}
printf("Exit\n");
if(BusMode==0)
YW_USBHIDFree();
else
YW_ComFree();
}

编译writeblock.c

gcc writeblock.c -L. -lyw60x -lpthread -o writeblock

注意事项: 由于串口和USB操作在部分linux下需要root权限, 执行时请使用root权限

RFID读写器,SDK,IC卡读卡器,开发包,二次开发,智能卡读卡器,RFID读卡器,CPU卡读写器,读卡模块
北京友我科技有限公司 版权所有 (C)2015-2015
客户服务中心信箱:coodor#126.com(将#改为@).客户服务MSN: coodor#126.com(将#改为@)
热线直拨: 010-57049038 18910685939 QQ: 896163157,1403463073
京ICP备14016005号
友我科技


1
RFID读写器产品手册下载
2
读写器开发SDK下载
3
WEB读卡器开发指南
4
Windows读卡器开发指南
5
Android读卡器开发指南
6
Wince读卡器开发指南
7
PLC读卡器开发指南
8
Linux读卡器开发指南
9
单片机读卡器开发指南
10
PCSC读卡器开发指南