123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- #ifndef LIBFRAMEWORK_CONTACTLESSCARD_IMPL_H
- #define LIBFRAMEWORK_CONTACTLESSCARD_IMPL_H
- #include "RFICClass.h"
- class ContactlessCardImpl : public RFICClass
- {
- public:
- ContactlessCardImpl();
- ~ContactlessCardImpl();
- //DeviceBaseClass
- ErrorCodeEnum GetDevCategory(DevCategoryInfo &devCategory);
- ErrorCodeEnum Reset();
- ErrorCodeEnum DevClose();
- ErrorCodeEnum GetLastErr(DevErrorInfo &devErrInfo);
- //device initialization
- virtual ErrorCodeEnum DevOpen(DWORD dwPort, DWORD dwBaudRate)
- {
- ErrorCodeEnum err = Error_Succeed;
- return err;
- }
- //
- // Get card reader status
- //
- virtual ErrorCodeEnum GetDevStatus(RFICReaderStatus& devStatus)
- {
- return Error_NotImpl;
- }
- //
- // Abort current operation.
- //
- virtual ErrorCodeEnum AbortRead()
- {
- return Error_NotImpl;
- }
- //
- // Active contactless card(Type A,B,Mifare)
- // The first,second,third activation order decided by fstType,scdType,thdType respectively
- // fstType,scdType,thdType can be one of 'A','B','M','0'(30H,no type)
- // outType indicates the type of activation result
- //
- virtual ErrorCodeEnum ActiveContactlessICCard(char fstType, char scdType, char thdType, char& outType)
- {
- return Error_NotImpl;
- }
- //
- // Deactivate contactless IC card
- //
- virtual ErrorCodeEnum DeactContactlessICCard()
- {
- return Error_NotImpl;
- }
- //
- // Warm reset card(IC)
- //
- virtual ErrorCodeEnum WarmReset()
- {
- return Error_NotImpl;
- }
- //
- // Mifare operation
- // Arguments:
- // - eFunType:function type as load key,authentication and so on
- // - return/data(hex) byte order like BIG EDIAN. ex:0x12345678 --> data[i] = 0x12,data[i+1] = 0x34,data[i+2] = 0x56,data[i+3] = 0x78
- // - sendBuf:[parameter(hex)][data(hex)]
- // - recvBuf:[status(1byte)][return data(hex)]
- // -- [eFunType],[parameter,data],[status(1byte),return data]
- // -- [CI_MIFARE_LOAD_KEY],[key select(1byte),sector num(1byte),uncoded keys(6bytes)],[status(1byte)]
- // -- [CI_MIFARE_AUTH],[key select(1byte),sector num(1byte)],[status(1byte)]
- // -- [CI_MIFARE_READ],[block num(1byte)],[status(1byte),data(16bytes)]
- // -- [CI_MIFARE_WRITE],[block num(1byte),data(16bytes)],[status(1byte)]
- // -- [CI_MIFARE_INC],[source block num(1byte),destination block num(1byte),inc value(4bytes)],[status(1byte)]
- // -- [CI_MIFARE_DEC],[source block num(1byte),destination block num(1byte),dec value(4bytes)],[status(1byte)]
- // -- key select(1byte):AKey(00h),BKey(01h)
- // -- status(1byte):OK(00h),other error code(!00h)
- virtual ErrorCodeEnum MifareCommand(MifareFuctionEnum eFunType, CmdInfo sendBuf, CmdInfo& recvBuf)
- {
- return Error_NotImpl;
- }
- //
- // RF Type A,B command.
- // APDU:Application Protocol Data Unit
- // Arguments:
- // - CmdSend.lpCmd:Command-APDU
- // - CmdRecv.lpData:Response-APDU
- //
- virtual ErrorCodeEnum RFTypeABCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
- {
- return Error_NotImpl;
- }
- //halt card
- //card have been halted must move from induction zone then can be found again
- virtual ErrorCodeEnum HaltCard()
- {
- return Error_NotImpl;
- }
- private:
- int m_mode;
- };
- #endif //LIBFRAMEWORK_CONTACTLESSCARD_IMPL_H
|