mirror of
https://dev.iopsys.eu/bbf/bbfdm.git
synced 2025-12-10 07:44:39 +01:00
Ticket refs #921: TR-181: Device.USB. object (fix read data from system files)
This commit is contained in:
parent
764f8df188
commit
cbbbbf36d9
2 changed files with 47 additions and 29 deletions
42
dmcommon.c
42
dmcommon.c
|
|
@ -1802,7 +1802,7 @@ int copy_temporary_file_to_original_file(char *f1, char *f2)
|
||||||
char* readFileContent(char *filepath){
|
char* readFileContent(char *filepath){
|
||||||
char *str=NULL, *tmp= NULL, *res= NULL;
|
char *str=NULL, *tmp= NULL, *res= NULL;
|
||||||
FILE *f = fopen(filepath, "rb");
|
FILE *f = fopen(filepath, "rb");
|
||||||
int i;
|
int i, j= 0;
|
||||||
|
|
||||||
if(f==NULL)
|
if(f==NULL)
|
||||||
return "";
|
return "";
|
||||||
|
|
@ -1815,20 +1815,38 @@ char* readFileContent(char *filepath){
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
||||||
filecontent[fsize] = 0;
|
filecontent[fsize] = 0;
|
||||||
return filecontent;
|
for(i=0; i<strlen(filecontent); i++){
|
||||||
|
if(filecontent[i]<48 || (filecontent[i]>57 && filecontent[i]<65) || (filecontent[i]>90 && filecontent[i]<91) || filecontent[i]>122){
|
||||||
|
if(!j)
|
||||||
|
continue;
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!tmp){
|
||||||
|
dmasprintf(&str, "%c", filecontent[i]);
|
||||||
|
j++;
|
||||||
|
tmp= dmstrdup(str);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
j++;
|
||||||
|
dmasprintf(&str, "%s%c", tmp, filecontent[i]);
|
||||||
|
if(tmp){
|
||||||
|
free(tmp);
|
||||||
|
tmp= NULL;
|
||||||
|
}
|
||||||
|
tmp= dmstrdup(str);
|
||||||
|
if(str!=NULL){
|
||||||
|
free(str);
|
||||||
|
str= NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
res= (char *)malloc((j+1)*sizeof(char));
|
||||||
|
strcpy(res, tmp);
|
||||||
|
res[j]= 0;
|
||||||
|
return res;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char* readFileContentAlphanum(char *filepath){
|
|
||||||
char *filecontent;
|
|
||||||
char rv = 0;
|
|
||||||
FILE *fp;
|
|
||||||
fp = fopen(filepath, "r");
|
|
||||||
if(fp==NULL)
|
|
||||||
return "";
|
|
||||||
rv = fscanf(fp, "%m[A-Za-z0-9]", &filecontent);
|
|
||||||
return filecontent;
|
|
||||||
}
|
|
||||||
void writeFileContent(const char *filepath, const char *data)
|
void writeFileContent(const char *filepath, const char *data)
|
||||||
{
|
{
|
||||||
FILE *fp = fopen(filepath, "ab");
|
FILE *fp = fopen(filepath, "ab");
|
||||||
|
|
|
||||||
|
|
@ -1035,7 +1035,7 @@ int get_USBUSBHostsHostDevice_USBVersion(char *refparam, struct dmctx *ctx, void
|
||||||
char *strhex, *filepath;
|
char *strhex, *filepath;
|
||||||
|
|
||||||
dmasprintf(&filepath,"%s/bcdDevice", usbdev->folder_path);
|
dmasprintf(&filepath,"%s/bcdDevice", usbdev->folder_path);
|
||||||
strhex= readFileContentAlphanum(filepath);
|
strhex= readFileContent(filepath);
|
||||||
dmasprintf(value, "%c.%c", strhex[1], strhex[2]);
|
dmasprintf(value, "%c.%c", strhex[1], strhex[2]);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -1058,7 +1058,7 @@ int get_USBUSBHostsHostDevice_DeviceSubClass(char *refparam, struct dmctx *ctx,
|
||||||
char *bDevCls, *filepath;
|
char *bDevCls, *filepath;
|
||||||
|
|
||||||
dmasprintf(&filepath,"%s/bDeviceSubClass", usbdev->folder_path);
|
dmasprintf(&filepath,"%s/bDeviceSubClass", usbdev->folder_path);
|
||||||
bDevCls= readFileContentAlphanum(filepath);
|
bDevCls= readFileContent(filepath);
|
||||||
|
|
||||||
dmasprintf(value, "%c%c", bDevCls[0], bDevCls[1]);
|
dmasprintf(value, "%c%c", bDevCls[0], bDevCls[1]);
|
||||||
|
|
||||||
|
|
@ -1077,7 +1077,7 @@ int get_USBUSBHostsHostDevice_DeviceProtocol(char *refparam, struct dmctx *ctx,
|
||||||
char *bDevProto, *filepath;
|
char *bDevProto, *filepath;
|
||||||
|
|
||||||
dmasprintf(&filepath,"%s/bDeviceProtocol", usbdev->folder_path);
|
dmasprintf(&filepath,"%s/bDeviceProtocol", usbdev->folder_path);
|
||||||
bDevProto= readFileContentAlphanum(filepath);
|
bDevProto= readFileContent(filepath);
|
||||||
|
|
||||||
dmasprintf(value, "%c%c", bDevProto[0], bDevProto[1]);
|
dmasprintf(value, "%c%c", bDevProto[0], bDevProto[1]);
|
||||||
|
|
||||||
|
|
@ -1090,7 +1090,7 @@ int get_USBUSBHostsHostDevice_ProductID(char *refparam, struct dmctx *ctx, void
|
||||||
char *idProd, *filepath;
|
char *idProd, *filepath;
|
||||||
|
|
||||||
dmasprintf(&filepath,"%s/idProduct", usbdev->folder_path);
|
dmasprintf(&filepath,"%s/idProduct", usbdev->folder_path);
|
||||||
idProd= readFileContentAlphanum(filepath);
|
idProd= readFileContent(filepath);
|
||||||
|
|
||||||
dmasprintf(value, "%c%c%c%c", idProd[0], idProd[1], idProd[2], idProd[3]);
|
dmasprintf(value, "%c%c%c%c", idProd[0], idProd[1], idProd[2], idProd[3]);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -1102,7 +1102,7 @@ int get_USBUSBHostsHostDevice_VendorID(char *refparam, struct dmctx *ctx, void *
|
||||||
char *idVendor, *filepath;
|
char *idVendor, *filepath;
|
||||||
|
|
||||||
dmasprintf(&filepath,"%s/idVendor", usbdev->folder_path);
|
dmasprintf(&filepath,"%s/idVendor", usbdev->folder_path);
|
||||||
idVendor= readFileContentAlphanum(filepath);
|
idVendor= readFileContent(filepath);
|
||||||
|
|
||||||
dmasprintf(value, "%c%c%c%c", idVendor[0], idVendor[1], idVendor[2], idVendor[3]);
|
dmasprintf(value, "%c%c%c%c", idVendor[0], idVendor[1], idVendor[2], idVendor[3]);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -1114,7 +1114,7 @@ int get_USBUSBHostsHostDevice_Manufacturer(char *refparam, struct dmctx *ctx, vo
|
||||||
char *filepath;
|
char *filepath;
|
||||||
|
|
||||||
dmasprintf(&filepath,"%s/manufacturer", usbdev->folder_path);
|
dmasprintf(&filepath,"%s/manufacturer", usbdev->folder_path);
|
||||||
*value= readFileContentAlphanum(filepath);
|
*value= readFileContent(filepath);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1124,7 +1124,7 @@ int get_USBUSBHostsHostDevice_ProductClass(char *refparam, struct dmctx *ctx, vo
|
||||||
char *filepath;
|
char *filepath;
|
||||||
|
|
||||||
dmasprintf(&filepath,"%s/product", usbdev->folder_path);
|
dmasprintf(&filepath,"%s/product", usbdev->folder_path);
|
||||||
*value= readFileContentAlphanum(filepath);
|
*value= readFileContent(filepath);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1134,7 +1134,7 @@ int get_USBUSBHostsHostDevice_SerialNumber(char *refparam, struct dmctx *ctx, vo
|
||||||
char *filepath;
|
char *filepath;
|
||||||
|
|
||||||
dmasprintf(&filepath,"%s/urbnum", usbdev->folder_path);
|
dmasprintf(&filepath,"%s/urbnum", usbdev->folder_path);
|
||||||
*value= readFileContentAlphanum(filepath);
|
*value= readFileContent(filepath);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1168,7 +1168,7 @@ int get_USBUSBHostsHostDevice_Rate(char *refparam, struct dmctx *ctx, void *data
|
||||||
struct usb_port *port= (struct usb_port *)data;
|
struct usb_port *port= (struct usb_port *)data;
|
||||||
char *filepath= NULL, *speed;
|
char *filepath= NULL, *speed;
|
||||||
dmasprintf(&filepath, "%s/speed", port->folder_path);
|
dmasprintf(&filepath, "%s/speed", port->folder_path);
|
||||||
speed= readFileContentAlphanum(filepath);
|
speed= readFileContent(filepath);
|
||||||
if(strcmp(speed, "1.5") == 0)
|
if(strcmp(speed, "1.5") == 0)
|
||||||
*value= "Low";
|
*value= "Low";
|
||||||
else if(strcmp(speed, "12") == 0)
|
else if(strcmp(speed, "12") == 0)
|
||||||
|
|
@ -1201,7 +1201,7 @@ int get_USBUSBHostsHostDevice_MaxChildren(char *refparam, struct dmctx *ctx, voi
|
||||||
struct usb_port *port= (struct usb_port *)data;
|
struct usb_port *port= (struct usb_port *)data;
|
||||||
char *filepath= NULL, *maxchild;
|
char *filepath= NULL, *maxchild;
|
||||||
dmasprintf(&filepath, "%s/maxchild", port->folder_path);
|
dmasprintf(&filepath, "%s/maxchild", port->folder_path);
|
||||||
maxchild= readFileContentAlphanum(filepath);
|
maxchild= readFileContent(filepath);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1210,7 +1210,7 @@ int get_USBUSBHostsHostDevice_IsSuspended(char *refparam, struct dmctx *ctx, voi
|
||||||
struct usb_port *port= (struct usb_port *)data;
|
struct usb_port *port= (struct usb_port *)data;
|
||||||
char *filepath= NULL, *status;
|
char *filepath= NULL, *status;
|
||||||
dmasprintf(&filepath, "%s/power/runtime_status", port->folder_path);
|
dmasprintf(&filepath, "%s/power/runtime_status", port->folder_path);
|
||||||
status= readFileContentAlphanum(filepath);
|
status= readFileContent(filepath);
|
||||||
if(strncmp(status, "suspended", 9) == 0)
|
if(strncmp(status, "suspended", 9) == 0)
|
||||||
*value= "1";
|
*value= "1";
|
||||||
else
|
else
|
||||||
|
|
@ -1229,7 +1229,7 @@ int get_USBUSBHostsHostDevice_ConfigurationNumberOfEntries(char *refparam, struc
|
||||||
struct usb_port *port= (struct usb_port *)data;
|
struct usb_port *port= (struct usb_port *)data;
|
||||||
char *filepath= NULL;
|
char *filepath= NULL;
|
||||||
dmasprintf(&filepath, "%s/bNumConfigurations", port->folder_path);
|
dmasprintf(&filepath, "%s/bNumConfigurations", port->folder_path);
|
||||||
*value= readFileContentAlphanum(filepath);
|
*value= readFileContent(filepath);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1239,7 +1239,7 @@ int get_USBUSBHostsHostDeviceConfiguration_ConfigurationNumber(char *refparam, s
|
||||||
struct usb_port *port= (struct usb_port *)data;
|
struct usb_port *port= (struct usb_port *)data;
|
||||||
char *filepath= NULL;
|
char *filepath= NULL;
|
||||||
dmasprintf(&filepath, "%s/bConfigurationValue", port->folder_path);
|
dmasprintf(&filepath, "%s/bConfigurationValue", port->folder_path);
|
||||||
*value= readFileContentAlphanum(filepath);
|
*value= readFileContent(filepath);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1257,7 +1257,7 @@ int get_USBUSBHostsHostDeviceConfigurationInterface_InterfaceNumber(char *refpar
|
||||||
struct usb_port *port= (struct usb_port *)data;
|
struct usb_port *port= (struct usb_port *)data;
|
||||||
char *filepath= NULL;
|
char *filepath= NULL;
|
||||||
dmasprintf(&filepath, "%s/bInterfaceNumber", port->folder_path);
|
dmasprintf(&filepath, "%s/bInterfaceNumber", port->folder_path);
|
||||||
*value= readFileContentAlphanum(filepath);
|
*value= readFileContent(filepath);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1266,7 +1266,7 @@ int get_USBUSBHostsHostDeviceConfigurationInterface_InterfaceClass(char *refpara
|
||||||
struct usb_port *port= (struct usb_port *)data;
|
struct usb_port *port= (struct usb_port *)data;
|
||||||
char *filepath= NULL;
|
char *filepath= NULL;
|
||||||
dmasprintf(&filepath, "%s/bInterfaceClass", port->folder_path);
|
dmasprintf(&filepath, "%s/bInterfaceClass", port->folder_path);
|
||||||
*value= readFileContentAlphanum(filepath);
|
*value= readFileContent(filepath);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1275,7 +1275,7 @@ int get_USBUSBHostsHostDeviceConfigurationInterface_InterfaceSubClass(char *refp
|
||||||
struct usb_port *port= (struct usb_port *)data;
|
struct usb_port *port= (struct usb_port *)data;
|
||||||
char *filepath= NULL;
|
char *filepath= NULL;
|
||||||
dmasprintf(&filepath, "%s/bInterfaceSubClass", port->folder_path);
|
dmasprintf(&filepath, "%s/bInterfaceSubClass", port->folder_path);
|
||||||
*value= readFileContentAlphanum(filepath);
|
*value= readFileContent(filepath);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1284,7 +1284,7 @@ int get_USBUSBHostsHostDeviceConfigurationInterface_InterfaceProtocol(char *refp
|
||||||
struct usb_port *port= (struct usb_port *)data;
|
struct usb_port *port= (struct usb_port *)data;
|
||||||
char *filepath= NULL;
|
char *filepath= NULL;
|
||||||
dmasprintf(&filepath, "%s/bInterfaceProtocol", port->folder_path);
|
dmasprintf(&filepath, "%s/bInterfaceProtocol", port->folder_path);
|
||||||
*value= readFileContentAlphanum(filepath);
|
*value= readFileContent(filepath);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue