1
+ export interface USBDeviceFound {
2
+ usbVersionMajor : number ,
3
+ usbVersionMinor : number ,
4
+ usbVersionSubminor : number ,
5
+ deviceClass : number ,
6
+ deviceSubclass : number ,
7
+ deviceProtocol : number ,
8
+ vendorId : number ,
9
+ productId : number ,
10
+ deviceVersionMajor : number ,
11
+ deviceVersionMinor : number ,
12
+ deviceVersionSubminor : number ,
13
+ manufacturerName : string ,
14
+ productName : string ,
15
+ serialNumber : string ,
16
+ configuration : USBConfiguration ,
17
+ configurations : USBConfiguration [ ] ,
18
+ opened : boolean
19
+ }
20
+ export interface USBConfiguration { configurationValue : number , configurationName : string , interfaces : USBInterface [ ] }
21
+ export interface USBInterface { interfaceNumber : number , alternate : USBAlternateInterface | null , alternates : USBAlternateInterface [ ] , claimed : boolean }
22
+ export interface USBAlternateInterface { alternateSetting : number , interfaceClass : number , interfaceSubclass : number , interfaceProtocol : number , interfaceName : string , endpoints : USBEndpoint [ ] }
23
+ export interface USBDeviceFilter { vendorId : number , productId : number , classCode : any , subClassCode : any , protocolCode : any , serialNumber : string }
24
+ export interface USBRequestDeviceOptions { filters : USBDeviceFilter [ ] }
25
+ export interface USBEndpoint { endpointNumber : number , direction : USBDirection , type : USBEndpointType , packetSize : number }
26
+ export enum USBDirection { "in" , "out" }
27
+ export enum USBEndpointType { "bulk" , "interrupt" , "isochronous" }
28
+
29
+ export function ParseUSBDevice ( rawDevice : any ) : USBDeviceFound {
30
+ return {
31
+ usbVersionMajor : rawDevice . usbVersionMajor ,
32
+ usbVersionMinor : rawDevice . usbVersionMinor ,
33
+ usbVersionSubminor : rawDevice . usbVersionSubminor ,
34
+ deviceClass : rawDevice . deviceClass ,
35
+ deviceSubclass : rawDevice . deviceSubclass ,
36
+ deviceProtocol : rawDevice . deviceProtocol ,
37
+ vendorId : rawDevice . vendorId ,
38
+ productId : rawDevice . productId ,
39
+ deviceVersionMajor : rawDevice . deviceVersionMajor ,
40
+ deviceVersionMinor : rawDevice . deviceVersionMinor ,
41
+ deviceVersionSubminor : rawDevice . deviceVersionSubminor ,
42
+ manufacturerName : rawDevice . manufacturerName ,
43
+ productName : rawDevice . productName ,
44
+ serialNumber : rawDevice . serialNumber ,
45
+ configuration : ParseUSBConfiguration ( rawDevice . configuration ) ,
46
+ configurations : rawDevice . configurations . map ( raw => ParseUSBConfiguration ( raw ) ) ,
47
+ opened : rawDevice . opened
48
+ } ;
49
+ }
50
+
51
+ function ParseUSBConfiguration ( rawConfiguration : any ) : USBConfiguration {
52
+ return {
53
+ configurationValue : rawConfiguration . configurationValue ,
54
+ configurationName : rawConfiguration . configurationName ,
55
+ interfaces : rawConfiguration . interfaces . map ( raw => ParseUSBInterface ( raw ) )
56
+ } ;
57
+ }
58
+
59
+ function ParseUSBInterface ( rawInterface : any ) : USBInterface {
60
+ return {
61
+ interfaceNumber : rawInterface . interfaceNumber ,
62
+ alternate : rawInterface . alternate ? ParseUSBAlternateInterface ( rawInterface . alternate ) : null ,
63
+ alternates : rawInterface . alternates . map ( raw => ParseUSBAlternateInterface ( raw ) ) ,
64
+ claimed : rawInterface . claimed
65
+ } ;
66
+ }
67
+
68
+ function ParseUSBAlternateInterface ( rawAlternate : any ) : USBAlternateInterface {
69
+ return {
70
+ alternateSetting : rawAlternate . alternateSetting ,
71
+ interfaceClass : rawAlternate . interfaceClass ,
72
+ interfaceSubclass : rawAlternate . interfaceSubclass ,
73
+ interfaceProtocol : rawAlternate . interfaceProtocol ,
74
+ interfaceName : rawAlternate . interfaceName ,
75
+ endpoints : rawAlternate . endpoints . map ( raw => ParseUSBEndpoint ( raw ) )
76
+ } ;
77
+ }
78
+
79
+ function ParseUSBEndpoint ( rawEndpoint : any ) : USBEndpoint {
80
+ return {
81
+ endpointNumber : rawEndpoint . endpointNumber ,
82
+ direction : < USBDirection > rawEndpoint . direction ,
83
+ type : < USBEndpointType > rawEndpoint . type ,
84
+ packetSize : rawEndpoint . packetSize
85
+ } ;
86
+ }
0 commit comments