📄 pcsccom.h
字号:
//pcsccom.h
#ifndef __PCSCCOM_H__
#define __PCSCCOM_H__
#ifdef _ExportLib
#define PCSCCOM_API __declspec(dllexport)
#else
#define PCSCCOM_API __declspec(dllimport)
//#pragma comment(lib, "PCSC_COM.lib")
#endif
//define protocol type
#define PCSC_T0 0
#define PCSC_T1 1
#define PCSC_SLE4428 2
#define PCSC_SLE4442 3
#define PCSC_SLE4406 4
#define PCSC_AT24C01 5
//define error code
#define FAIL_READ_DATA 0x1111 //failed to read data from communication port
#define WRONG_RETURN_FORMAT 0x3333 //fromat of returning data is wrong
#define FAIL_SET_T1 0x4444 //failed to set T=1 protocol
#define WRONG_READ_LENGTH 0x5555 //length of reading data is wrong
#define WRONG_INS_STRUCT 0x7777 //instruction struct is wrong
#define FAIL_COMMUNICATE 0xFFFF //failed to communicate
#define RECEIVE_BUFFER_SIZE 1024
//define data struct
typedef struct //PCSCCOM_STRUCT
{
HANDLE hPortFile;
BOOL bOpen;
UINT nProtocolType;
BOOL fAPDUHead;
BOOL fConnect;
BOOL fReadReady;
HANDLE ReceiveThread;
DWORD ReceiveThreadID;
HANDLE hCardChangedMutex;
HANDLE ReceiveEvent;
OVERLAPPED WOverlapped;
OVERLAPPED ROverlapped;
CHAR LastReceivedBuffer[RECEIVE_BUFFER_SIZE];
INT LastReceivedLength;
UINT nTryConnect;
}PCSCCOM_STRUCT;
//declare global variable
extern PCSCCOM_STRUCT g_STUPortArray[256];
#ifdef __cplusplus
extern "C"
{
#endif
BOOL bOpenPort(void);//nPortNum = 0 : COM1
void ClosePort(void);
DWORD PortThreadProc( void);
//////////////////////////////////////////
//incoming
BOOL bReadData( BYTE *pReadBuf, UINT *nReadDataLen);
//outgoing
BOOL bWriteData( char *pWriteBuf, UINT nWriteDataLen);
///////assisant function
BYTE cSumParityByte(BYTE *pInData, UINT nInDataLen);
BOOL bCheckParityByte(BYTE *pInData, UINT nInDataLen, BYTE cCheckParityByte);
BOOL nPackHexToByte(BYTE *pInData, UINT nInDataLen, BYTE *pOutData, UINT *nOutDataLen);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -