| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- #ifndef VIRTUAL_DEVICE_CLASS_HEADER_
- #define VIRTUAL_DEVICE_CLASS_HEADER_
- #include "CardIssuerClass.h"
- class VirtualDeviceClassImpl : public CardIssuerClass
- {
- public:
- VirtualDeviceClassImpl();
- ~VirtualDeviceClassImpl();
- //DeviceBaseClass
- ErrorCodeEnum GetDevCategory(DevCategoryInfo& devCategory);
- ErrorCodeEnum Reset();
- ErrorCodeEnum DevClose();
- ErrorCodeEnum GetLastErr(DevErrorInfo& devErrInfo);
- //SubDeviceClass
- ErrorCodeEnum DevOpen(DWORD dwPort, DWORD dwBaudRate);
- ErrorCodeEnum GetDevStatus(CardIssuerStatus& devStatus);
- ErrorCodeEnum GetDeviceSN(char*& pDevSN);
- ErrorCodeEnum MoveCard(CardPosEnum eCardPos, int hopperNo = 1);
- ErrorCodeEnum SetCardInType(CardInEnum eCardIn);
- ErrorCodeEnum MagRead(MagTracks& magTracks);
- ErrorCodeEnum MagWrite(MagTracks magTracks, MagWriteModeEnum eWriteMode);
- ErrorCodeEnum SetRetractCounter(DWORD dwCount);
- ErrorCodeEnum SetIssuerCounter(DWORD dwCount, int hopperNo = 1);
- ErrorCodeEnum ActiveICCard();
- ErrorCodeEnum ContactIC();
- ErrorCodeEnum ReleaseIC();
- ErrorCodeEnum WarmReset();
- ErrorCodeEnum ICCommand(CmdInfo sendBuf, CmdInfo& recvBuf);
- //////////////////SAM 卡操作部分////////////////////
- ErrorCodeEnum SAMActive(BYTE vcc = 0x30);;
- ErrorCodeEnum SAMDeactivate();;
- ErrorCodeEnum SAMWarmReset();;
- ErrorCodeEnum SAMQueryStatus(SAMStatus& samStatus);;
- ErrorCodeEnum SAMSelect(const int sn);;
- //即时制卡卡库需要实现SAMCommand,用来执行apdu指令
- ErrorCodeEnum SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf);;
- //即时制卡卡库需要实现ActiveICCardATR,用来激活卡片,返回ATR
- ErrorCodeEnum ActiveICCardATR(CmdInfo& atrBuf);
- ////////////////卡面打印部分(非即时制卡的卡面印刷,即时制卡的卡面打印接口为PrintCardFaceRightNow),部分机型(例如合肥分行大机)有此功能//////////////////
- ErrorCodeEnum Print(BYTE*& data, const int dataSize, const int side);;
- ErrorCodeEnum QueryPrinterStatus();;
- ////////////////////////////////////////////////////////////////////////////
- ////////非接(IC)部分 start,没有此部分,在接口实现中直接返回Error_NotImpl///////////////
- ////////////////////////////////////////////////////////////////////////////
- ErrorCodeEnum ActiveContactlessICCard(char fstType, char scdType, char thdType, char& outType);
- //
- // Deactivate contact IC card
- //
- ErrorCodeEnum DeactivateICCard();
- //
- // Deactivate contactless IC card
- //
- ErrorCodeEnum DeactContactlessICCard();
- //
- // RF Mifare Classic protocol operation
- // Arguments:
- // - eFunType:function type as load key,authentication and so on
- // - sendBuf:[parameter][data]
- // - recvBuf:[status(1byte)][return data]
- //
- ErrorCodeEnum MifareCommand(MifareFuctionEnum eFunType, CmdInfo sendBuf, CmdInfo& recvBuf);
- //
- // RF Type A,B command.
- // APDU:Application Protocol Data Unit
- // Arguments:
- // - CmdSend.lpCmd:Command-APDU
- // - CmdRecv.lpData:Response-APDU
- //
- ErrorCodeEnum RFTypeABCommand(CmdInfo sendBuf, CmdInfo& recvBuf);
- ////////非接(IC)部分 end/////////////////////////////////////////////////////////
- ErrorCodeEnum DevOpenEx(DWORD dwPort, DWORD dwBaudRate, BYTE btOpenType, const char* pDevSN, BYTE& btType);
- /////////////////////////////////////////////////////////////////////////
- ///以下是便携式卡机特有API,接口实现中其他机型直接返回Error_NotImpl即可//
- /////////////////////////////////////////////////////////////////////////
- ErrorCodeEnum TransferEnInit(int& iStatus, BYTE*& Cr1, int& lenR1, BYTE*& Cr3, int& lenR3, BYTE*& dKey, int& lenKey);
- ErrorCodeEnum SetR2(int& iStatus, BYTE* pCr2, int lenR2);
- ErrorCodeEnum SendWorkingKey(const char* pWorkingKey);
- //安全锁接口部分 begin
- ErrorCodeEnum SLLoadKey(const SCIKeyInfo key);
- ErrorCodeEnum SLSetParam(SCIParamType eType, int value);
- ErrorCodeEnum SLLock();
- ErrorCodeEnum SLUnLock(const SCICheckCode checkCode, bool bTemp = true);
- ErrorCodeEnum SLGetTempData(SCITempData& ksnData, SCITempData& ramData);
- ErrorCodeEnum SLOpenDoor(const SCITempData data);
- //安全锁接口部分 end
- //蓝牙控制部分 start
- //蓝牙指令控制,命令参看SCIBluetoothCMD说明
- ErrorCodeEnum BluetoothControl(SCIBluetoothCMD eCmd);
- //修改配对密码
- ErrorCodeEnum BluetoothModifyKey(unsigned char* key);
- //修改蓝牙设备名称
- ErrorCodeEnum BluetoothModifyName(unsigned char* name);
- //获取版本信息
- ErrorCodeEnum BluetoothGetVersion(char*& version);
- //获取连接设备名称
- ErrorCodeEnum BluetoothGetConnectName(unsigned char*& name);
- //获取连接设备信号强度
- ErrorCodeEnum BluetoothGetSignalStrength(unsigned char*& signal);
- //蓝牙控制部分 end
- ErrorCodeEnum LightControl(SCILightType eLight, bool bOnOff);
- ErrorCodeEnum QueryBatteryPower(int& bat);
- ErrorCodeEnum MoveCardToSlot(int slot);
- //把卡片从指定卡槽位移动到读卡器
- ErrorCodeEnum MoveCardFromSlot(int slot);
- //读取卡号
- //优先从IC卡解析卡号,如果纯磁条卡,则返回磁道解析的卡号
- ErrorCodeEnum ReadAccount(CardNo& cardNo);
- //获取总卡槽数
- ErrorCodeEnum GetSlotSum(int& sum);
- //获取卡槽状态
- ErrorCodeEnum QuerySlotsStatus(SlotStatus& slots, const int slot, bool bFull = false);
- //即时制卡卡库专用接口
- ErrorCodeEnum PrintCardFaceRightNow(const KakuPrintInfo printInfo);
- };
- #endif //VIRTUAL_DEVICE_CLASS_HEADER_
|