#ifndef __CARDISSUERCLASS_IMPL_CRT591HDR1_H #define __CARDISSUERCLASS_IMPL_CRT591HDR1_H //#include "log4vendor.h" #include "CardIssuerClass.h" #include "ACT-Sankyo_DevCtrl.h" #include #define CARDISSUER_ADAPTER_MUTEX "CardIssuerAdapterMutex" //�����汾 #define FILE_MAJOR 1 #define FILE_MINOR 0 #define FILE_REVISION 0 #define FILE_BUILD 1 #define SaveErrorInfo(errMsg, errCode) _SaveErrorInfo(errMsg, errCode, __FUNCTION__, __LINE__) #define ErrorCodeToCMB(wRes) _ErrorCodeToCMB(wRes, __FUNCTION__, __LINE__) class CardIssuerClassImpl : public CardIssuerClass { public: CardIssuerClassImpl(); ~CardIssuerClassImpl(); protected: virtual ErrorCodeEnum GetDevCategory(DevCategoryInfo &devCategory); virtual ErrorCodeEnum Reset(); virtual ErrorCodeEnum DevClose(); virtual ErrorCodeEnum GetLastErr(DevErrorInfo &devErrInfo); virtual ErrorCodeEnum DevOpen(DWORD dwPort,DWORD dwBaudRate); virtual ErrorCodeEnum GetDevStatus(CardIssuerStatus &devStatus); virtual ErrorCodeEnum GetDeviceSN(char *&pDevSN); virtual ErrorCodeEnum MoveCard(CardPosEnum eCardPos, int hopperNo = 1); virtual ErrorCodeEnum SetCardInType(CardInEnum eCardIn); virtual ErrorCodeEnum MagRead(MagTracks &magTracks); virtual ErrorCodeEnum MagWrite(MagTracks magTracks,MagWriteModeEnum eWriteMode); virtual ErrorCodeEnum SetRetractCounter(DWORD dwCount); virtual ErrorCodeEnum SetIssuerCounter(DWORD dwCount,int hopperNo=1); virtual ErrorCodeEnum ActiveICCard(); virtual ErrorCodeEnum ContactIC(); virtual ErrorCodeEnum ReleaseIC(); virtual ErrorCodeEnum WarmReset(); virtual ErrorCodeEnum ICCommand(CmdInfo sendBuf,CmdInfo &recvBuf); //////////////////////////////////////////////////////////////////////////// ////////�ǽ�(IC)���� start��û�д˲��֣��ڽӿ�ʵ����ֱ�ӷ���Error_NotImpl/////////////// //////////////////////////////////////////////////////////////////////////// virtual ErrorCodeEnum ActiveContactlessICCard(char fstType, char scdType, char thdType, char &outType); virtual ErrorCodeEnum DeactivateICCard(); virtual ErrorCodeEnum DeactContactlessICCard(); virtual ErrorCodeEnum MifareCommand(MifareFuctionEnum eFunType, CmdInfo sendBuf, CmdInfo &recvBuf); virtual ErrorCodeEnum RFTypeABCommand(CmdInfo sendBuf, CmdInfo &recvBuf); ////////�ǽ�(IC)���� end///////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////// ///�����DZ�Яʽ��������API���ӿ�ʵ������������ֱ�ӷ���Error_NotImpl����// ///////////////////////////////////////////////////////////////////////// virtual ErrorCodeEnum DevOpenEx(DWORD dwPort, DWORD dwBaudRate, BYTE btOpenType,const char *pDevSN, BYTE &btType); virtual ErrorCodeEnum TransferEnInit(int &iStatus, BYTE *&Cr1, int &lenR1, BYTE *&Cr3, int &lenR3, BYTE *&dKey, int &lenKey); virtual ErrorCodeEnum SetR2(int &iStatus, BYTE *pCr2, int lenR2); virtual ErrorCodeEnum SendWorkingKey(const char *pWorkingKey); //��ȫ���ӿڲ��� begin virtual ErrorCodeEnum SLLoadKey(const SCIKeyInfo key); virtual ErrorCodeEnum SLSetParam(SCIParamType eType, int value); virtual ErrorCodeEnum SLLock(); virtual ErrorCodeEnum SLUnLock(const SCICheckCode checkCode, bool bTemp = true); virtual ErrorCodeEnum SLGetTempData(SCITempData &ksnData, SCITempData &ramData); virtual ErrorCodeEnum SLOpenDoor(const SCITempData data); //��ȫ���ӿڲ��� end //�������Ʋ��� start //����ָ�����ƣ������ο�SCIBluetoothCMD˵�� virtual ErrorCodeEnum BluetoothControl(SCIBluetoothCMD eCmd); //�޸��������� virtual ErrorCodeEnum BluetoothModifyKey(unsigned char *key); //�޸������豸���� virtual ErrorCodeEnum BluetoothModifyName(unsigned char *name); //��ȡ�汾��Ϣ virtual ErrorCodeEnum BluetoothGetVersion(char *&version); //��ȡ�����豸���� virtual ErrorCodeEnum BluetoothGetConnectName(unsigned char *&name); //��ȡ�����豸�ź�ǿ�� virtual ErrorCodeEnum BluetoothGetSignalStrength(unsigned char *&signal); //�������Ʋ��� end //���Ƶƹ� //eLight�������Ƶĵ� �� //bOnOff��true ���ƣ�fasle ���� virtual ErrorCodeEnum LightControl(SCILightType eLight, bool bOnOff); //�԰ٷֱ���ֵ����ʣ��������1-100��������ʣ��51%����bat��ֵΪ51 virtual ErrorCodeEnum QueryBatteryPower(int &bat); private: bool m_bDevOpen; bool m_bOpenReset; CHAR m_szErrMsg[MAX_DEV_ERROR_MSG_LEN]; CHAR m_szFWVer[128]; CHAR m_szCHUVer[128]; WORD m_wDevErrCode; //void SaveErrorInfo(CHAR* errMsg, CHAR* errCode, WORD wDevCode); void _SaveErrorInfo(CHAR* errMsg, int errCode, const CHAR* strFunc, int nLine); ErrorCodeEnum GetDevStatus_Private(CardIssuerStatus &devStatus); private: int string_format(std::string &str, const std::string fmt, ...); private: ErrorCodeEnum _ErrorCodeToCMB(WORD wRes, const CHAR* strFunc, int nLine); private: CACT_Sankyo_DevCtrl* m_pACT_Sankyo_DevCtrl; std::string m_strIniPath; //void CMBLogInit(); std::mutex m_mutex; }; #endif //__CARDISSUERCLASS_IMPL_CRT591HDR1_H