#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';
}
#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';
}