Rewrite write-config.js using async/await.

This commit is contained in:
László Monda
2018-04-01 01:13:17 +02:00
parent 58178a5c7b
commit 847694d590

View File

@@ -23,16 +23,14 @@ 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 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);
while (offset < configSize) {
const usbCommand = isHardwareConfig ? uhk.usbCommands.writeHardwareConfig : uhk.usbCommands.writeStagingUserConfig; const usbCommand = isHardwareConfig ? uhk.usbCommands.writeHardwareConfig : uhk.usbCommands.writeStagingUserConfig;
chunkSizeToRead = Math.min(chunkSize, configSize - offset); chunkSizeToRead = Math.min(chunkSize, configSize - offset);
@@ -40,12 +38,11 @@ while (offset < configSize) {
break; break;
} }
buffer = Buffer.concat([ buffer = [
new Buffer([usbCommand, chunkSizeToRead, offset & 0xff, offset >> 8]), ...[usbCommand, chunkSizeToRead, offset & 0xff, offset >> 8],
configBuffer.slice(offset, offset+chunkSizeToRead) ...configBuffer.slice(offset, offset+chunkSizeToRead)
]); ];
await uhk.writeDevice(device, buffer)
device.write(uhk.getTransferData(buffer));
device.readSync();
offset += chunkSizeToRead; offset += chunkSizeToRead;
} }
})();