RFID factory
By: a guest | Mar 22nd, 2010 | Syntax:
C++ | Size: 0.93 KB | Hits: 167 | Expires: Never
// RFID.h
class RFIDFactory
{
public:
RFID* selectReader(void);
};
// RFID.cpp
RFID * RFIDFactory::selectReader()
{
RFID* ph = new Phidget();
RFID* pc = new pcProxAPI();
RFID* Readers[] = {ph, pc};
RFID* ret = 0;
for (int x = 0; x < (sizeof(Readers) / sizeof(Readers[0])); x++)
{
if (Readers[x]->initializeDevice() == 0)
{
if (Readers[x]->checkDevice() == 0)
{
ret = Readers[x];
break;
}
else
{
Readers[x]->dispose();
}
}
}
return (ret);
}
// in main
RFIDFactory* myRFIDFactory;
RFID* myRFID;
// when auth requested:
myRFIDFactory = new RFIDFactory();
myRFID = myRFIDFactory->selectReader();
if (myRFID == 0)
{
MessageBox(hwnd,
"No reader detected!\nPlease check the connection.",
"No reader detected!",
MB_ICONWARNING);
}
else
{
int ret = DialogBox(GetModuleHandle(NULL),
MAKEINTRESOURCE(IDD_AUTH),
hwnd,
(DLGPROC)AuthDlgProc);
}