123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- #ifndef LIBFRAMEWORK_CARDISSUER_IMPL_H
- #define LIBFRAMEWORK_CARDISSUER_IMPL_H
- #include "CardIssuerClass.h"
- class CardIssuerClassImpl : public CardIssuerClass
- {
- public:
- CardIssuerClassImpl();
- ~CardIssuerClassImpl();
- //DeviceBaseClass
- ErrorCodeEnum GetDevCategory(DevCategoryInfo &devCategory);
- ErrorCodeEnum Reset();
- ErrorCodeEnum DevClose();
- ErrorCodeEnum GetLastErr(DevErrorInfo &devErrInfo);
- public:
- virtual ErrorCodeEnum DevOpen(DWORD dwPort, DWORD dwBaudRate)
- {
- return Error_Succeed;
- }
- virtual ErrorCodeEnum GetDevStatus(CardIssuerStatus& devStatus)
- {
- return Error_NotImpl;
- }
- virtual ErrorCodeEnum GetDeviceSN(char*& pDevSN)
- {
- return Error_NotImpl;
- }
- virtual ErrorCodeEnum MoveCard(CardPosEnum eCardPos, int hopperNo = 1)
- {
- return Error_NotImpl;
- }
- //
- // Set card entry
- //
- virtual ErrorCodeEnum SetCardInType(CardInEnum eCardIn)
- {
- return Error_NotImpl;
- }
- //
- // Read data from magnetic track.
- //
- virtual ErrorCodeEnum MagRead(MagTracks& magTracks)
- {
- return Error_NotImpl;
- }
- //
- // Write data to magnetic track.
- //
- virtual ErrorCodeEnum MagWrite(MagTracks magTracks, MagWriteModeEnum eWriteMode)
- {
- return Error_NotImpl;
- }
- //
- // Set retract counter
- //
- virtual ErrorCodeEnum SetRetractCounter(DWORD dwCount)
- {
- return Error_NotImpl;
- }
- //
- // Set issuer counter
- // hopperNo:多卡箱发卡时指定发卡箱号(面对发卡机,从左往右依次是1,2,3,...号卡箱)
- //
- virtual ErrorCodeEnum SetIssuerCounter(DWORD dwCount, int hopperNo = 1)
- {
- return Error_NotImpl;
- }
- //
- // Active contact IC card
- //
- virtual ErrorCodeEnum ActiveICCard()
- {
- return Error_NotImpl;
- }
- //
- // Move IC card to contact position
- //
- virtual ErrorCodeEnum ContactIC()
- {
- return Error_NotImpl;
- }
- //
- // Release IC contact
- //
- virtual ErrorCodeEnum ReleaseIC()
- {
- return Error_NotImpl;
- }
- //
- // Warm reset card(IC)
- //
- virtual ErrorCodeEnum WarmReset()
- {
- return Error_NotImpl;
- }
- //
- // APDU:Application Protocol Data Unit
- // CmdSend.lpCmd:Command-APDU
- // CmdRecv.lpData:Response-APDU
- //
- virtual ErrorCodeEnum ICCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
- {
- return Error_NotImpl;
- }
- //////////////////SAM 卡操作部分////////////////////
- virtual ErrorCodeEnum SAMActive(BYTE vcc = 0x30) { return Error_NotImpl; };
- virtual ErrorCodeEnum SAMDeactivate() { return Error_NotImpl; };
- virtual ErrorCodeEnum SAMWarmReset() { return Error_NotImpl; };
- virtual ErrorCodeEnum SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf) { return Error_NotImpl; };
- virtual ErrorCodeEnum SAMQueryStatus(SAMStatus& samStatus) { return Error_NotImpl; };
- virtual ErrorCodeEnum SAMSelect(const int sn) { return Error_NotImpl; };
- virtual ErrorCodeEnum ActiveICCardATR(CmdInfo& atrBuf) { return Error_NotImpl; }
- ////////////////卡面打印部分,部分机型有此功能//////////////////
- virtual ErrorCodeEnum Print(BYTE*& data, const int dataSize, const int side) { return Error_NotImpl; };
- virtual ErrorCodeEnum QueryPrinterStatus() { return Error_NotImpl; };
- ////////////////////////////////////////////////////////////////////////////
- ////////非接(IC)部分 start,没有此部分,在接口实现中直接返回Error_NotImpl///////////////
- ////////////////////////////////////////////////////////////////////////////
- // Active contactless IC 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 contact IC card
- //
- virtual ErrorCodeEnum DeactivateICCard()
- {
- return Error_NotImpl;
- }
- //
- // Deactivate contactless IC card
- //
- virtual ErrorCodeEnum DeactContactlessICCard()
- {
- return Error_NotImpl;
- }
- //
- // RF Mifare Classic protocol operation
- // Arguments:
- // - eFunType:function type as load key,authentication and so on
- // - sendBuf:[parameter][data]
- // - recvBuf:[status(1byte)][return data]
- //
- 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;
- }
- ////////非接(IC)部分 end/////////////////////////////////////////////////////////
- virtual ErrorCodeEnum DevOpenEx(DWORD dwPort, DWORD dwBaudRate, BYTE btOpenType, const char* pDevSN, BYTE& btType)
- {
- return Error_Succeed;
- }
- /////////////////////////////////////////////////////////////////////////
- ///以下是便携式卡机特有API,接口实现中其他机型直接返回Error_NotImpl即可//
- /////////////////////////////////////////////////////////////////////////
- // 返回值Error_Succeed表示成功,其他值表示失败
- // iStatus 0:成功 -1:银行公钥不存在 -2:产生设备密钥故障 -x:其他厂商自定义故障
- // Cr1:随机数r1的密文; Cr3:随机数r3的密文,dKey:用银行公钥加密的设备公钥密文
- // r1,r3第16字节为数据完整性校验字节,例如r1为B1B2...B15B16,则B16=B1^B2^...^B15
- virtual ErrorCodeEnum TransferEnInit(int& iStatus, BYTE*& Cr1, int& lenR1, BYTE*& Cr3, int& lenR3, BYTE*& dKey, int& lenKey)
- {
- return Error_NotImpl;
- }
- // 返回值Error_Succeed表示成功,其他值表示失败
- // iStatus 0:成功 -x:厂商自定义故障
- // r2第16字节为数据完整性校验字节,例如r2为B1B2...B15B16,则B16=B1^B2^...^B15
- virtual ErrorCodeEnum SetR2(int& iStatus, BYTE* pCr2, int lenR2)
- {
- return Error_NotImpl;
- }
- //
- // 设置会话密钥
- // pWorkingKey:会话密钥,传递16进制的字符形式,例如0x123456FFAB --> "123456FFAB"
- virtual ErrorCodeEnum SendWorkingKey(const char* pWorkingKey)
- {
- return Error_NotImpl;
- }
- //安全锁接口部分 begin
- virtual ErrorCodeEnum SLLoadKey(const SCIKeyInfo key)
- {
- return Error_NotImpl;
- }
- //case ParamBeep: value:0,close beep;value:1,open beep
- //case ParamLed: value:0,close led;value:1,open led
- //case ParamLevelTime: value:the duration of level,100ms per unit
- // ex. the value 10 means duration time is 1 second
- virtual ErrorCodeEnum SLSetParam(SCIParamType eType, int value)
- {
- return Error_NotImpl;
- }
- virtual ErrorCodeEnum SLLock()
- {
- return Error_NotImpl;
- }
- virtual ErrorCodeEnum SLUnLock(const SCICheckCode checkCode, bool bTemp = true)
- {
- return Error_NotImpl;
- }
- virtual ErrorCodeEnum SLGetTempData(SCITempData& ksnData, SCITempData& ramData)
- {
- return Error_NotImpl;
- }
- virtual ErrorCodeEnum SLOpenDoor(const SCITempData data)
- {
- return Error_NotImpl;
- }
- //安全锁接口部分 end
- //蓝牙控制部分 start
- //蓝牙指令控制,命令参看SCIBluetoothCMD说明
- virtual ErrorCodeEnum BluetoothControl(SCIBluetoothCMD eCmd)
- {
- return Error_NotImpl;
- }
- //修改配对密码
- virtual ErrorCodeEnum BluetoothModifyKey(unsigned char* key)
- {
- return Error_NotImpl;
- }
- //修改蓝牙设备名称
- virtual ErrorCodeEnum BluetoothModifyName(unsigned char* name)
- {
- return Error_NotImpl;
- }
- //获取版本信息
- virtual ErrorCodeEnum BluetoothGetVersion(char*& version)
- {
- return Error_NotImpl;
- }
- //获取连接设备名称
- virtual ErrorCodeEnum BluetoothGetConnectName(unsigned char*& name)
- {
- return Error_NotImpl;
- }
- //获取连接设备信号强度
- virtual ErrorCodeEnum BluetoothGetSignalStrength(unsigned char*& signal)
- {
- return Error_NotImpl;
- }
- //蓝牙控制部分 end
- //控制灯光
- //eLight:所控制的灯 ;
- //bOnOff:true 亮灯;fasle 灭灯
- virtual ErrorCodeEnum LightControl(SCILightType eLight, bool bOnOff)
- {
- return Error_NotImpl;
- }
- //以百分比数值返回剩余电量(1-100),例如剩余51%,则bat赋值为51
- virtual ErrorCodeEnum QueryBatteryPower(int& bat)
- {
- return Error_NotImpl;
- }
- //把卡片从读卡器移动到指定卡槽位
- virtual ErrorCodeEnum MoveCardToSlot(int slot) { return Error_NotImpl; }
- //把卡片从指定卡槽位移动到读卡器
- virtual ErrorCodeEnum MoveCardFromSlot(int slot) { return Error_NotImpl; }
- //读取卡号
- //优先从IC卡解析卡号,如果纯磁条卡,则返回磁道解析的卡号
- virtual ErrorCodeEnum ReadAccount(CardNo& cardNo) { return Error_NotImpl; }
- //获取总卡槽数
- virtual ErrorCodeEnum GetSlotSum(int& sum) { return Error_NotImpl; }
- //获取卡槽状态
- virtual ErrorCodeEnum QuerySlotsStatus(SlotStatus& slots, const int slot, bool bFull = false) { return Error_NotImpl; }
- private:
- int m_mode;
- };
- #endif //LIBFRAMEWORK_CARDISSUER_IMPL_H
|