⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tstgetid.c

📁 HT系列掌机部分功能测试程序(含源码)
💻 C
字号:
/* Get the serail number for commplus on HT1820 through communication file server
   project file should include:
        commplus.c
        cplib.lib
*/

  #include <conio.h>
  #include <stdio.h>
  #include <string.h>
  #include <commplus.h>

  char ComPlsMsg[19][31]={
   /*eng_NOT_READY*/       {"Communication time out"},
   /*eng_IO_ERROR*/	       {"Communication I/O error"},
   /*eng_TOO_LONG*/	       {"Internal Error 3"},
   /*eng_INVALID_MD*/      {"Internal Error 4"},
   /*eng_ILLEGAL_BDRT*/    {"Internal Error 5"},
   /*eng_EXF_CANCELED*/    {"Coping has been aborted"},
   /*eng_EXF_NAM_MIST*/    {"Internal Error 7"},
   /*eng_EXF_INVALID_CD*/  {"Internal Error 8"},
   /*eng_EXF_TRUNCATED*/   {"File truncated"},
   /*eng_EXF_ALRDY_OPN*/   {"Internal Error 10"},
   /*eng_EXF_ILLEGAL_FN*/  {"Internal Error 11"},
   /*eng_EXF_CODE_12*/     {"Internal Error 12"},
   /*eng_CLNT_REQ_REJECT*/ {"Request has been rejected"},
   /*eng_CLNT_REQ_NOTSUP*/ {"Request has not been supported"},
   /*eng_EXFerr_fOpen*/    {"File not found"},
   /*eng_EXFerr_fCreate*/  {"Illegal file path"},
   /*eng_EXFerr_fRead*/    {"File read error"},
   /*eng_EXFerr_fWrite*/   {"Disk full"},
   /*eng_EXFerr_fErase*/   {"File Erase Error"}};


  int  ParseComLn(int  argc, char *argv[],
                  unsigned char *CommPort,
                  unsigned int  *SerialNo,
                  unsigned long  *BaudRate)

  {
    int  i, result=1;
    unsigned char Mode, Port;
    unsigned int  SNo,SBdRt;
    unsigned long BdRt;

    if (!ComPlsInstalled())
       if (InstallComPls(0) == 2)
          {
           cprintf("BIOS Setting for COM1 or COM2 Error!!!!\r\n\n");
           return 0;
          }

    GetCommMode(&Mode, &Port, &SBdRt);

    SNo=0;

    if (SBdRt== 0xFFF0)
       BdRt = 115200;
       else
         BdRt =(unsigned long)SBdRt;

    for (i=1; i<argc; i++)
        switch (argv[i][0])
        {
         case 'c': ;
         case 'C': if (argv[i][1]=='1')
                      Port=0;
                      else if (argv[i][1]=='2')
                              Port=1;
                   break;
         case 'b': ;
         case 'B': sscanf(&argv[i][1], "%ld", &BdRt);
                   break;
         case 's': ;
         case 'S': sscanf(&argv[i][1], "%d", &SNo);
                   break;
        }

    *CommPort=Port;
    *BaudRate=BdRt;
    *SerialNo=SNo;

    return(result);
  }

  int main(int  argc, char *argv[])
  {
   unsigned char CommPort;
   unsigned int  SerialNo, YouID, SBaudRate;
   unsigned long BaudRate;
   int           result;

   directvideo=0;
   if (ParseComLn(argc, argv, &CommPort, &SerialNo, &BaudRate))
      {
       if (!ComPlsInstalled())
          InstallComPls(CommPort);

       if (BaudRate == 115200)
          SBaudRate = 0xFFF0;
          else
            SBaudRate = (unsigned int)BaudRate;

       if (!SetCommMode(_PAK_MODE, CommPort, SBaudRate))
          {
           EnableRx(0);
           result=SendClientReq(_SNO_REQ, SerialNo, " ", &YouID);
           if (result)
              if (result==_REJECTED)
                 printf("access denied\n");
              else
                 printf("\nCommPls Error: %s\n", ComPlsMsg[result-1]);
           else
              printf("You ID is %d\n", YouID);
           DisableRx();
          }
          else
            printf("%u is an invalid baud rate for CommPlus.\n", BaudRate);
          UninstComPls();
      }
      getchar();
      return 0;
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -