c LINUX环境USB3.0 侦测试程式

10 篇文章 0 订阅
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>
#include <limits.h>
#include <fcntl.h>
#include <unistd.h>
#include <dirent.h>


typedef struct _UsbInfo{
char product[255];
char vendor[255];
char capabilities[255];
char configuration[255];
}UsbInfo;


typedef struct _TestResult{
int n;
char product[255];
char vendor[255];
char capabilities[255];
char configuration[255];
}TestResult;


void help();
void TestFail(int testtotal,int passnum,int failnum);
void TestPass(int testresultnum);
//void *VS_StrRTrim(char *pStr);
void *VS_StrLTrim(char *pStr);
int main(int argc,char *argv[])
{
if(argc==2)
{
   UsbInfo TestInfo{
     "product:USBT30",
     "vendor:BearTech",
     "capabilities:usb-2.10scsiemulatedscsi-host",
     "configuration:driver=usb-storagespeed=480Mbit/s"
};

  TestResult RunResult{
      0,
      "USBT30",
      " BearTech",
      " usb-2.10 scsi emulated scsi-host",
      " configuration: driver=usb-storage speed=480Mbit/s"
  };
  
  system("lshw >Temp.log");
  FILE * rfp;
  rfp=fopen("Temp.log","r");
  if(rfp==NULL)
  {
      printf("\033[31m Not Open Temp.log file\033[0m\n");
    return 1;
  }
  char ReadString[255];
  int TestUsbNum=0;
  TestUsbNum=atof(argv[1]);/*将参数字符型转换为整型*/
  bool product=false,vendor=false,capabilities=false,configuration=false;
  while(fgets(ReadString,sizeof(ReadString),rfp))
  {
      ReadString[strlen(ReadString)]='\0';
         char Temp[255];
         int i=0,r=0;
         for(;i<strlen(ReadString)-1;i++)
         {
             if(ReadString[i]!=' ')
             {
                Temp[r]=ReadString[i];
                r++;
             }
         }
         Temp[strlen(Temp)]='\0';
         strcpy(ReadString,Temp);
         //printf("%s",ReadString);
         //printf("\n%s\n",TestInfo.product);
      if(RunResult.n<=TestUsbNum)
      {
      if(product==false)
      {
       if(strcmp(ReadString,TestInfo.product)==0)
       product=true;
      }
      else if(vendor==false)
      {
       if(strcmp(ReadString,TestInfo.vendor)==0)
       vendor=true;
      }
      else if(capabilities==false)
      {
      if(strcmp(ReadString,TestInfo.capabilities)==0)
      capabilities=true;
      }
      else if(configuration==false)
      {
       if(strcmp(ReadString,TestInfo.configuration)==0)
        configuration=true;
      }
     
      if(product==true&&vendor==true&&capabilities==true&&configuration==true)
      {
       RunResult.n++;
      product=false;
      vendor=false;
      capabilities=false;
      configuration=false;
      }
      }       
      if(RunResult.n==TestUsbNum)
      {
       int num=RunResult.n;
       TestPass(num);
       fclose(rfp);
       return 0;
      }
               memset(Temp,0,sizeof(Temp));
               memset(ReadString,0,sizeof(ReadString));
  }
           getchar();
  TestFail(TestUsbNum,RunResult.n,TestUsbNum-RunResult.n);
  fclose(rfp);
  return 1;   
}
help();
return 1;
}


void help()
{
system("clear");
 printf("=========================================================================================================\n");
 printf("LINUX Usb3.0 TEST Tool -Ferex Incorporation ,By ShenBo,2017-12-21\n");
 printf("Usage   :USB30[Parameter]\n");
 printf("[Command]:\n");
 printf("            \033[37;44m USB30 number  ------->TEST USEB3.0 Number;                 \033[0m\n");
 printf("[Example]:\n");
 printf("           USB30 5 -------------------------->Test 5 USB3.0\n");
 printf("=========================================================================================================\n");
 printf("\n");
}


/*测试fail结果显示*/
void TestFail(int testtotal,int passnum,int failnum)
{
 system("clear");
 printf("-----------------------------------------------------------------------------------\n");
 printf("USB3.0 Test Results List:\n");
 printf("NO.              Test Total              Test Pass              Test Fail\n");
 printf("1");
 printf("                     %d",testtotal);
 printf("\033[32m                       %d\033[0m",passnum);
 printf("\033[31m                       %d\033[0m\n",failnum);
 printf("-----------------------------------------------------------------------------------\n");
}


/*测试pass结果显示*/
void TestPass(int testresultnum)
{
system("clear");
printf("-------------------------------------------------------------------------------------\n");
printf("NO. product     vendor          capabilities                    configuration\n");
int n=1;
for(;n<=testresultnum;n++)
{
 printf("\033[32m %d.   USBT30    BearTech    usb-2.10 scsi emulated      scsi-host driver=usb-storage speed=480Mbit/s\033[0m\n",n);
}
printf("-------------------------------------------------------------------------------------\n");
}


void *VS_StrLTrim(char *pStr)
{
    char *pTmp=pStr;
    while(*pTmp==' ')
    {
        pTmp++;
    }
    while(*pTmp!='\0')
    {
        *pStr=*pTmp;
        pStr++;
        pTmp++;
    }
    *pStr='\0';
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值