/hid.spacemouse

HID based abstraction layer for 3DConnexion space mice (no need for 3DXWare bloatware) in node.js

Primary LanguageJavaScriptMIT LicenseMIT

hid.spacemouse

HID based abstraction layer for 3DConnexion space mice (no need for 3DXWare bloatware) in node.js

This package creates a spacemouse manager with accumulated data and an array of connected spacemice. Usage:

sm = require("./index.js");
sm.spaceMice.onData = mouse => {
    console.clear();
    console.log(JSON.stringify(mouse.mice[0], null, 2));
};

spaceMice class looks like this:

{
    translate: {x, y, z}, // x right, y backwards, z down [-1..1]
    rotate: {x, y, z}, // x pitch ccv, y roll ccv, z yaw cw [-1..1]
    buttons: [], // array of 48 possible buttons
    devices: [], // HID device info about found spacemice
    mice: [], // array of spaceMouse objects
    onData: function(spacemice) {} // callback function on data received from any device, argument is this object
}

spaceMice manages an array of spaceMouse devices which looks like:

{
    translate: {x, y, z}, // x right, y backwards, z down [-1..1]
    rotate: {x, y, z}, // x pitch ccv, y roll ccv, z yaw cw [-1..1]
    buttons: [], // array of 48 possible buttons
    onData: function(spacemouse) {} // callback function on data received from this device, argument is this object
}

that's it.