Я использую WEBUSB для чтения данных с весов.Устройство возвращается с status: stall
, когда данные передаются на контрольную передачу.
Последовательный порт от весовой машины был подключен к преобразователю RS232 USB в последовательный порт (BAFO BF-810 с IC PL2303)и USB подключен к компьютеру.Считывание данных с той же микросхемы PL2303 работало до того, как я не понял, почему возникла эта проблема.
vendorRead(value, index) {
return this.device.controlTransferIn({
requestType: 'class',
request: 0x01,
recipient: 'device',
value: value,
index: index
}, 1).then(buffer => buffer[0]);
}
vendorWrite(value, index) {
return this.device.controlTransferOut({
requestType: 'class',
request: 0x01,
recipient: 'device',
value: value,
index: index
});
}
setBaudRate() {
return this.device.controlTransferIn({
requestType: 'class',
request: 0x21,
recipient: 'interface',
value: 0,
index: 0
}, 7).then((data) => {
console.log(data)
const parameters = data.data.buffer;
parameters[4] = 0;
parameters[5] = 0;
parameters[6] = 0;
return this.device.controlTransferOut({
requestType: 'class',
request: 0x20,
recipient: 'interface',
value: 0,
index: 0
}, parameters)
}).then(() => this.vendorWrite(0x0, 0x0)) // no flow control
.then(() => this.vendorWrite(8, 0)) // reset upstream data pipes
.then(() => this.vendorWrite(9, 0));
}
initialize(device, range) {
this.device = device;
this.range = range;
this.active = true;
this.device.open()
.then(() => this.device.selectConfiguration(1))
.then(() => {
return this.device.claimInterface(0)
})
.then(() => this.vendorRead(0x8484, 0))
.then(() => this.vendorWrite(0x0404, 0))
.then(() => this.vendorRead(0x8484, 0))
.then(() => this.vendorRead(0x8383, 0))
.then(() => this.vendorRead(0x8484, 0))
.then(() => this.vendorWrite(0x0404, 1))
.then(() => this.vendorRead(0x8484, 0))
.then(() => this.vendorRead(0x8383, 0))
.then(() => this.vendorWrite(0, 1))
.then(() => this.vendorWrite(1, 0))
.then(() => this.vendorWrite(2, 0x44))
.then(() => this.setBaudRate())
.then(() => this.readData())
.catch(err => {
console.log(err);
});
return this.readingChanged;
}
Застрял здесь за последнюю неделю.Любая помощь будет оценена .Заранее спасибо.