175 lines
4.4 KiB
JavaScript
175 lines
4.4 KiB
JavaScript
'use strict';
|
|
|
|
let fakeDeviceInit = {
|
|
usbVersionMajor: 2,
|
|
usbVersionMinor: 0,
|
|
usbVersionSubminor: 0,
|
|
deviceClass: 7,
|
|
deviceSubclass: 1,
|
|
deviceProtocol: 2,
|
|
vendorId: 0x18d1,
|
|
productId: 0xf00d,
|
|
deviceVersionMajor: 1,
|
|
deviceVersionMinor: 2,
|
|
deviceVersionSubminor: 3,
|
|
manufacturerName: 'Google, Inc.',
|
|
productName: 'The amazing imaginary printer',
|
|
serialNumber: '4',
|
|
activeConfigurationValue: 0,
|
|
configurations: [
|
|
{
|
|
configurationValue: 1,
|
|
configurationName: 'Printer Mode',
|
|
interfaces: [
|
|
{
|
|
interfaceNumber: 0,
|
|
alternates: [{
|
|
alternateSetting: 0,
|
|
interfaceClass: 0xff,
|
|
interfaceSubclass: 0x01,
|
|
interfaceProtocol: 0x01,
|
|
interfaceName: 'Control',
|
|
endpoints: [{
|
|
endpointNumber: 1,
|
|
direction: 'in',
|
|
type: 'interrupt',
|
|
packetSize: 8
|
|
}]
|
|
}]
|
|
},
|
|
{
|
|
interfaceNumber: 1,
|
|
alternates: [{
|
|
alternateSetting: 0,
|
|
interfaceClass: 0xff,
|
|
interfaceSubclass: 0x02,
|
|
interfaceProtocol: 0x01,
|
|
interfaceName: 'Data',
|
|
endpoints: [
|
|
{
|
|
endpointNumber: 2,
|
|
direction: 'in',
|
|
type: 'bulk',
|
|
packetSize: 1024
|
|
},
|
|
{
|
|
endpointNumber: 2,
|
|
direction: 'out',
|
|
type: 'bulk',
|
|
packetSize: 1024
|
|
}
|
|
]
|
|
}]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
configurationValue: 2,
|
|
configurationName: 'Fighting Robot Mode',
|
|
interfaces: [{
|
|
interfaceNumber: 0,
|
|
alternates: [
|
|
{
|
|
alternateSetting: 0,
|
|
interfaceClass: 0xff,
|
|
interfaceSubclass: 0x42,
|
|
interfaceProtocol: 0x01,
|
|
interfaceName: 'Disabled',
|
|
endpoints: []
|
|
},
|
|
{
|
|
alternateSetting: 1,
|
|
interfaceClass: 0xff,
|
|
interfaceSubclass: 0x42,
|
|
interfaceProtocol: 0x01,
|
|
interfaceName: 'Activate!',
|
|
endpoints: [
|
|
{
|
|
endpointNumber: 1,
|
|
direction: 'in',
|
|
type: 'isochronous',
|
|
packetSize: 1024
|
|
},
|
|
{
|
|
endpointNumber: 1,
|
|
direction: 'out',
|
|
type: 'isochronous',
|
|
packetSize: 1024
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}]
|
|
},
|
|
{
|
|
configurationValue: 3,
|
|
configurationName: 'Non-sequential interface number and alternate ' +
|
|
'setting Mode',
|
|
interfaces: [
|
|
{
|
|
interfaceNumber: 0,
|
|
alternates: [
|
|
{
|
|
alternateSetting: 0,
|
|
interfaceClass: 0xff,
|
|
interfaceSubclass: 0x01,
|
|
interfaceProtocol: 0x01,
|
|
interfaceName: 'Control',
|
|
endpoints: [{
|
|
endpointNumber: 1,
|
|
direction: 'in',
|
|
type: 'interrupt',
|
|
packetSize: 8
|
|
}]
|
|
},
|
|
{
|
|
alternateSetting: 2,
|
|
interfaceClass: 0xff,
|
|
interfaceSubclass: 0x02,
|
|
interfaceProtocol: 0x01,
|
|
interfaceName: 'Data',
|
|
endpoints: [
|
|
{
|
|
endpointNumber: 2,
|
|
direction: 'in',
|
|
type: 'bulk',
|
|
packetSize: 1024
|
|
},
|
|
{
|
|
endpointNumber: 2,
|
|
direction: 'out',
|
|
type: 'bulk',
|
|
packetSize: 1024
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
interfaceNumber: 2,
|
|
alternates: [{
|
|
alternateSetting: 0,
|
|
interfaceClass: 0xff,
|
|
interfaceSubclass: 0x02,
|
|
interfaceProtocol: 0x01,
|
|
interfaceName: 'Data',
|
|
endpoints: [
|
|
{
|
|
endpointNumber: 2,
|
|
direction: 'in',
|
|
type: 'bulk',
|
|
packetSize: 1024
|
|
},
|
|
{
|
|
endpointNumber: 2,
|
|
direction: 'out',
|
|
type: 'bulk',
|
|
packetSize: 1024
|
|
}
|
|
]
|
|
}]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
};
|