Skip to content

Instantly share code, notes, and snippets.

@galvesribeiro
Created October 24, 2018 01:33
Show Gist options
  • Save galvesribeiro/0a9ce555d98c95f5256e8374c64f9d64 to your computer and use it in GitHub Desktop.
Save galvesribeiro/0a9ce555d98c95f5256e8374c64f9d64 to your computer and use it in GitHub Desktop.
Crap test TS
public RequestDevice = (options: USBRequestDeviceOptions): Promise<DeviceFound> => {
function isEmpty(obj) {
for (var prop in obj) {
if (Object.prototype.hasOwnProperty.call(obj, prop)) {
return false;
}
}
return true;
}
let filters: any[] = [];
let reqOptions: any = undefined;
console.log(options);
if (options && options != null && options.filters && options.filters != null && options.filters.length > 0) {
options.filters.forEach(f => {
let filter: any = {};
console.log('Filter:');
console.log(f);
if (f.ClassCode !== null) {
console.log("ClassCode");
filter['classCode'] = f.ClassCode;
console.log(filter);
}
if (f.ProductId !== null) {
console.log("ProductId");
filter = Object.assign({}, ...filter, f.ProductId);
}
if (f.ProtocolCode !== null) {
console.log("ProtocolCode");
filter = Object.assign({}, ...filter, f.ProtocolCode);
}
if (f.SerialNumber !== null) {
console.log("SerialNumber");
filter = Object.assign({}, ...filter, f.SerialNumber);
}
if (f.SubClassCode !== null) {
console.log("SubClassCode");
filter = Object.assign({}, ...filter, f.SubClassCode);
}
if (f.VendorId !== null) {
console.log("VendorId");
filter = Object.assign({}, ...filter, f.VendorId);
}
if (!isEmpty(filter)) {
console.log("Push");
filters.push(filter);
}
});
if (filters.length > 0) {
reqOptions = { filters: filters };
}
} else {
reqOptions = { filters: [] };
}
console.log('Options:');
console.log(reqOptions);
return new Promise((resolve, reject) => {
this.usb.requestDevice(reqOptions)//{ filters: [{ productId: 0x0028, vendorId: 0x079b, serialNumber: "", classCode: 0 }, { productId: 0xc902, vendorId: 0x1753, serialNumber: "", classCode: 0 }] })
.then(device => {
console.log(device);
let found = { VendorId: device.vendorId, ProductId: device.productId, };
resolve(found);
})
.catch(err => reject(err));
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment