Skip to content

Latest commit

 

History

History
88 lines (74 loc) · 3.2 KB

README.md

File metadata and controls

88 lines (74 loc) · 3.2 KB

Phidget Interfacekit node.js addon

Node.js bindings for the Interfacekit parts of the Phidget library. This module requires that the libphidget library is available in the system already.

Dependencies

sudo apt-get install libusb-dev
wget http://www.phidgets.com/downloads/libraries/libphidget.tar.gz
tar zxvf libphidget.tar.gz
cd libphidget-2.1.8.20140319
./configure
make
sudo make install

API

The module mimics the interfacekit parts of the phidget library API. So examples based on that API should be easy to convert to C++ versions. All functions are synchronous and will block if they take time, they will throw if errors occur. Five events are available via the EventEmitter API which phidget module extends.

var phidget = require("phidget-interfacekit");

try {
  var phid = phidget.create();

  phidget.on("attach", function(phid) {
    console.log("Phidget attached!");
    
    // Set output 1
    phidget.setOutputState(phid, 1, 1);
    
    console.log("Device Type: " + phidget.getDeviceType(phid));
    console.log("Device Serial Number: " + phidget.getSerialNumber(phid));
    console.log("Device Version: " + phidget.getDeviceVersion(phid));
    console.log("Device Input Count: " + phidget.getInputCount(phid));
    console.log("Device Output Count: " + phidget.getOutputCount(phid));
    console.log("Device Sensor Count: " + phidget.getSensorCount(phid));
  });

  phidget.on("detach", function(phid) {
    console.log("Phidget detached!");
  });

  phidget.on("error", function(phid, errorString) {
    console.log("Phidget error!", errorString);
  });

  phidget.open(phid, -1);

  console.log("Waiting for interface kit to be attached....");
} catch (e) {
  console.error(e);
}


// Available methods
/*
phidget.create                 = function();
phidget.open                   = function(handle);
phidget.waitForAttachment      = function(handle, milliseconds);
phidget.close                  = function(handle);
phidget.remove                 = function(handle);
phidget.getDeviceName          = function(handle);
phidget.getSerialNumber        = function(handle);
phidget.getDeviceVersion       = function(handle);
phidget.getDeviceStatus        = function(handle);
phidget.getLibraryVersion      = function();
phidget.getDeviceType          = function(handle);
phidget.getInputCount          = function(handle);
phidget.getInputState          = function(handle, index);
phidget.getOutputCount         = function(handle);
phidget.getOutputState         = function(handle, index);
phidget.setOutputState         = function(handle, index, state);
phidget.getSensorCount         = function(handle);
phidget.getSensorValue         = function(handle, index);
phidget.getSensorRawValue      = function(handle, index);
phidget.getSensorChangeTrigger = function(handle, index);
phidget.setSensorChangeTrigger = function(handle, index);
phidget.getRatiometric         = function(handle);
phidget.setRatiometric         = function(handle, value);
phidget.getDataRate            = function(handle, index);
phidget.setDataRate            = function(handle, index, milliseconds);
phidget.getDataRateMax         = function(handle, index);
phidget.getDataRateMin         = function(handle, index);
*/