Rewrite write-config.js using async/await.
This commit is contained in:
@@ -23,29 +23,26 @@ let offset = 0;
|
|||||||
let configBuffer = fs.readFileSync(configBin);
|
let configBuffer = fs.readFileSync(configBin);
|
||||||
let chunkSizeToRead;
|
let chunkSizeToRead;
|
||||||
|
|
||||||
const payload = new Buffer([uhk.usbCommands.getDeviceProperty, uhk.devicePropertyIds.configSizes]);
|
(async function() {
|
||||||
|
let buffer = await uhk.writeDevice(device, [uhk.usbCommands.getDeviceProperty, uhk.devicePropertyIds.configSizes]);
|
||||||
|
const hardwareConfigMaxSize = buffer[1] + (buffer[2]<<8);
|
||||||
|
const userConfigMaxSize = buffer[3] + (buffer[4]<<8);
|
||||||
|
const configMaxSize = isHardwareConfig ? hardwareConfigMaxSize : userConfigMaxSize;
|
||||||
|
const configSize = Math.min(configMaxSize, configBuffer.length);
|
||||||
|
|
||||||
device.write(uhk.getTransferData(payload));
|
while (offset < configSize) {
|
||||||
let buffer = Buffer.from(device.readSync());
|
const usbCommand = isHardwareConfig ? uhk.usbCommands.writeHardwareConfig : uhk.usbCommands.writeStagingUserConfig;
|
||||||
const hardwareConfigMaxSize = buffer[1] + (buffer[2]<<8);
|
chunkSizeToRead = Math.min(chunkSize, configSize - offset);
|
||||||
const userConfigMaxSize = buffer[3] + (buffer[4]<<8);
|
|
||||||
const configMaxSize = isHardwareConfig ? hardwareConfigMaxSize : userConfigMaxSize;
|
|
||||||
const configSize = Math.min(configMaxSize, configBuffer.length);
|
|
||||||
|
|
||||||
while (offset < configSize) {
|
if (chunkSizeToRead === 0) {
|
||||||
const usbCommand = isHardwareConfig ? uhk.usbCommands.writeHardwareConfig : uhk.usbCommands.writeStagingUserConfig;
|
break;
|
||||||
chunkSizeToRead = Math.min(chunkSize, configSize - offset);
|
}
|
||||||
|
|
||||||
if (chunkSizeToRead === 0) {
|
buffer = [
|
||||||
break;
|
...[usbCommand, chunkSizeToRead, offset & 0xff, offset >> 8],
|
||||||
|
...configBuffer.slice(offset, offset+chunkSizeToRead)
|
||||||
|
];
|
||||||
|
await uhk.writeDevice(device, buffer)
|
||||||
|
offset += chunkSizeToRead;
|
||||||
}
|
}
|
||||||
|
})();
|
||||||
buffer = Buffer.concat([
|
|
||||||
new Buffer([usbCommand, chunkSizeToRead, offset & 0xff, offset >> 8]),
|
|
||||||
configBuffer.slice(offset, offset+chunkSizeToRead)
|
|
||||||
]);
|
|
||||||
|
|
||||||
device.write(uhk.getTransferData(buffer));
|
|
||||||
device.readSync();
|
|
||||||
offset += chunkSizeToRead;
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user