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 ... //
}
5 lines of code
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
}
}
30+ lines of code

Supported Cards

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