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

📄 exfdel.c

📁 HT系列掌机部分功能测试程序(含源码)
💻 C
字号:
/* Deleting specified file 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 *BdRtInput,
                  char          *Remotef)

  {
    int  i, result=0;
    unsigned char Mode, Port;
    unsigned int  SNo, BdRt;
    unsigned long  BdRttmp;

    if (ComPlsInstalled())
       {
        GetCommMode(&Mode, &Port, &BdRt);
        BdRttmp=BdRt;
       }
    else
       {
        Port=0;
        BdRttmp=38400;
       }

    SNo=0;

    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], "%lu", &BdRttmp);
                          break;
                case 's':;
                case 'S': sscanf(&argv[i][1], "%d", &SNo);
                          break;
                case 'r':
                case 'R': if (argv[i][1]!=0)
                             {
                              result=1;
                              strcpy(Remotef, &argv[i][1]);
                             }
                          break;
               }
    if (!result)
       {
        printf("Exfile Server Version 3.0 (C) 2000, LandTech Development Co.\n");
        printf("Syntax: EXFDEL rRemoteFile [bBaudRate] [{c1|c2}] [sSerialNo]\n");
        printf("RemoteFile: file name in remote machine to be erased\n");
        printf("BaudRate: 9600 19200 38400 57600 or 115200, default is 38400\n");
        printf("c1: use COM1  c2: use COM2\n");
        printf("SerialNo: serial no of remote machine, default is zero for all\n");
       }
    else
       {
        *CommPort=Port;
        *BdRtInput=BdRttmp;
        *SerialNo=SNo;
       }
    return(result);
  }


  int main(int  argc, char *argv[])
  {
   unsigned char CommPort;
   unsigned int  SerialNo, voidint;
   unsigned long BdRtInput;
   unsigned int  BaudRate;
   int           result;
   char          Remotef[256];

   directvideo=0;
   if (ParseComLn(argc, argv, &CommPort, &SerialNo, &BdRtInput, Remotef))
      {
       if (!ComPlsInstalled())
          if (InstallComPls(CommPort) == 2)
             {
              cprintf("BIOS Setting for COM1 or COM2 Error!!!!\r\n\n");
              return 0;
             }

       if (BdRtInput == 115200)
          BaudRate=0x0fff0;
       else
          BaudRate=(unsigned int)BdRtInput;

       if (!SetCommMode(_PAK_MODE, CommPort, BaudRate))
          {
           EnableRx(0);
           printf("Exfile Server Version 3.0 (C) 2000, LandTech Development Co.\n");
           printf("COM%u avaliable with baud rate %lu, oriented server %u \n", CommPort+1, BdRtInput, SerialNo);

           result=SendClientReq(_DEL_REQ, SerialNo, Remotef, &voidint);
           if (result)
              if (result==_REJECTED)
                 printf("EXT: %s not found or access denied\n", Remotef);
              else
                 printf("\nCommPls Error: %s\n", ComPlsMsg[result-1]);
           else
              printf("EXT: %s deleted.", Remotef);
           DisableRx();
          }
       else
          printf("%u is an invalid baud rate for CommPlus.\n", BdRtInput);
       UninstComPls();
      }
   return 0;
  }

⌨️ 快捷键说明

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