writecard.h
来自「这是一个电力多功能电表的参数设置工具软件」· C头文件 代码 · 共 109 行
H
109 行
//---------------------------------------------------------------------------
#ifndef writeCardH
#define writeCardH
//---------------------------------------------------------------------------
#endif
int _stdcall (*READACR)(int comPort,int cardType,
unsigned char *buffer,int length);
int _stdcall (*WRITEACR)(int comPort,int cardType,
unsigned char *buffer);
int returnBz(int iResult);
int readCard(int iPort,int iCardType,char *readStr,int iReadLen);
int writeCard(int iPort,int iCardType,char *writeStr);
int returnBz(int iResult)
{
int iReturn;
switch (iResult)
{
case -1:
case -2:
case -3:
case -19:
iReturn=Application->MessageBox("串口通讯错误!","通讯", MB_RETRYCANCEL+MB_ICONEXCLAMATION);
break;
case -4:
case -5:
case -6:
case -7:
case -30:
iReturn=Application->MessageBox("写卡数据有误!","通讯", MB_RETRYCANCEL+MB_ICONEXCLAMATION);
break;
case -8:
iReturn=Application->MessageBox("电卡类型错误或电卡没插!","通讯", MB_RETRYCANCEL+MB_ICONEXCLAMATION);
break;
case -9:
iReturn=Application->MessageBox("通讯超时!","通讯", MB_RETRYCANCEL+MB_ICONEXCLAMATION);
break;
case -10:
case -23:
iReturn=Application->MessageBox("写卡数据校验错误!","通讯", MB_RETRYCANCEL+MB_ICONEXCLAMATION);
break;
case -21:
case -29:
iReturn=Application->MessageBox("IC 卡操作错误或写卡数据校验错误!","通讯", MB_RETRYCANCEL+MB_ICONEXCLAMATION);
break;
case -22:
iReturn=Application->MessageBox("IC 卡没插!","通讯", MB_RETRYCANCEL+MB_ICONEXCLAMATION);
break;
}
return iReturn; //4--retury
}
int readCard(int iPort,int iCardType,char *readStr,int iReadLen)
{
int iRetry=1;
int iResult;
HINSTANCE hInst;
hInst=LoadLibrary("ACRCOMM.dll");
(FARPROC &)READACR=GetProcAddress(hInst,"READACR");
while (iRetry)
{
iResult=READACR(iPort,iCardType,readStr,iReadLen);
if(iResult==0)
break;
else
if(returnBz(iResult)!=IDRETRY) break;
}
FreeLibrary(hInst);
return iResult;
}
int writeCard(int iPort,int iCardType,char *writeStr)
{
int iRetry=1;
int iResult;
HINSTANCE hInst;
hInst=LoadLibrary("ACRCOMM.dll");
(FARPROC &)WRITEACR=GetProcAddress(hInst,"WRITEACR");
while (iRetry)
{
iResult=WRITEACR(iPort,iCardType,writeStr);
if(iResult==0)
{
Application->MessageBox("写卡成功!","通讯", MB_OK+MB_ICONINFORMATION);
break;
}
else
if(returnBz(iResult)!=IDRETRY) break;
}
FreeLibrary(hInst);
return iResult;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?