为了用户系统兼容更多的平台,友我科技发布了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卡读写器,读卡模块 |
1 |
RFID读写器产品手册下载 |
2 |
读写器开发SDK下载 |
3 |
WEB读卡器开发指南 |
4 |
Windows读卡器开发指南 |
5 |
Android读卡器开发指南 |
6 |
Wince读卡器开发指南 |
7 |
PLC读卡器开发指南 |
8 |
Linux读卡器开发指南 |
9 |
单片机读卡器开发指南 |
10 |
PCSC读卡器开发指南 |