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 + -
显示快捷键?