如何从一维规模解码节点隐藏数据缓冲区

时间:2015-06-19 00:16:04

标签: node.js

我有一个A& D比例,我使用node-hid监视输入。我正在成功读取输入,但我无法弄清楚如何解码二进制数据。任何帮助表示赞赏。

这是我正在使用的代码:

<% console %>

当比例为零时,这就是吐出来的。

var HID = require('node-hid');
var devices = HID.devices();
var device = new HID.HID('USB_0dbc_0005_14400000');

device.on("data", function(data){
    console.log(data);
});

1 个答案:

答案 0 :(得分:0)

我最后只是在我的白板上写缓冲区并自由思考。我在数据中找到了一些模式,并编写了用于解码和解析比例数据的代码。对于可能需要推动正确方向的任何人,下面都包含该代码。

"use strict";

var HID = require('node-hid');
var device = new HID.HID('USB_0dbc_0005_14400000');
var weight = []
var count = 0

module.exports.show_devices = function(){
    console.log(devices);
}

module.exports.start_logging = function(){
    device.on("data", function(data){
        var bad_array = [
            '\u0000S\u0000\u0000',
            '\u0000W\u0000\u0000',
        ]
        if (count < 20 && count % 2 == 0 && !contains(bad_array, data.toString('utf16le'))){
            weight.push(key[data.toString('utf16le')])
        }
        if(count == 19){
            display_weight()
        }
        if(count == 23){
            count = -1
            weight = []
        }
        count++
    });
}

function display_weight(){
    console.log(weight.join(''));
}

function contains(a, obj){
    for(var i = 0; i < a.length; i++){
        if(a[i] === obj){
            return true;
        }
    }
    return false;
}

var key = {
    "\u0000Y\u0000\u0000" : "1",
    "\u0000Z\u0000\u0000" : "2",
    "\u0000[\u0000\u0000" : "3",
    "\u0000\\\u0000\u0000" : "4",
    "\u0000]\u0000\u0000" : "5",
    "\u0000^\u0000\u0000" : "6",
    "\u0000_\u0000\u0000" : "7",
    "\u0000`\u0000\u0000" : "8",
    "\u0000a\u0000\u0000" : "9",
    "\u0000b\u0000\u0000" : "0",
    "\u0000c\u0000\u0000" : "."
}