Files
agent/packages/usb/get-debug-info.js
2018-02-18 03:44:17 +01:00

66 lines
3.1 KiB
JavaScript
Executable File

#!/usr/bin/env node
const uhk = require('./uhk');
const device = uhk.getUhkDevice();
function getUint32(buffer, offset) {
return (buffer[offset]) + (buffer[offset+1] << 8) + (buffer[offset+2] << 16) + (buffer[offset+3] << 24);
}
function getUint16(buffer, offset) {
return (buffer[offset]) + (buffer[offset+1] << 8);
}
let prevGeneric, prevBasic, prevMedia, prevSystem, prevMouse;
function getDebugInfo() {
const payload = new Buffer([uhk.usbCommands.getDebugBuffer]);
console.log(payload)
console.log('Sending ', uhk.bufferToString(payload));
device.write(uhk.getTransferData(payload));
const rxBuffer = Buffer.from(device.readSync());
console.log('Received', uhk.bufferToString(rxBuffer));
const I2C_Watchdog = getUint32(rxBuffer, 1);
const I2cSlaveScheduler_Counter = getUint32(rxBuffer, 5);
const I2cWatchdog_WatchCounter = getUint32(rxBuffer, 9);
const I2cWatchdog_RecoveryCounter = getUint32(rxBuffer, 13);
const KeyScannerCounter = getUint32(rxBuffer, 17);
const UsbReportUpdateCounter = getUint32(rxBuffer, 21);
const CurrentTime = getUint32(rxBuffer, 25);
const UsbGenericHidActionCounter = getUint32(rxBuffer, 29);
const UsbBasicKeyboardActionCounter = getUint32(rxBuffer, 33);
const UsbMediaKeyboardActionCounter = getUint32(rxBuffer, 37);
const UsbSystemKeyboardActionCounter = getUint32(rxBuffer, 41);
const UsbMouseActionCounter = getUint32(rxBuffer, 45);
process.stdout.write(`I2C_Watchdog:${I2C_Watchdog} | `);
process.stdout.write(`I2cSlaveScheduler_Counter:${I2cSlaveScheduler_Counter} | `);
process.stdout.write(`I2cWatchdog_WatchCounter:${I2cWatchdog_WatchCounter} | `);
process.stdout.write(`I2cWatchdog_RecoveryCounter:${I2cWatchdog_RecoveryCounter} | `);
process.stdout.write(`KeyScannerCounter:${KeyScannerCounter} | `);
process.stdout.write(`UsbReportUpdateCounter:${UsbReportUpdateCounter} | `);
process.stdout.write(`CurrentTime:${CurrentTime} | `);
process.stdout.write(`UsbGenericHidActionCounter:${UsbGenericHidActionCounter} | `);
process.stdout.write(`UsbBasicKeyboardActionCounter:${UsbBasicKeyboardActionCounter} | `);
process.stdout.write(`UsbMediaKeyboardActionCounter:${UsbMediaKeyboardActionCounter} | `);
process.stdout.write(`UsbSystemKeyboardActionCounter:${UsbSystemKeyboardActionCounter} | `);
process.stdout.write(`UsbMouseActionCounter:${UsbMouseActionCounter} | `);
process.stdout.write('\n');
process.stdout.write(`generic:${UsbGenericHidActionCounter - prevGeneric} `)
process.stdout.write(`basic:${UsbBasicKeyboardActionCounter - prevBasic} `)
process.stdout.write(`basic:${UsbMediaKeyboardActionCounter - prevMedia} `)
process.stdout.write(`basic:${UsbSystemKeyboardActionCounter - prevSystem} `)
process.stdout.write(`basic:${UsbMouseActionCounter - prevMouse} `)
prevGeneric = UsbGenericHidActionCounter;
prevBasic = UsbBasicKeyboardActionCounter;
prevMedia = UsbMediaKeyboardActionCounter;
prevSystem = UsbSystemKeyboardActionCounter;
prevMouse = UsbMouseActionCounter;
setTimeout(getDebugInfo, 1000);
}
getDebugInfo();