Arcb

Smart card reader software library

What is Arcb?

Making your life easier

We believe that creating a contactless application should be easy. Focus on your business logic rather than the details. Get your application running on all devices, on all platforms.

Write more efficient code

Arcb handles the tricky details for you

With Arcb
Arcb::Core::SmartPointer reader = Arcb::Reader::Reader::Create();
if(reader->Open("COM1")) {
    TagInfo tag;
    reader->SelectTag(tag); 
    
    //... process tag ... //
}
Without Arcb
bool lOpenOk = OpenFile("COM1", File::OPEN_READ_WRITE);
if (lOpenOk) {
    ::SetupComm(GetFileHandle(), 1024 * 8, 1024 * 8);
    DCB comPortSettings;
    comPortSettings.DCBlength = sizeof(comPortSettings);
    comPortSettings.BaudRate = pBaudRate;
    comPortSettings.ByteSize = 8;
    comPortSettings.Parity = NOPARITY;
    comPortSettings.fParity = 0;
    comPortSettings.StopBits = ONESTOPBIT;
    comPortSettings.fBinary = true;
    comPortSettings.fDtrControl = DTR_CONTROL_ENABLE;
    comPortSettings.fRtsControl = RTS_CONTROL_ENABLE;
    BOOL lStatus = ::SetCommState(GetFileHandle(), &comPortSettings);
    if (lStatus == FALSE) {
        //handle error
    }
    
    int nrOfBytes;
    if (::WriteFile(GetFileHandle(), "\x02\x01\x6e\x73\x1e", 6, &nrOfBytes, 0)) {
        if( nrOfBytes != 6 ) {
            //handle error
        }
    } else {
        //handle error
    }
    
    if(::ReadFile(GetFileHandle(), pData, 256, &nrOfBytes, 0) {
        // ... parse tag data ... //
        // ... process tag ... //
    } else {
        //handle error
    }  
}

Supported Cards

High level card support
  • MIFARE Classic
  • MIFARE Plus
  • MIFARE Ultralight
  • MFIARE DESFire
  • MIFARE SAM
Low level card support
  • Felica
  • Calypso
  • CiPurse
  • And more...